利用蓝鲸标准运维实现Oracle DataGuard一键切换

蓝鲸标准运维使用场景介绍(1)

Posted by 老麦 on March 17, 2019

本文通过一个自动化运维项目的真实案例,其中涉及的一个灾备切换的场景,来展示蓝鲸标准运维的强大和灵活性。由于整个灾备切换场景还是比较复杂的,小编仅通过整个流程中涉及的Oracle ADG切换,来演示设计思路和实现过程。如果有进一步的需求,可以联系元鼎科技技术团队。

什么是标准运维

标准运维是一套通过成熟稳定的任务调度引擎,把多系统间的工作整合到一个流程,助力运维实现跨系统调度自动化的’SaaS’应用。标准运维拥有可视化的图形界面,用户可通过它实现任务流程编排和执行,包括发布、变更、开区、扩缩容等执行类操作场景。作为蓝鲸体系中兼顾运维操作和运维流程的标准化、自动化的利器,标准运维通过几大功能点去实现它的价值:

  • 调度编排服务:基于蓝鲸PaaS平台的API网关服务,不仅集成了腾讯蓝鲸产品各大原子平台的能力;而且能够无侵入地对接企业内部已有系统的功能,将企业内部多系统间的工作整合到一个流程模版中,实现一键自动化调度。

  • 自助化服务:标准运维通过与蓝鲸PaaS平台的深度整合,为用户提供了“轻应用”和“职能化”功能,通过有效的权限控制,简化入口通道、操作界面,让用户可以将业务日常的运维工作交给产品和职能化人员执行,实现业务的发布、变更等工作自助化。

Ps:“轻应用”的执行人员,在业务中的角色称为“职能化”人员(区别于“运维人员”、“产品人员”等的一个角色标签)。

  • 标准插件自主开发:标准插件提供一套完整的开发流程规范,通过丰富的表单界面和验证逻辑将企业内部各个系统、各个平台的API组装成一个标准插件模板。使其他的系统通过标准插件的开发模板来调动不同系统间的功能。

如果说大家对于标准运维还没有深入的认识,别着急,下面小编通过企业内的实际运维场景,带大家体验标准运维给日常工作带来的便捷性,给你带来不一样的体验。

标准运维界面

何为Oracle ADG

Data guard是ORACLE 推出的一种高可用性(HIGH AVAILABLE)的数据库方案,在8i之前称之为standby database,从9i开始,正式更名为Data guard,它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现快速切换与灾难性恢复。Data guard只是在软件上对数据库进行设置,并不需要额外购买任何组件能在对主数据库影响很小的情况下,实现主备数据库的同步,而主备机的数据差异只在在线日志部分,所以被不少企业作为了数据容灾方案。Oracle 11g之前的Oracle Data Guard 通过不断地应用来自生产数据库的更改,同步物理备用数据库与相应的生产数据库,以实现数据保护和高可用性。但是必须先停止重做日志的应用才能对备用数据库进行读取。

Oracle Active Data Guard 是Oracle 11g引入的,允许物理备用数据库打开进行只读访问,包括报告、简单或复杂查询、排序、基于Web 的访问等。同时还可以继续应用来自生产数据库的更改。对物理副本的所有查询读取都是实时执行,并且可以返回最新的数据结果。这意味着,需要进行最新只读访问的所有操作都可以在副本上完成,从而可以确保生产数据库的性能。

数据库层双活部署目前业界主要有三种方式:A/S(Active-Standby)方式,Oracle RAC集群实(Active-Active)方式和通过第三方数据复制软件方式。基于Oracle ADG技术,采用从主库向备库传输redo日志方式,备库恢复数据过程可以用只读方式打开进行查询操作,实现了部分双活功能,在主节点故障后可以将备节点切为主节点,平实备节点可以提供只读操作。 2019-03-17-17-21-19

Oracle ADG一般启用场景,包括以下:

  • 作为应急或容灾:只有生产侧可以读写,容灾侧只读,双活读,非双活读写。按照测试,数据库切换时间在30S左右。

  • 作为读写分离机制:分摊生产端压力,降低生产负载。
    • 只读查询业务分离(ADG侧平时运行从生产库迁移过来的查询业务)
    • 数据库备份(使用RMAN进行全备和归档备份到带库)
    • 业务数据实时抽取
    • DB变更前数据库快照备份
  • 作为数据保护手段:如在ADG库上启用Flash DB特性,需要时可以执行闪回,以恢复误操作等导致的生产库上的数据丢失。

需求描述

用户环境有多套Oracle数据库,为了更好的保障业务系统运行,提高服务质量,先后建立了高可用保障手段、应急容灾系统等保护机制,但灾备应用切换依然依赖手工操作,系统切换需要一系列管理和技术流程,维护复杂,生产、容灾端都需要维护。为了降低人工成本,缩短切换时间,减少人工干预,提高了切换的成功率,提升企业的运维水平和故障应急处理能力。用户迫切需要实现将传统手工流程变为全自动化操作流程,同时满足多个业务系统并发切换,以便在突发灾难等紧急情况下,在灾备环境快速恢复业务。并且灾备切换的范围涵盖企业核心业务系统,以及这些系统依赖的包括UNIX、Windows主机、存储、文件系统、数据库、中间件服务、Web服务器及其他应用服务的切换。并达到以下目标:

  • 单一Web入口进入灾备自动切换控制台,无需人工逐一登录各主机进行操作;
  • 严格的权限控制及操作审计日志;
  • 能够根据具体操作流程的要求,以不同用户身份和权限执行指令;
  • 能够直观展示切换进度,一旦发生故障可以快速定位;
  • 能够根据要求实现切换过程中的人工交互处理

实现过程

首先,可以把Oracle ADG的整个切换过程(switchover)分为:

  1. 主备状态检测
  2. 主库切换为备库
  3. 备库切换为主库
  4. 在新的备库上(原主库)执行启用日志实时应用模式

通过标准运维的“分支网关“中分支节点的条件进行判断,确定下一步执行的节点。当执行任务期间如果出现“异常情况”时,则通过分支条件给负责人发送邮件提示,并且暂停任务,通过以上分解的流程编排步骤,实现一键灾备切换。同时,标准运维“并行网关”可以实现流程同步进行,并将通用流程编入“子流程”,结合输入输出参数,实现一次编排,多次使用的效果2019-03-17-17-59-39 上图清晰展示了Oracle ADG的切换过程,当切换过程出现异常情况时,DBA可以立刻收到告警通知介入处理,快速判断并恢复故障。同样,其它Oracle ADG之外的类似灾备切换场景,也可以在以上流程模板的基础上,根据具体环境和场景要求,通过对流程节点的编排和参数调整来轻松实现适配。

总结

以上,通过一个在传统IOE场景比较普遍的Oracle ADG切换场景,初步展示了蓝鲸标准运维设计和实现的过程。进一步的,可以把这个场景做进一步的丰富和扩充,比如纳入应用服务器的切换和启停,以及加入不同环节的人工交互处理过程。总之,拥有标准运维这把流程编排的的万能之匙,任何企业的IT部门或运维团队,在面对各种各样的复杂运维流程和场景时,都可以通过标准运维将这些重复性、规律性的手工作业场景,进行灵活的分解、组装和编排,实现并满足企业对运维自动化的需求,并带来显著收益。