b. 添加实例
[root@rac2 bin]# ./srvctl add instance -d db1 -n rac1 -i db11
[root@rac2 bin]# ./srvctl add instance -d db1 -n rac1 -i db12
c.添加服务,需要使用四个参数
-s:服务名
-r:首选实例名
-a:备选实例名
-P:taf策略,可选值为None(缺省值),Basic,preconnect
[root@rac2 bin]# ./srvctl add service -d db1 -s db1service -r rac1 -a rac2 -P BASIC
d.确认添加成功
[root@rac2 bin]# ./srvctl config service -d db1 -s db1service -a
4.3.3 使用enable/disable启动、禁用对象
缺省情况下数据库,实例,服务,ASM都是随着CRS的启动而自启动的,有时候由于维护的需要,可以先关闭这个特性。
a. 配置数据库随CRS启动而自启动
--启动数据库的自启动:
[root@rac2 bin]# ./srvctl enable database -d racdb
PRKP-1016 : Database racdb already enabled.
--查看配置
[root@rac2 bin]# ./srvctl config database -d racdb -a
rac1 RACDB1 /u01/app/oracle/product/10.2.0/db_2
rac2 RACDB2 /u01/app/oracle/product/10.2.0/db_2
DB_NAME: RACDB
ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_2
SPFILE: +ORADATE/RACDB/spfileRACDB.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED
--禁止自启动,那就需要手动启动
[root@rac2 bin]# ./srvctl disable database -d racdb
b. 关闭某个实例的自启动
[root@rac2 bin]# ./srvctl disable instance -d racdb -i racdb1
[root@rac2 bin]# ./srvctl enable instance -d racdb -i racdb1
--查看信息
[root@rac2 bin]# ./srvctl config database -d racdb -a
rac1 RACDB1 /u01/app/oracle/product/10.2.0/db_2
rac2 RACDB2 /u01/app/oracle/product/10.2.0/db_2
DB_NAME: RACDB
ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_2
SPFILE: +ORADATE/RACDB/spfileRACDB.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED
c. 禁止某个服务在实例上运行
[root@rac2 bin]# ./srvctl disable service -d racdb -s racservice -i rac1
[root@rac2 bin]# ./srvctl enable service -d racdb -s racservice -i rac1
--查看服务名
[root@rac2 bin]# ./srvctl config service -d racdb -a
4.3.4 使用remove删除对象
使用remove命令删除的是对象在OCR中的定义信息,对象本身比如数据库的数据文件等不会被删除,以后随时可以使用add命令重新添加到OCR中。
a. 删除service 在删除之前命令会给出确定提示
[root@rac2 bin]# ./srvctl remove service -d racdb -s racservice
b.删除实例 //会提示
[root@rac2 bin]# ./srvctl remove instance -d racdb -i racdb1
Remove instance racdb1 from the database racdb (y/[n])
c.数据数据库 //冒险试了一下 也会给提示
[root@rac2 bin]# ./srvctl remove database -d racdb
Remove the database racdb (y/[n])
4.3.5 启动、停止对象和查看对象
在RAC 环境下启动,关闭数据库虽然仍然可以使用SQL/PLUS方法,但是更推荐使用srvctl命令来做这些工作,这可以保证即使更新CRS中运行信息,可以使用start/stop 命令启动,停止对象,然后使用status 命令查看对象状态。
a. 启动数据库,默认启动到open状态
[root@rac2 bin]# ./srvctl start database -d racdb
b. 启动指定状态
[root@rac2 bin]# ./srvctl start database -d racdb -i racdb1 -o mount
[root@rac2 bin]# ./srvctl start database -d racdb -i racdb1 -o nomount
c. 关闭对象,并制定关闭方式
[root@rac2 bin]# ./srvctl stop instance -d racdb -i racdb1 -o immediate
[root@rac2 bin]# ./srvctl stop instance -d racdb -i racdb1 -o abort
d.在指定实例上启动服务
[root@rac2 bin]# ./srvctl start service -d racdb -s racservice -i racdb1
--查看服务状态
[root@rac2 bin]# ./srvctl status service -d racdb -v
e. 关闭指定实例上的服务
[root@rac2 bin]# ./srvctl stop service -d racdb -s racservice -i racdb1
--查看服务状态
[root@rac2 bin]# ./srvctl status service -d racdb -v
4.3.6 跟踪srvctl
在 Oracle 10g中要跟踪srvctl 非常简单,只要设置srvm_trace=true 这个OS环境变量即可,这个命令的所有函数调用都会输出到屏幕上,可以帮助用户进行诊断。
[root@rac2 bin]# export SRVM_TRACE=TRUE
[root@rac2 bin]# ./srvctl config database -d racdb
/u01/app/oracle/product/10.2.0/db_1/jdk/jre/bin/java -classpath /u01/app/oracle/produ