容灾半自动化的实现思路(一)(r7笔记第91天)

最近也在对容灾的切换做一些改进。 目前碰到的问题有 1.灾难切换后备库的内核参数设置不到位,导致切换后又潜在的性能问题 2.灾难切换后在同机房,网络相关的情况下,需要切换备库的IP为主库,但是跨机房,跨IDC可能不行,可以修改IP的情况下,对应用基本是透明,但是如果修改IP就需要应用修改配置。 3.灾难切换之后防火墙信息在主库无法得到的情况,在备库只能关闭防火墙,或者设置最大的访问权限 4.原来主库中的db link可能无法正常解析,如果解析不当或者依赖较多,会有数据库负载成百倍暴涨的可能性 5.原来主库启用的监听端口,切换之后备库可能无从知晓 6.主库中设置的域名解析,如果不同步或有缺失,切换之后会直接应用listener.ora,tnsnames.ora等等配置。 7.主库的参数配置可能和备库不同,切换之后无从判别这些参数的差别。 8.主备库的profile文件可能不同,这些关键的环境变量可能在切换之后会有差别或者不满足要求。 其实还有一些,容我再想想,继续补充,大体基于以上的一些情况和问题,其实最关键的是这些问题如果发生的时候,还是需要人工介入去修改和校正,灾难切换我希望不要发生,但是发生的概率还是较低,所以一旦发生就会有些措手不及,所以处理问题的时候会花费额外的一些时间。 之前也分析过,其实很多时候我们的备库在数据切换上是有oracle的技术兜底,但是在业务需求方面这些工作还是我们得自己完成,而且我建议为半自动切换,主要是因为failover,switchover 这个需要人工的判定,需要联系业务方来共同协作,而不是自动化的切换,这样很容易造成后续的补充工作跟不上节奏,步调不一致。 以上的这些问题,其实就涉及到一些切换中需要考虑的文件。 1.灾难切换后备库的内核参数设置不到位,导致切换后又潜在的性能问题 --/etc/sysctl.conf, /etc/security/limits.conf 2.灾难切换后在同机房,网络相关的情况下,需要切换备库的IP为主库,但是跨机房,跨IDC可能不行,可以修改IP的情况下,对应用基本是透明,但是如果修改IP就需要应用修改配置。--/etc/sysconfig/network-scripts/ifcfg-ethx, /etc/sysconfig/network 3.灾难切换之后防火墙信息在主库无法得到的情况,在备库只能关闭防火墙,或者设置最大的访问权限 --/etc/sysconfig/iptables 4.原来主库中的db link可能无法正常解析,如果解析不当或者依赖较多,会有数据库负载成百倍暴涨的可能性 -- tnsnames.ora 5.原来主库启用的监听端口,切换之后备库可能无从知晓 --listener.ora 6.主库中设置的域名解析,如果不同步或有缺失,切换之后会直接应用listener.ora,tnsnames.ora等等配置。 --/etc/hosts 7.主库的参数配置可能和备库不同,切换之后无从判别这些参数的差别。 -- initxxxx.ora 8.主备库的profile文件可能不同,这些关键的环境变量可能在切换之后会有差别或者不满足要求。 -- .bash_profile 目前自己设想的实现方式如下。首先需要有一台中控机器,能够访问到主库和备库环境。在中控存放主备库的配置信息。就如同右边的图所示。 然后主库会定期抓取这些配置信息,然后主库和备库建立单向的信任关系,可以直接把主库的配置信息通过crontab同步到备库。 而备库中也会定期抓取自己的配置信息,但是不会同步到主库造成干扰。一旦发生问题的时候可以从中控抓取备库的配置。

以上的配置就需要设定一些规范了。首先需要在主备库中都保持/home/conf这样一个目录结构。 主备库的网卡别名都保持一致,比如都是eth0,如果不同同步过去之后还是可能出现问题。 主备库的/etc/oratab的配置要准确,因为这个文件就是个配置信息,但是如果配置不够规范在后期做解析的时候会有一些麻烦。 主备库的网络配置都保持一样的风格,比如有的主库是使用ip的形式,有的是使用主机名的形式来匹配,这些都统一一下,在切换的时候会更加方便一些。 主备库的主机名都能规范一下,很多时候我看到的主库的主机名是备库的,备库看到的是另外一个主机名,出现问题的时候会比较纠结。 还有一些是需要后期去改进的地方,当然也是自己想一想看看怎么实现了。 怎么通过主库抓取到备库的信息情况,目前的情况如果建立了单向信任关系,其实实现思路还是比较清晰的。 怎么判别主库和备库是否在同机房 怎么判别切换后的ip是否可用 怎么判别ILO信息是否有效,怎么保证在切换IP之后始终保持操作的可持续性。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2016-01-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

Windows开机过程和测试方法探索

用户会经常抱怨自从安装自己的应用后,电脑开机变慢,到底是系统的原因还是应用的原因,为了了解这里的问题,探秘了下windows的开机过程和测试方法。 一、开机过...

25410
来自专栏前端架构与工程

《微信小程序七日谈》- 第五天:你可能要在登录功能上花费大力气

《微信小程序七日谈》系列文章: 本系列的文章并非初学教程,而是笔者在具体开发过程中遇到的问题以及部分解决方案。 前几篇文章的内容主要集中于小程序开发框架中的一...

2288
来自专栏一名合格java开发的自我修养

交易系统使用storm,在消息高可靠情况下,如何避免消息重复

概要:在使用storm分布式计算框架进行数据处理时,如何保证进入storm的消息的一定会被处理,且不会被重复处理。这个时候仅仅开启storm的ack机制并不能解...

943
来自专栏琯琯博客

大型分布式网站术语分析

一、I/O优化 1、增加缓存,减少磁盘的访问次数。 2、优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。 3、设...

2424
来自专栏最高权限比特流

使用linux服务器安装wordpress博客详细教程

3143
来自专栏Golang语言社区

Golang协程与通道整理

协程goroutine 不由OS调度,而是用户层自行释放CPU,从而在执行体之间切换。Go在底层进行协助实现 涉及系统调用的地方由Go标准库...

2687
来自专栏左瞅瞅,右瞅瞅

DNS上线之路(五)——DNS视图

智能DNS是域名服务在业界首创的智能解析服务。能自动判断访问者的IP地址并解析出对应的IP地址,使网通用户会访问到网通服务器,电信用户会访问到电信服...

2044
来自专栏知晓程序

【好文回顾】小程序想要「任性推送」模板消息?这个办法可以一试!

「模板消息」能力,几乎是小程序唯一可以向用户主动推送消息的渠道。有了它,小程序就可以向用户发送重要的消息通知。

952
来自专栏网络

装逼必备:大型分布式网站术语分析

来自: 朱小厮的博客 程序猿自媒体已获转载授权 1、I/O优化 1、增加缓存,减少磁盘的访问次数。 2、优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻...

2189
来自专栏finleyMa

(转) 网站统计中的数据收集原理及实现

原文地址:http://blog.codinglabs.org/articles/how-web-analytics-data-collection-syste...

1801

扫码关注云+社区