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

简介: 关于半自动化搭建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
这个过程会从主库抓取配置文件的信息,然后在中控端做变更和补充,拷贝到备库端。
脚本的内容比较长,可能涉及若干个文件,我近几天提供一个下载的链接,感兴趣可以下载试用。

目录
相关文章
|
2月前
|
运维 监控 安全
从实践到自动化:现代运维管理的转型与挑战
本文探讨了现代运维管理从传统人工模式向自动化转型的必要性与路径,分析了传统运维的痛点,如效率低、响应慢、依赖经验等问题,并介绍了自动化运维在提升效率、降低成本、增强系统稳定性与安全性方面的优势。结合技术工具与实践案例,文章展示了企业如何通过自动化实现运维升级,推动数字化转型,提升业务竞争力。
|
9月前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
204 11
|
10月前
|
监控 jenkins 测试技术
自动化测试框架的构建与实践
【10月更文挑战第40天】在软件开发周期中,测试环节扮演着至关重要的角色。本文将引导你了解如何构建一个高效的自动化测试框架,并深入探讨其设计原则、实现方法及维护策略。通过实际代码示例和清晰的步骤说明,我们将一起探索如何确保软件质量,同时提升开发效率。
207 1
|
10月前
|
Kubernetes 持续交付 开发者
探索并实践Kubernetes集群管理与自动化部署
探索并实践Kubernetes集群管理与自动化部署
373 93
|
8月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
415 9
|
9月前
|
运维 监控 持续交付
自动化运维在现代数据中心的应用与实践####
本文探讨了自动化运维技术在现代数据中心中的应用现状与实践案例,分析了其如何提升运维效率、降低成本并增强系统稳定性。通过具体实例,展示了自动化工具如Ansible、Puppet及Docker在环境配置、软件部署、故障恢复等方面的实际应用效果,为读者提供了一套可参考的实施框架。 ####
|
9月前
|
运维 监控 Devops
自动化运维实践:打造高效的DevOps流水线
在软件开发的快节奏中,自动化运维成为提升效率、确保质量的关键。本文将引导你理解自动化运维的价值,通过实际案例分享如何构建一个高效、可靠的DevOps流水线。我们将从持续集成(CI)开始,逐步深入到持续部署(CD),并展示代码示例来具体说明。准备好让你的运维工作飞跃式进步了吗?让我们开始吧!
|
10月前
|
敏捷开发 Java 测试技术
软件测试中的自动化策略与实践
在快速迭代的软件开发周期中,自动化测试是确保产品质量和提升开发效率的关键。本文将深入探讨自动化测试的重要性,介绍实用的自动化测试框架,并通过一个具体的代码示例,说明如何实现一个简单的自动化测试脚本。
89 12
|
9月前
|
jenkins 测试技术 持续交付
自动化测试框架的搭建与实践
在软件开发领域,自动化测试是提升开发效率、确保软件质量的关键手段。本文将引导读者理解自动化测试的重要性,并介绍如何搭建一个基本的自动化测试框架。通过具体示例和步骤,我们将探索如何有效实施自动化测试策略,以实现软件开发流程的优化。
318 7
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
智能化软件测试:AI驱动的自动化测试策略与实践####
本文深入探讨了人工智能(AI)在软件测试领域的创新应用,通过分析AI技术如何优化测试流程、提升测试效率及质量,阐述了智能化软件测试的核心价值。文章首先概述了传统软件测试面临的挑战,随后详细介绍了AI驱动的自动化测试工具与框架,包括自然语言处理(NLP)、机器学习(ML)算法在缺陷预测、测试用例生成及自动化回归测试中的应用实例。最后,文章展望了智能化软件测试的未来发展趋势,强调了持续学习与适应能力对于保持测试策略有效性的重要性。 ####

热门文章

最新文章