半自动化搭建Data Guard的想法和实践(二)

关于半自动化搭建Data Guard,自己花了一些时间,总算是把这件事情继续推进了一下,还是再啰嗦一句,为什么不自动化,因为安全。主库就是主库,任何变更都要手工检查审核,自动化的工作在备库和中控端来完成。我希望自己的脚本能够只知道主库的IP,不用一次又一次连过去配置和检查,当然要完成自动化还是半自动化,有些网友也提醒的极是,那就是规范和标准。
预先条件:
1.目前的设计是基于11.2.0.4的版本,当然这个很容易定制,在此是作为一个基本的标准,作为环境的初始化和Data Guard对的搭建的基线。
2.默认主库是开启了DG Broker,即dg_broker_start=true,这个是DG Broker配置的必备要求,为什么要这么配置,因为这个工具确实很方便实用,强烈推荐。
3.数据库主库启用了spfile,这个是DG Broker的一个基本要求,而且本身spfile也是提倡使用的。

而一套主库环境和另外一台未知的服务器要搭建Data Guard环境,还是有很多的依赖条件。这些细节之处不检查,后期的工作就无从开展,所以自己在写脚本的过程中越来越意识到这些的重要性,因为在后期的脚本中验证再详细再完整,这些预先条件不满足,最后还是无功而返,所以我们可以考虑一个统一的检查脚本来评估,可以就pass,失败就failed.
大体列举了一些检查项,如下:
主备软件版本一致
主库IP确为主库
主库没有其他的数据库实例
备库没有其它的数据库实例
主备库的磁盘空间情况
主备库的操作系统检查
是否已存在其他备库,已存在备库是否为ADG,备库的compatible
主备库的CPU资源
主备库的内核参数情况
主库是否启用spfile(需要判断是否满足DG Broker的要求)
主库是否开启DG Broker
主备ORACLE_HOME一致
主库启用归档模式
主库DG Broker启用

有些可能还需要进一步确认和整理,但是这个脚本是搭建的基础,这些条件可以设定一个阈值,比如主备库的CPU资源,不能差太多,主库64c,备库8c这种是需要提前判断出来的。主备库的版本不同这些也是需要提前发现的。
而实现的脚本需要配置一个文件autodg.cnf
export db_name=statdb1
export pri_db_unique_name=statdb1
export pri_db_ip_addr=10.127.133.9
export std_db_unique_name=statdb2
export std_db_ip_addr=10.127.133.4
标示主备库的信息即可。
脚本的运行效果如下,先实现了一部分功能,是中控端的操作,剩下的就是主库端,备库端了。
10.127.133.9
NAME      DATABASE_ROLE    OPEN_MODE
--------- ---------------- --------------------
STATDB1   PRIMARY          READ WRITE

  Databases:
    statdb1 - Primary database
    statdb3  - Physical standby database

NAME                           VALUE
------------------------------ --------------------------------------------------
db_file_name_convert
db_name                        statdb1
db_unique_name                 statdb1
dg_broker_start                TRUE
local_listener                 statdb1
log_file_name_convert
standby_file_management        AUTO
.
RAC   LOG_MODE      INST_ID INSTANCE_NA HOST_NAME       VERSION         STATUS   STARTUP_TIME
----- ---------- ---------- ----------- --------------- --------------- -------- ---------------------
NO    ARCHIVELOG          1 statdb1     statdb1.test.com 11.2.0.3.0      OPEN     07:06:10 23-DEC-13
      ,PRIMARY                         
.
ORACLE_HOME is:/U01/app/oracle/product/11.2.3/db_1
statdb1 - Primary database   SCN:712764:CURRENT
.
statdb1 - Physical standby database
  Intended State:  APPLY-ON
  Transport Lag:   0 seconds
  Apply Lag:       0 seconds
HOST = 10.127.133.9
PORT = 1521
SERVICE_NAME = statdb1
BACKUP ORACLE LEVEL CONF FILES ...DONE
.
Run below scripts to open firewall
./open_firewall.sh  10.127.133.9  1521    10.127.133.4
./open_firewall.sh 10.127.133.4    1521  10.127.133.9
这个过程会从主库抓取配置文件的信息,然后在中控端做变更和补充,拷贝到备库端。
脚本的内容比较长,可能涉及若干个文件,我近几天提供一个下载的链接,感兴趣可以下载试用。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-2122879/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-2122879/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值