Data Guard故障自动切换的想法(r11笔记第40天)

    大概在2年前,我写过一篇文章,当时也算是随感。由Gavin King的故事所做的感悟 (r4笔记第24天),年轻嘛,都是意气风发,想好好撸起袖子大干一场。

    但是可能很多人都会碰到了这样一个问题,那就是在公司内造轮子的情况非常普遍,而且很多时候一个脚本,工具,系统只是适用于具体的业务,脱离了系统平台,部门之外,公司之外都无法适用。很多应用要联系具体场景,这个无可厚非,就如同一个表test,含有3个字段,里面可以存放100条应用数据,也可以存放200条,这个是根据具体业务具体对待的。很多时候都是由个别几个人牵头做成的,而有一个似乎不变的现象就是一旦负责人离开,要么就是重复造轮子,要么就是被废弃。

   从公司的层面来说,其实一定程度上有耦合是件好事,因为很多东西不希望太通用,太容易被复制。这个原因可能会略微复杂一些,但是也没有错。

  延伸到数据库方面,我想对于很多DBA来算,能够做到故障的自动切换是一件蛮不错的事情。这个从能力,技术上都是一种非常大的提升和考验。

  我也有很多不错的想法,但是如果有时候没有切磋交流,就会发现其实有些想法不是太迫切,有些细节是需要引起注意的。

   打个比方,一个普通的Data Guard故障切换场景可能看起来简单,其实涉及很多面,而这些方方面面如果都能够逐个攻破,那就回归了问题的本质,有个说法挺好,提高DBA的幸福度。

    有些场景是一主一备的,可能实现的时候就是只考虑了这样的情况。

  

    有些场景可能会有代理服务器,中控服务器等的角色,这个对原来已有的实现方式就有很大的改动。

    有些场景可能是一主多备的架构,那么故障切换的时候就需要做很多的事情。如果再加上代理服务器,中控服务器,这个场景就更加复杂。


    所以有时候要做加法,有时候要做减法。总之加加减减,可加可减。

    目前设想的Data Guard故障切换的具体实现方式,主要是解决计划外的故障场景,比如服务器宕机,切换业务到备库,对调IP地址,重新配置主备关系,甚至实现自动化搭建备库的场景。这样一来我们就可以极大的从中受益。

     这件事情,还是要做的,而且我觉得也是目前对我来说感觉相对自由,有一些自己的空间的一个原因。

     要实现这个需求,说实话,有些地方简单,需要地方真心难。但是凡事都有循序渐进的过程,我简单梳理了一下,和团队也做了简单的交流,大体是这样的一个演进方式。

1.    梳理目前的资产信息,系统资产列表目前只有物理信息,但是对于主备关系的标识,机房位置,备库的切换优先级目前需要进一步补充。
2.    系统元数据备份
    涉及主库的防火墙信息,/etc/hosts,内核参数配置等
    备库的防火墙信息,主机配置,内核参数配置等
3.    数据库元数据备份,涉及数据库的listener.ora,tnsnams.ora,参数文件
4.    故障切换脚本化  故障切换有几个方面的检查工作。
    1).    检测主库是否可访问(系统,网络,数据库)
    2).    检测备库的数据同步情况
    3).    判断故障切换的优先顺序和服务可用性检测
    4).    数据库角色的切换(备切主)
 5.    数据库IP对调  
 6.    自愈稽核
    1).    检查数据库连接数和应用连接情况
    2).    多备库的主备关系重新配置
    3).    元数据备份
    4).    操作日志归档和通知
7.    自动化搭建备库,如果是多备库环境,准备好备库环境,自动化配置

大体上上面的一个步骤,尤其是第7步,是本次故障自愈的一个亮点,那就是自动化搭建Data
Guard,思路就是使用一台备用服务器,根据需求搭建Data
Guard,比如我有10套环境,我们添加一个服务器作为备机,在故障发生的时候,能够根据故障情况搭建Data Guard.

   我现在也在规划中,最近会打算在github上来一起做点东西出来。

时间: 2024-10-23 18:09:05

Data Guard故障自动切换的想法(r11笔记第40天)的相关文章

Oracle Data Guard延迟的几个可能(r11笔记第69天)

     Oracle Data Guard中很可能出现延迟的情况,而数据一旦出现延迟就意味着丢数据.退一步来说丢数据总比数据乱了好,但是回过头来,能不丢数据但是丢了,这就有些说不过去了.     因为预防人为误操作等,可能有些环境中会特意设置一个延迟,基本就是下面的设置方法: 方法1: alter database recover managed standby database delay 120 disconnect from session;方法2: alter system set l

Data Guard实现故障自动切换(二)(r11笔记第39天)

   今天下午我的一个朋友碰到了一个Data Guard的问题,大体是主备网络出现问题,因为环境中配置了自动切换,结果备库就自动切换为了主库,这样就成了"双主",我帮忙看了下,对备库做了闪回,然后直接转换主库为备库角色,一个看似繁琐的修复工作就完成了.    在一个一主多备的环境中,的确需要一个强大的工具来支持,所以最后朋友说DG Broker真是个好东西,我回了句 用好了DG Broker,手工管理Data Guard就是小米加步枪啊.    就如同我昨天文章Data Guard故障

keepalive之mysql故障自动切换shell脚本

MySQL架构为master-slave(主从),master故障自动切换到slave上.当然也可以设置为双master,但这里有个弊端:就是当主的压力很大时,从上延时很大,比如落后2000秒,此时主挂了,从接管(VIP漂移到从),用户刚才发表的文章,此时因为同步延时大,还没复制过来,于是用户又发表了一篇文章,当原来的master修好后,因从的IO和SQL线程还在开启状态,还会继续同步刚才没有同步复制完的数据,这时有可能把用户新发表的文章更改掉,造成用户数据丢失.  考虑到这种情况,我这里还是用

Oracle Data Guard 理论知识

Oracle Data Guard 理论知识   来源:Linux社区 作者:tianlesoftware       RAC,Data Gurad,Stream是Oracle高可用性体系中的三种工具,每个工具即可以独立应用,也可以相互配合.他们各自的侧重点不同,适用场景也不同.   RAC它的强项在于解决单点故障和负载均衡,因此RAC方案常用于7*24的核心系统,但RAC方案中的数据只有一份,尽管可以通过RAID等机制可以避免存储故障,但是数据本身是没有冗余的,容易形成单点故障.   Data

DG7——物理Data Guard 下Failover 时Redo 的处理问题

原文转自:http://blog.csdn.net/tianlesoftware/article/details/5989638 和老大讨论了一下Oracle Data Guard 下redo 的问题. 在Data Guard 环境下,归档文件是可以在备库应用的. 假如主库直接crash后,无法登陆,这时在将备库切换为主库的时候,如何处理主库的redo 就是关键. 因为这里的数据就是可能丢失的数据.   所以做了一个实验验证,验证redo 的处理.即将主库的redo 直接copy到备库,然后通过

10秒自动切换 浪潮服务器让深交所新一代交易系统不惧风险

早在2008年,美国NMS修正法案要求建立全国统一的证券市场,在任何一个交易所挂牌上市的股票可以在其他交易所进行撮合交易于是,全球各大证券交易所开始更新交易系统,采用开放平台,打造更快速度,更低延时的证券交易系统. 面对激烈的国际竞争和国内证券市场的新需求,深交所提出了采用开放平台建设新一代交易系统的设想.经过长达8年的努力,2016年6月,深圳证券交易所(以下简称"深交所")第五代交易系统正式上线运行,这套交易系统由深交所基于开放平台自主研发,可容纳超过3亿个投资者账户,证券数量从原

【DATAGUARD】物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置

[DATAGUARD]物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置 1.1  BLOG文档结构图       1.2  前言部分   1.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Data Guard Broker 的配置 ② Fast-Start Failover 的配置 ③ Oracle DataGuard 之客户端TAF 配置 ④ 使用DGMGRL 来管理数据库 ⑤

数据库主备切换-Oracle Data Guard 切换数据库无成功反馈

问题描述 Oracle Data Guard 切换数据库无成功反馈 Oracle Data Guard 切换数据库 切换主库为备库输入 Alter database commit to switchover to physical standby with session shutdown; 后不出现Database altered提示 没有任何反馈信息 这是什么原因? 解决方案 http://wenku.baidu.com/link?url=SgdMwsixAP6-wPLqV99ulf6qbi

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

    一直以来搭建Data Guard是一件看起来还蛮有含量的工作,因为这其中涉及的工作比较琐碎,比较细,况且手工搭建起来都会碰到各种各样的问题,如果中途碰到一点儿小问题,那可能需要花点时间来排查,如果想要脚本自动化,那简直寸步难行.所以搭建Data Guard一方面会需要很多的提前准备和配置,另一方面这个工作自动化的驱动力不够,毕竟环境不会像MySQL业务一样动辄几十成百上千的规模,所以由此而来,好像搭建一个套环境的成本也值了,如果尝试自动化,半自动化,那花费的时间估计够搭建10套环境了.所