Oracle 修改集群的资源属性(依赖关系)

修改集群的资源属性:

在11g中
使用Crsctl modify resource res_name -attr 命令可以随意添加修改集群的各项资源的属性

来个例子:
查看数据库资源的全部属性:
[grid @rac1 ~]$ crsctl status res ora.racdb.db -f
有两列这样的内容
GEN_USR_ORA_INST_NAME @SERVERNAME(rac1)=racdb1
GEN_USR_ORA_INST_NAME @SERVERNAME(rac2)=racdb2

添加:
[root @rac1 ~]#
crsctl modify resource ora.racdb.db -attr “GEN_USR_ORA_INST_NAME @SERVERNAME(rac3)=racdb3”
再次查看:
GEN_USR_ORA_INST_NAME @SERVERNAME(rac1)=racdb1
GEN_USR_ORA_INST_NAME @SERVERNAME(rac2)=racdb2
GEN_USR_ORA_INST_NAME @SERVERNAME(rac3)=racdb3

删除:
[root @rac1 ~]#
crsctl modify resource ora.racdb.db -attr “GEN_USR_ORA_INST_NAME @SERVERNAME(rac3)=racdb3” -delete

修改其他属性:
crsctl modify resource ora.racdb.db -attr “STOP_TIMEOUT=700”;
crsctl modify resource ora.racdb.db -attr ‘’SERVICE_NAMES=rac2.neves.com’’

修改集群资源依赖关系:
首先查看数据库资源依赖的其他资源有哪些:
[grid @rac1 ~]$ crsctl status res ora.racdb.db -f //查看资源的全部属性

修改:
[root @rac1 ~]#
crsctl modify resource ora.racdb.db -attr “STOP_DEPENDENCIES=hard(intermediate:ora.asm)”;
[grid @rac1 ~]$ crsctl status res ora.racdb.db -f //查看

stop_dependencies 发生变化。

但是我想使用crsctl modify resource将其修改回来:
[root @rac1 ~]#
crsctl modify resource ora.racdb.db -attr “STOP_DEPENDENCIES=hard(intermediate:ora.asm,shutdown:ora.DATA.dg)”;

CRS-4228: Value of attribute ‘shutdown:ora.DATA.dg)’ is missing
CRS-4000: Command Modify failed, or completed with errors.
//报错

采用这种方式添加:(这种方式只能修改数据库对磁盘组的依赖项)
[root @rac1 ~]# srvctl modify database -d racdb -a “DATA”
// -acfspath “ “ Comma separated list of ACFS paths where database’s dependency will be set
将在其中设置数据库依赖项的ACFS路径的逗号分隔列表
如果 -a “DATA1,DATA2” 那么数据库依赖的磁盘组就为DATA1 DATA2

//经常使用的场景在于RAC环境下更换DATA盘时,例如现需要将数据文件从DATA盘迁移到NEWDATA盘中,迁移完成后,我们就需要使用该命令来修改数据库对磁盘组的依赖。

—

在12.1.0.2以后crsctl modify resource res_name 该命令就不再支持了,但是如果我们需要使用,可以添加-unsupported子句

例如:
[root @rac1 ~]#
crsctl modify resource ora.orcl19c.db -attr “GEN_USR_ORA_INST_NAME @SERVERNAME(rac3)=orcl19c3” -unsupported
[root @rac1 ~]#
crsctl modify resource ora.orcl19c.db -attr “GEN_USR_ORA_INST_NAME @SERVERNAME(rac3)=orcl19c3” -delete -unsupported
并且在12.1.0.2后出现一个预估选项
[root @rac1 ~]#
crsctl eval modify resource ora.ora19c.db -attr “GEN_USR_ORA_INST_NAME @SERVERNAME(rac3)=orcl19c3” -unsupported

结论:
11g中可以使用crsct modify resource res_name -attr 修改资源属性。
但是如果使用该命令修改资源依赖关系stop_dependencies start_dependencies的话,有些可以随意修改成功,有些却无法随意修改成功,会出现
Value of attribute missing的错误。
这样就无法修改:

这样就修改成功:
[root @rac1 ~]#
crsctl modify resource ora.racdb.db -attr “START_DEPENDENCIES=hard(ora.DATA.dg) pullup(ora.DATA.dg)”

从12.1.0.2以后crsctl modify resource res_name 不再支持,使用需要添加-unsupported子句。

请使用浏览器的分享功能分享到微信等