修改ora.xxxx.db资源是比较少做的操作,近期因客户修改db_unique_name导致两节点ora.xxxx.db全部显示offline,sqlplus进入发现两实例都是read write状态,此时需要修改ora.xxxx.db资源。
以下是测试信息及过程,修改ora.xxxx.db分为三步骤:
| New | Old |
Db_unique_name | orcl | testuni |
Instance name | orcl1,orcl2 | orcl1,orcl2 |
-
当前状态
[grid@racnode2 ~]$ crsctl stat res ora.testuni.db -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.testuni.db
1 OFFLINE OFFLINE Instance Shutdown
2 OFFLINE OFFLINE Instance Shutdown
-
删除原来配置
[oracle@racnode1 ~]$ srvctl remove database -d testuni
Remove the database testuni? (y/[n]) y
[oracle@racnode1 ~]$
查看状态
[grid@racnode2 ~]$ crsctl stat res ora.testuni.db -t
CRS-2613: Could not find resource 'ora.testuni.db'.
-
添加新的资源配置
[oracle@racnode1 ~]$ srvctl add database -d orcl -o /u01/app/oracle/product/11.2.0/db_1
[oracle@racnode1 ~]$
查看状态
[grid@racnode2 ~]$ crsctl stat res ora.orcl.db -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.orcl.db
- OFFLINE OFFLINE
[oracle@racnode1 ~]$ srvctl config database -d orcl
Database unique name: orcl
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: orcl
Database instances:
Disk Groups:
Mount point paths:
Services:
Type: RAC
Database is administrator managed
由于还未添加实例到ora.orcl.db,这里启动实例会收到以下报错
PRKO-3119 : Database orcl cannot be started since it has no configured instances.
-
添加实例到新资源
[oracle@racnode1 ~]$ srvctl add instance -d orcl -i orcl1 -n racnode1
[oracle@racnode1 ~]$ srvctl add instance -d orcl -i orcl2 -n racnode2
[oracle@racnode1 ~]$
查看状态
[grid@racnode2 ~]$ crsctl stat res ora.orcl.db -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.orcl.db
1 ONLINE ONLINE racnode1 Open
2 ONLINE ONLINE racnode2 Open
[oracle@racnode1 ~]$ srvctl config database -d orcl
Database unique name: orcl
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: orcl
Database instances: orcl1,orcl2
Disk Groups:
Mount point paths:
Services:
Type: RAC
Database is administrator managed
状态正常。
总结:
文章提到的这种操作较少,但是SRVCTL命令很强大,可以再研究下关于其他资源的操作,对于高效率管理集群很有帮助。