打开服务器
net start oracleservice
打开监听器
lsnrctl start
关闭服务器
net stop oracleservicebinbo
关闭监听器
lsnrctl stop
管理命令:
数据库配置:dbca
网路配置:netca,netmgr
查看集群状态
crsctl stat res -t
如何连接到远程数据库服务器
connect username/password@[//]host[:port][/service_name]
例如:connect scott/tiger@192.168.100.134:1521/mdb04
注:如果不指定端口的话,默认的端口就是1521
启动数据库
切换到oracle用户下,输入sqlplus / as sysdba
SQL>startup;
启动过程中没有报错,启动之后查询
SQL >select status from v$instance;
状态为OPEN ,则启动成功
关闭数据库
切换到oracle用户下,输入sqlplus / as sysdba
SQL>shutdown immediate;
查询指定表空间大小
select a.tablespace_name "tablespace",
round(a.bytes_alloc/1024/1024,2) "all(M)",
round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "used(M)",
round(nvl(b.bytes_free,0)/1024/1024,2) "free(M)",
100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "used(%)",
round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "free(%)"
from (select f.tablespace_name,sum(f.bytes) bytes_alloc from dba_data_files f group by tablespace_name) a,
(select f.tablespace_name,sum(f.bytes) bytes_free from dba_free_space f group by tablespace_name) b
where a.tablespace_name = b.tablespace_name;
启动数据库过程介绍
shutdown当前状态(数据库不可用,不能执行除startup外的SQL命令) 可做操作(通过操作系统命令复制数据库)
nomount 当前状态(读取了参数文件,启动了数据库实例) 可做操作(恢复控制文件)
mount 当前状态(在nomount的基础上加载了控制文件) 可做操作(恢复数据库文件,启动归档模式,冷备份)
open 当前状态 (在mount的基础上加载了数据文件) 可做操作(通常状态,可以读取和写入数据)
如何启动跟关闭归档模式
检查数据库是否启用归档日志模式
SQL> archive log list;
启用归档日志模式
SQL> alter database archivelog;
ALTER SYSTEM set log_archive_dest_1='LOCATION=/arch' scope=spfile;
控制文件的作用?
控制文件,是一个二进制文件,是数据库的非常关键、非常重要的文件。它知道数据文件、重做日志的存放位置,数据库最新的状态点(CheckPoint),归档日志文件信息、备份信息等。
查询控制文件的位置的SQL命令:
SQL> show parameter control_files; 或者 SQL> select name from v$controlfile;
rman备份与恢复的命令?
run{
allocate channel ch00 type disk format '/disk1/bk_%s_%p_%t';
backup database plus archivelog;
backup current controlfile;
release channel ch00;
}
恢复控制文件
run{
allocate channel ch00 type disk;
restore controlfile from '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/0gpo886i_1_1';
release channel ch00;
}
恢复数据文件
run{
allocate channel ch00 type disk format '/disk1/bk_%s_%p_%t';
restore database;
recover database;
release channel ch00;
}
如何创建pfile文件跟spfile文件?
SQL>create pfile=‘/opt/oracle/product/db/dbs/initoradb.ora’ from spfile;
SQL>create spfile=‘/opt/oracle/product/db/dbs/spfileoradb.ora’ from pfile='/opt/oracle/product/db/dbs/initoradb.ora';
查看数据文件的信息
SQL> set linesize 160
SQL> col name format a50
SQL> select file#,name from v$datafile;
使用duplicate在线备份
在备库创建/opt/oracle/gen_stb.rcv
/opt/oracle> more gen_stb.rcv
run
{
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate auxiliary channel stby1 type disk;
allocate auxiliary channel stby2 type disk;
allocate auxiliary channel stby3 type disk;
duplicate target database for standby from active database nofilenamecheck;
}
使用oracle用户在备库执行
nohup rman target sys/<sys password>@<pr_db_alias> auxiliary sys/<sys password>@<dr_db_alias> cmdfile=/opt/oracle/gen_stb.rcv log=/opt/oracle/gen_stb.log &
创建表空间
ASM
create tablespace ring datafile '+DG_DATA/ring_data01' size 8000m extent management local segment space management auto;
文件系统
create tablespace usdp datafile '/opt/oracle/oradata/usdp_data01' size 5000m extent management local segment space management auto;
裸设备
root用户输入vgs 查看剩余空间
cd /dev/vg_data
查看LV编号ls
创建LV
lvcreate -L 8008 -n ring_data12 /dev/vg_data
挂载裸设备
执行脚本raw.sh,该脚本一般放在/opt/oracle目录下
./raw.sh
执行脚本linkraw_oracle.sh,具体目录看raw.sh脚本,一般在/opt/VRTSvcs/bin/vg或者/etc/init.d/
sh linkraw_oracle.sh start
create tablespace usdp datafile '/dev/vg_data/rring_data12' size 5000m extent management local segment space management auto;
删除表空间
drop tablespace RING_DATA including contents and datafiles;
修改表空间
ASM
alter tablespace ring add datafile '+DG_INDEX/oradb/ring_data03' size 16000m;
修改sys/ststem的密码
alter user system identified by "password_123";
#route add default gw 192.168.0.1
添加192.168.0.1默认路由(即网关)
EXPDP、IMPDP导入导出数据方法
create directory PDAMDA as 'D:\oradata';
grant read,write on directory PDAMDA to PDAMDA;
expdp PDAMDA/atmopdamda DIRECTORY=PDAMDA DUMPFILE=PDAMDA.dmp SCHEMAS=PDAMDA logfile=PDAMDAexpdp.log
create directory imput as 'D:\Oracle\BACKUP\IMPDP';
grant read,write on directory imput to MMPD;
impdp MMPD/atmommpd DIRECTORY=imput DUMPFILE=MMPD.dmp logfile=IMPUT_MMPD.log
参数remap_schema
remap_schema=expdp时的用户: 将要 impdp的用户
注意有两个用户中间有个冒号
EXP、IMP导入导出数据方法
imp rbt/rbt file=RBTLMEG21.dmp commit=y touser=rbt fromuser=R_ZT_LMEG21B021 buffer=102400 log = d1.log
exp rbt2/password_123 rows=y file=china_rbt.dmp log = rbt2.log
1. 查看主机名
# hostname
2. 查看CPU个数和位数
查看CPU个数可以用top,也可以:
# cat /proc/cpuinfo | grep processor
查看CPU位数
# uname -m
3. 查看物理内存
# cat /proc/meminfo | grep MemTotal
4. 查看SWAP
# cat /proc/swaps
查看表空间数据文件状态
select file_id,file_name,status,online_status from dba_data_files;
创建rac数据库的DBLINK
-- Create database link
create database link RBTMC
connect to c67_usdp identified by Huawei_123
using '(DESCRIPTION =
(FAILOVER = ON)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.137.19.134)(PORT = 1526))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.137.19.225)(PORT = 1526))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.137.19.234)(PORT = 1526))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = service_drora)
)
)';
dataguard数据库角色转换
primary执行
alter database commit to switchover to physical standby with session shutdown;
shutdown immediate;
startup mount;
alter database set standby database to maximize Performance;
alter database open;
stanby执行
alter database commit to switchover to PRIMARY with session shutdown;
alter database set standby database to maximize Performance;
alter database open;
alter database recover managed standby database using current logfile disconnect from session;
DataGuard常用命令
查看数据库的状态 SQL> select status from v$instance;
查看数据库的打开模式 SQL> select open_mode from v$database;
查看数据库参数配置 SQL> show parameter parname 其中parname是按参数名前缀模糊匹配的。例如:SQL> show parameter DB_NAME
检查TNS是否能正常连接 % tnsping tnsname 例如:% tnsping droradg01
启动/检查/停止监听服务 % lsnrctl start/status/stop listenername
设置snapshot相关的数据库参数。
SQL> alter system set db_recovery_file_dest_size=10g;
alter system set db_recovery_file_dest="/oracle/snapshot";
“/oracle/snapshot”的属主为“oracle”、属组为“oinstall”、权限为“750”。
启用Real Time Apply [TW(1] SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
查看Real Time Apply是否启用 SQL> select RECOVERY_启用归档日志模式
关闭数据库:SQL> shutdown immediate;
启动到mount模式:SQL> startup mount;
启动归档模式:SQL> alter database archivelog;
设置归档日志路径:SQL> alter system set log_archive_dest_1='location=/oracle/arch' scope=both;
启动数据库到open状态:SQL> alter database open; 修改归档模式或设置归档日志路径,需要重启数据库。
关闭归档日志模式
关闭数据库:SQL> shutdown immediate;
启动到mount模式:SQL> startup mount;
设置非归档模式:SQL> alter database noarchivelog;
启动数据库到open状态:SQL> alter database open;
修改归档模式需要重启数据库。
手工切换日志[TW(2] SQL> alter system switch logfile;
创建standby redo日志 SQL> alter database add standby logfile thread 1 group 20 '/dev/vx/rdsk/vgora/rlv_stdredo1' size 1000M; 无
查看standby redo日志大小
SQL> select GROUP#,THREAD#,BYTES/1024/1024 from V$STANDBY_LOG; 无
删除redo日志或standby redo日志
SQL> alter database drop logfile group 21; 无
查看redo日志大小
SQL> select GROUP#,BYTES/1024/1024 from v$log; 无
检查redo日志或standby redo日志对应的数据文件
SQL> select GROUP#,TYPE,MEMBER from v$logfile; 无
查看spfile的路径 SQL> show parameter spfile; 无
备份spfile文件到本地 SQL> create pfile='pfilename' from spfile='spfilename'; 例如:SQL> create pfile='?/dbs/initora01.ora.bak' from spfile='/dev/vx/rdsk/vgora/lv_spfile';
查看DG空闲空间 SQL> select name,free_mb from v$asm_diskgroup; 无E from v$archive_Dest_status; 正常情况下输出应为:RECOVERY_MODE ----------------------- MANAGED REAL TIME APPLY IDLE IDLE IDLE IDLE IDLE
停用Real Time Apply SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
查询MRP0进程状态 SQL> SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK# FROM V$MANAGED_STANDBY where PROCESS='MRP0' or PROCESS='RFS'; 在备用数据库执行
磁盘命令
1. 查看磁盘
l 收集所有磁盘基本信息
# lsscsi
l 查看具体磁盘大小
# fdisk -l /dev/diskname
2. 初始化PV
# pvcreate-f /dev/diskname
3. 创建VG
# vgcreate-s pesize vg_name /dev/diskname
4. 扩展VG
# vgextend/dev/vg_name /dev/diskname1 /dev/diskname2
5. 删除VG
l 卸载文件系统
l 先删除VG中所有的lv
l 去激活VG
# vgchange -a n /dev/vg_name
l 删除VG
# vgremove /dev/vg_name
6.激活VG
# vgchange -a y vg_name
7.去激活VG
# vgchange -a n vg_name
8.创建LV
l 指定LE数量(LV大小为100个LE)
# lvcreate -l 100 -n Name/dev/vg_name
l 指定大小(LV大小为100M)
# lvcreate -L 100 -n Name /dev/vg_name
9. 扩展LV
l 指定LE数量(LV扩展100个LE)
# lvextend -l 100 /dev/vg_name/lv_name
l 指定大小(LV扩展100M)
# lvextend -L 100 /dev/vg_name/lv_name
10. 删除LV
# lvremove/dev/vg_name/lv_name
11. 创建文件系统
l 创建文件系统
# mkfs.ext3 /dev/vg_name/lv_name
l 创建文件系统挂载的目录
# mkdir /fsname
l 挂载文件系统
# mount /dev/vg_name/lv_name /fsname
l 卸载文件系统
# umount /fsname
Dataguard基线备份的RMAN脚本
vi bak_cmdfile
在文件中增加如下内容:
Run
{
allocate channel t1 type disk; CROSSCHECK ARCHIVELOG ALL;
backup as compressed backupset full database format '/oracle/backup/dbback_%s_%p_%T_%d'; sql 'alter system archive log current';
backup current controlfile format '/oracle/backup/prycontrolfile';
backup current controlfile for standby format '/oracle/backup/stbcontrolfile';
release CHANNEL t1;
}
中,“/oracle/backup”为数据库备份目录。该目录必须已存在,且属主应为oracle,权限至少为700。
% rman target / nocatalog cmdfile=bak_cmdfile
tar -cvf dgbackup.tar /oracle/backup/*
tar -xvf dgbackup.tar
vi restore_cmdfile
在文件中增加如下内容:
run {restore standby controlfile from '/oracle/backup/stbcontrolfile';alter database mount;catalog start with '/oracle/backup/' NOPROMPT;restore database;}
其中,“/oracle/backup”为数据库恢复目录。该目录必须已存在,且属主应为oracle,权限至少为700。
恢复数据库。
% rman target / nocatalog cmdfile=restore_cmdfile
连接数据库并设置数据库角色。
% sqlplus / as sysdba
SQL> ALTER DATABASE OPEN READ ONLY;
SQL> alter database recover managed standby database using current logfile disconnect from session;
ALTER SYSTEM SET asm_diskstring='/dev/diskgroup/' SCOPE=MEMORY;
登入rman,delete 过期的归档文件
oracle@orarac1 /home/oracle$ rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Oct 27 11:07:56 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORARAC (DBID=1488840336)
RMAN> crosscheck archivelog all;
RMAN> list expired archivelog all;
RMAN> delete expired archivelog all;
RMAN> y
RMAN> exit
删除审计日志的定时任务
编辑定时任务脚本
crontab -e
30 * * * * su - oracle -c "find \$ORACLE_BASE/admin/\$ORACLE_SID/adump/ -name *.aud -exec rm -rf {} \;"
防止数据库的归档日志过度占用/home/oracle/archive目录,导致磁盘空间占满,触发问题。
定时任务中查看到如下命令:
500,3,6,9,12,15,18,21 * * * su - oracle -c/opt/oracle/app/product/11g/db/oracle-log-delete/bin/arch_clear.sh>/dev/null 2>&1
即为正常部署。
其工作原理即是:
当log_archive_dest_1中配置的路径磁盘空间占用超过80%执行
run
{
allocate channel t1 type disk;
crosscheck archivelog all;
delete force noprompt expired archivelogall;
release CHANNEL t1;
}
如果执行上述命令之后,log_archive_dest_1中配置的路径磁盘空间占用仍然超过80%,那么执行
run {
allocate channel t1 type disk;
crosscheck archivelog all;
delete force noprompt archivelog all;
release CHANNEL t1;
}
【Oracle如何修改】
哪些参数可以用AlterSystem修改
alter system 命令可以用来修改数据库的初始化参数。
具体哪些参数可以修改,可以从v$parameter动态性能视图中的列ISSYS_MODIFIABLE中确定
例如:select* from v$parameter whereISSYS_MODIFIABLE='IMMEDIATE'; -->表示可以直接修改并立即生效的;
--------------------------------------------------------------------------------
■ altersystem的语法
alter system 参数名 = 参数值 [ COMMENT 'text' ][ DEFERRED ][ SCOPE = {MEMORY | SPFILE | BOTH } ][ SID = { 'sid' | * } ]
1)comment 'text'表示要修改的参数的注释。
2)deferred 表示修改的参数应用到以后连接的session
3)scope={ MEMORY | SPFILE | BOTH }
表示所作的修改应用到哪里,内存,spfile文件,或是内存和spfile都修改.
4)SID = { 'sid' | * }
如果选择sid,那么表示修改的是某个session的参数。这个参数只是在真实应用集群环境下有效。
如果要修改所有sid的参数,设置sid='*'
如果要修改某个sid的参数,设置sid='sid',sid是指定的要修改的session的sid.
SCOPE的详细含义
SCOPE的设定取值有如下三种:
1. SCOPE = SPFILE
既适用于动态初始化参数的修改,也使用与静态初始化参数的修改。也是静态参数唯一可以使用的方式。
对参数的修改仅记录在服务器初始化参数文件中,更改将在下次DB启动时生效。
2. SCOPE = MEMORY
只适用于动态初始化参数的修改。静态参数不允许。
对参数的修改仅在内存上,立即生效,但重启后将不再有效,因为并没有写入到初始化参数文件。
DB重启后这个修改会丢失,参数复原为修改前的参数值。
3. SCOPE = BOTH
只适用于动态初始化参数的修改。静态参数不允许。
对参数的修改同时既写入到初始化参数文件,也在内存上修改,立即生效。
注意:
1. 在修改静态初始化参数时,我们只能指定scope=spfile;
2. 在修改动态初始化参数时,我们可以指定 deferred 关键字来对所做的修改延迟到新的session产生时生效。
对于ALTERSYSTEM的参数修改命令,请注意以下几点:
1)如果当前实例使用的是pfile而非spfile,则scope=spfile或scope=both会产生错误;
2)如果实例以pfile启动,则scope的默认值为MEMORY, 若以spfile启动,则默认值为BOTH;
参数如何重置恢复默认值
#1.改sga大小,指定注释:
alter system set sga_max_size=6272Mcomment='internally adjusted' scope=spfile;
写入SPFILE信息如下:
sga_max_size=6272M # internally adjusted
#2.重置参数,也就是把参数回收,从spfile中删除:把sga_max_size参数从spfile中删除:
alter system reset sga_max_size;
关闭回收站特性
步骤1 以oracle用户登录操作系统。
步骤2 登录数据库。
$ sqlplus '/ as sysdba'
步骤3 清理回收站所有内容。
SQL> purge dba_recyclebin;
步骤4 关闭回收站。
SQL> alter system set recyclebin=offscope=spfile;
步骤5 关闭数据库。
SQL> shutdown immediate;
步骤6 重新启动数据库。
SQL> startup;
2. 采用move的办法整理表空间碎片
可以用下面的语句查询出使用这个表空间的表,然后把表move下。
select table_name,tablespace_name fromuser_all_tables where tablespace_name='TBS_ODS_CAMEROON_CAMTEL';
alter table T_O_CBS_MGRBILL_MID move ;
注意:进行move操作的时候DML操作将不能进行,请在业务低峰期后执行
可以使用srvctl(service control tool)工具管理CRS的各类资源。
srvctl工具可以操作如下CRS资源:Database,Instance,ASM,Service,Listener和Node Application,其中Node application又包括GSD,ONS,VIP。这些资源除了使用srvctl工具统一管理外,某些资源还有自己独立的管理工具,
ASM磁盘相关操作
在操作系统中设置节点对应的ASM实例后再使用sqlplus语句或asmcmd的命令管理ASM。
操作步骤
步骤 1 登录操作系统。
以grid用户登录Oracle 11G R2。
步骤 2 建立并扩充Disk Group。
创建ASM磁盘组前需首先规划要创建的磁盘组的冗余度,ASM磁盘组的冗余度有:normal(2重镜像),high(3重镜像),external(不做镜像),对于在储存阵列上映射过来的raid盘建ASM磁盘组通常使用外部冗余方式。
例如,建立外部冗余的磁盘组。
$ sqlplus/ as sysasm
SQL> create diskgroup dg_name external redundancydisk '/dev/diskgroup/dg_data' ATTRIBUTE'compatible.asm'='11.2.0.0.0','au_size'='1M';
为磁盘组增加一个裸盘。
SQL> alter diskgroup dg_name add disk '/dev/diskgroup/dg_data_extend';
从磁盘组中删除某个磁盘。
SQL> alter diskgroup dg_name drop disk disk_name;
其中,“db_name”为磁盘组名称,“disk_name”为磁盘组中磁盘的名称。
步骤 3 挂载Disk Group。
SQL> alter diskgroup dg_name mount;
步骤 4 卸载Disk Group。
SQL> alter diskgroup dg_name dismount;
步骤 1 删除Disk Group。
在节点上删除磁盘组时,磁盘组状态应该为“MOUNT”。
SQL> drop diskgroup dg_name [including contents];
如果磁盘组状态为“DISMOUNT”,可强制删除。
SQL> drop diskgroup dg_name force including contents;
步骤 2 重新设置磁盘大小。
SQL> alter diskgroup dg_name resize all size 19085M;
如果磁盘组中有多个磁盘,每个磁盘大小不同,则设置磁盘大小时需要指定磁盘。
SQL> alter diskgroup dg_name resize disk disk_name size 19085M;
步骤 3 查询ASM磁盘信息。
通过查询v$asm_diskgroup、v$asm_disk可以获得ASM磁盘组、ASM磁盘的空间大小、状态等等信息。
例如,查询ASM磁盘组信息:
SQL> select name,state,type,total_mb,free_mb from v$asm_diskgroup;
步骤 4 使用ASMCD的命令查看或管理ASM。
进入ASMCD模式后执行help命令可获取命令帮助。
ASMCMD> help
系统返回类似如下信息:
asmcmd [-v] [-a
<sysasm|sysdba>] [-p] [command]
Type "help [command]"to get help on a specific ASMCMD command.
设置Oracle初始化参数
1.Oracle初始化参数我们只需关注两种
l 动态参数,可以用altersystem命令修改,修改后立即生效;
l 静态参数,可以用altersystem..scope=spfile修改,修改后必须重新启动实例才能够生效;
2.查看初始化参数的类型
SQL> select name, value, issys_modifiable from v$parameter;
l 如果issys_modifiable为immediate说明是动态参数;
l 如果issys_modifiable为false说明是静态参数;
3.SPFILE的备份
彩铃要求统一使用SPFILE,因此在修改初始化参数前应对SPFILE进行一次备份。
l 查看Oracle是否使用SPFILE启动:
SQL> show parameter spfile
--如结果为空,则说明使用的不是SPFILE,而是PFILE!
l 备份SPFILE(SYSDBA登陆):
SQL> create pfile='/home/oracle/spfile.bak' from spfile;
--路径和文件名可更改,但不要放在$ORACLE_HOME/dbs(Windows为database目录)下面。
4.修改初始化参数
修改初始化参数必须用AS SYSDBA身份登陆数据库。
l 动态参数
SQL> alter system set job_queue_processes=20;
l 静态参数
SQL> alter system set session_cached_cursors=50scope=spfile;
修改完毕,重新启动实例使之生效。
设置数据库内存大小
memory_max_target 物理内存的60% 静态参数;单位字节
memory_target 物理内存的60% 动态参数;单位字节
sga_target 物理内存的50% 动态参数;单位字节
db_cache_size 物理内存的40% 动态参数;单位字节
pga_aggregate_target 物理内存的8% 动态参数;单位字节
shared_pool_size 物理内存的5% 动态参数;单位字节
undo_retention 5400 动态参数;单位秒,回滚信息的保留时间。
设置操作系统的共享内存大小
【检查操作系统共享内存大小】
# df -k| grep shm
Filesystem 1K-blocks UsedAvailable Use% Mounted on
shm 16777216 1131136 15646080 7% /dev/shm
/dev/shm必须设置为物理内存大小。
如物理内存为16G的机器,/dev/shm的文件系统大小为16G,则表示已经正确设置。否则需要重新设置。
【卸载/dev/shm文件系统】
# umount /dev/shm
注意: 如果提示“device is busy”则需要停止数据库。
【挂载/dev/shm文件系统】
# mount -t tmpfs shmfs -o size=16g /dev/shm
修改文件/etc/fstab,追加以下内容
shm /dev/shm tmpfs size=16g 0 0
有归档日志,无备份文件恢复方法
SVRMGR> startup mount
SVRMGR> alter database create datafile 'c:\test.ora';
SVRMGR> set autorecovery on
SVRMGR> recover datafile 'c:\test.ora';
SVRMGR> alter database open;
设置linux下oracle开机启动
在默认中,Linux下 Oracle数据库是不会开机自启动的,但是很多时候我们需要数据库开机自启动,因此需要进行设置,设置方法如下:
1、修改/etc/oratab文件
# vi /etc/oratab
找到orcl:/u01/app/oracle:N这一行,把N改成Y
orcl:/u01/app/oracle:Y
2、修改/etc/rc.local
# vi /etc/rc.local
#添加下面两行
su - oracle -c 'lsnrctl start'
su - oracle -c 'dbstart'
3、使用oracle用户vi $ORACLE_HOME/bin/dbstart
找到ORACLE_HOME_LISTNER=$1
将$1修改为$ORACLE_HOME/network/admin
4、开机后查看状态
sql> select status from v$instance;