如果使用DBCA建库,在创建好RAC数据库后,DBCA自动将数据库信息添加到SRVCTL管理器中。
但是如果手工创建数据库,或者通过备份恢复的数据库,就需要手工添加数据库信息了。
当前服务器上安装了两套RAC数据库,分别是rac11g和ractest,其中ractest是通过dbca创建的,而rac11g是通过备份恢复的。
$ srvctl status database -d rac11g
Q(b2K-kzj]⋙]/M0PRKR-1001 : cluster database rac11gdoes not exist
$Ya:Z_*TA8dW
V0u0PRKO-2005 : Application error: Failure in getting Cluster Database Configuration for: rac11gITPUB个人空间 _C|m__!P
$ srvctl status database -d ractestITPUB个人空间_~ Q
H#dr1\YN-A
`1O
Instance ractest1 is running on node ser1
"[0Z.o6e0Q7As0Instance ractest2 is running on node ser2
对于dbca创建的数据库,srvctl中包含了数据库和实例的信息,而对于备份恢复的数据库rac11g来说,srvctl中不包含数据库和实例信息。
下面通过srvctl add命令来添加数据库和实例信息:
$ srvctl add database -d rac11g-o /data/oracle/product/11.1/database -m us.oracle.com -p +DATA/RAC11G/spfilerac11g.ora
l+d0I(Gn6qA0$ srvctl add instance -d rac11g-i rac11g1 -n ser1
9z,xgK
U9bc0$ srvctl add instance -d rac11g-i rac11g2 -n ser2
检查数据库状态:
$ srvctl status database -d rac11g
Us*m'Q'f _{0Instance rac11g1 is not running on node ser1
Hi sS.F w8XM.M0Instance rac11g2 is not running on node ser2
数据库目前没有启动,利用srvctl start命令启动数据库:
$ srvctl start db -d rac11g ITPUB个人空间IV{8r.iTt
$ srvctl status db -d rac11g
v:w$[3ES0Instance rac11g1 is running on node ser1ITPUB个人空间0Vk@-F{4ef rV4?A
Instance rac11g2 is running on node ser2
现在RAC数据库RAC11G已经可以通过SRVCTL命令来维护了。
利用srvctl config命令可以看到现有数据库的配置信息:
bash-3.00$ srvctl config database -d rac11g-aITPUB个人空间l"o.{b'S
ser1 rac11g1 /data/oracle/product/11.1/database
*^#igGdhF$Pa
T?0ser2 rac11g2 /data/oracle/product/11.1/database
6pxex*[j0DB_UNIQUE_NAME: rac11gITPUB个人空间
q.Z"s"P-I*@u
DB_NAME: nullITPUB个人空间#@?
J/]#en4yG
ORACLE_HOME: /data/oracle/product/11.1/databaseITPUB个人空间z~)?)s)y
^+F%p
SPFILE: +DATA/RAC11G/spfilerac11g.ora
I:jP%EeBK0DOMAIN: us.oracle.com
:y:}"~)f9MOE0DB_ROLE: null
-^K] FTN g i0START_OPTIONS: nullITPUB个人空间n:g
bBy)I
POLICY: AUTOMATICITPUB个人空间'p
Ze5B:@ `
ENABLE FLAG: DB ENABLED