做ADG时,修改了数据库的db_unique_name后,alert中报错如下:
ERROR: failed to establish dependency between database mynewdb and diskgroup resource ora.DATA.dg
ERROR: failed to establish dependency between database mynewdb and diskgroup resource ora.REDODG.dg
这个错误不影响使用,但是终归是别扭的……
检查crs中数据库的配置:
[oracle@lunardb2 ~]$ srvctl config database -d lunardb
Database unique name: lunardb
Database name: lunardb
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/lunardb/spfilelunardb.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: lunardb
Database instances: lunardb1,lunardb2
Disk Groups: DATA
Mount point paths:
Services:
Type: RAC
Database is administrator managed
[oracle@lunardb2 ~]$
这里可以看到,以前的spfile(主库的)位置是:+DATA/lunardb/spfilelunardb.ora
此时,即便是手动修改了参数文件位置为 SPFILE=’+DATA/mynewdb/spfilemynewdb.ora’,重启crs后,启动数据库也会有报错信息:
[oracle@lunardb1 ~]$ ss
SQL*Plus: Release 11.2.0.3.0 Production on Wed Sep 24 23:51:54 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
23:51:54 SYS@ lunardb1> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/lunardb/spfilelunardb.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/lunardb/spfilelunardb.ora
ORA-15056: additional error message
ORA-17503: ksfdopn:2 Failed to open file +DATA/lunardb/spfilelunardb.ora
ORA-15173: entry 'lunardb' does not exist in directory '/'
ORA-06512: at line 4
23:51:57 SYS@ lunardb1>
因为它还是自动修改为crs的db资源中的信息,并把以前我手工修改的信息做了备份:
[oracle@lunardb1 dbs]$ cat initlunardb1.ora
SPFILE='+DATA/lunardb/spfilelunardb.ora' # line added by Agent
[oracle@lunardb1 dbs]$ cat initlunardb1.ora.bak.lunardb1
SPFILE='+DATA/mynewdb/spfilemynewdb.ora'
[oracle@lunardb1 dbs]$
可以修改crs中db的spfile位置:
srvctl modify database -d lunardb -p ‘+DATA/mynewdb/spfilemynewdb.ora’
再次检查,可以发现spfile位置已经正确了:
[oracle@lunardb1 ~]$ srvctl config database -d lunardb
Database unique name: lunardb
Database name: lunardb
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/mynewdb/spfilemynewdb.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: lunardb
Database instances: lunardb1,lunardb2
Disk Groups: ARCHDG,DATA,REDODG
Mount point paths:
Services:
Type: RAC
Database is administrator managed
[oracle@lunardb1 ~]$
这里很显然,除了spfile位置,Database unique name也是不对的,因为crs中保存的db信息是根据db_unique_name来判断的,只能通过remove database,然后再add database,add instance等等:
[oracle@lunardb1 ~]$ srvctl remove database -d lunardb
Remove the database lunardb? (y/[n]) y
[oracle@lunardb1 ~]$ srvctl add database -d mynewdb -o /u01/app/oracle/product/11.2.0/db_1
[oracle@lunardb1 ~]$ srvctl config database -d mynewdb
Database unique name: mynewdb
Database name:
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile:
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: mynewdb
Database instances: lunardb1,lunardb2
Disk Groups:
Mount point paths:
Services:
Type: RAC
Database is administrator managed
[oracle@lunardb1 ~]$ srvctl modify database -d mynewdb -a ARCHDG,DATA,REDODG
[oracle@lunardb1 ~]$ srvctl modify database -d mynewdb -p '+DATA/mynewdb/spfilemynewdb.ora'
[oracle@lunardb1 ~]$ srvctl config database -d mynewdb
Database unique name: mynewdb
Database name:
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/mynewdb/spfilemynewdb.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: mynewdb
Database instances: lunardb1,lunardb2
Disk Groups: ARCHDG,DATA,REDODG
Mount point paths:
Services:
Type: RAC
Database is administrator managed
[oracle@lunardb1 ~]$ srvctl modify database -d mynewdb -n lunardb
[oracle@lunardb1 ~]$ srvctl config database -d mynewdb
Database unique name: mynewdb
Database name: lunardb
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/mynewdb/spfilemynewdb.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: mynewdb
Database instances: lunardb1,lunardb2
Disk Groups: ARCHDG,DATA,REDODG
Mount point paths:
Services:
Type: RAC
Database is administrator managed
[oracle@lunardb1 ~]$
好了,alert中信息正常了:
ALTER DATABASE MOUNT
This instance was first to mount
NOTE: Loaded library: System
SUCCESS: diskgroup DATA was mounted
SUCCESS: diskgroup REDODG was mounted
NOTE: dependency between database mynewdb and diskgroup resource ora.DATA.dg is established
NOTE: dependency between database mynewdb and diskgroup resource ora.REDODG.dg is established