话题
Topic
由于核心工作人员的相继离职,运行了15年的国内数据库著名论坛**PUB在中秋节前,因bug修复请求导致全库关闭2天多,数据丢失近4个月。因工作人员的疏忽导致数据丢失的情况屡见不鲜,那么你是怎么管理/维护所在公司的数据库的?贵公司有多少套或多少比例的数据库没有每年至少2次恢复演练?重大操作前,是否都会对可能存在的风险进行评估,并准备好相关预案和应急措施?针对此著名论坛事故,你觉得有必要调整公司的数据安全保护策略吗?(本期话题贡献人:杨志洪)
vage:从备份方式上说,我待过的几家电商,都依赖主、备库方式备份。一主两备,两备之中,一个备库是实时恢复,作为存储级高可用。另一个备库当延时恢复,应对误用户级操作。极少量库有磁带啊这样的备份方式。
主、备的切换的恢复演练我们每年都会做。核心、重要的库,每年都至少做一次主备切换。我们所有库都有主备库这样模式的容灾环境。
周睿婷的爸爸:一般公司都会根据系统的重要程度,RTO、RPO的要求制定相应的数据库备份和容灾规范,像金融行业保监会,银监会都下发了明确的文档规定RTO、RPO时间。如果企业没有制定相关的规范那是管理上的问题,如果制定了规范但是正确有效的执行肯定是DBA的问题了。丢了2个月数据估计是DBA备份检查工作没做好吧。
我们做过一些基于PPRC、SVC和DG异地容灾的方案,我记得SVC每次同步有一个最小值(好像是25M),哪怕你更改的块不多它还是以最小值为单位传输的。我觉得从网络带宽和验证便捷的角度DG是有优势的。
Ora-Dual:我理解的(Oracle数据库)主备,用ODG来做会好于在存储上复制的主备方式,但这个也要看一些特定的场景。比如低版本的Oracle数据库用ODG会有困难,至少我们这边对于这样的环境用的是goldengate。
双存储做asm Failover diskgroup用IBM的remo mirror。本地磁盘陈列到本地san网络,通过电信交换再到远端的san交换,最后到远端阵列。
十一月肖邦:ogg对于磁盘级拷贝(HDS的HUR方案操作系统做镜像还是很难控制一致性),现在灾备有sanboot技术方便很多,但是对于异地灾备(北京-上海单向)还是需要做很多配置,dataguard这种方案对于异地灾备方案基本可以忽略,对于数据中心级别异地灾备,基本是HDS和EMC的天下。
dg异地灾备可以是可以,但要看距离,因为要铺光纤。异地灾备基本都是磁盘级别拷贝,dg的作用基本无视,只能当作高可用的功能。
做db就不要干什么都想着db,db的东西是应用层,等你要去恢复应用,已经是最糟糕的情况了。就像你家着火了你还在搬家电,这个时候一定要赶紧逃跑。所以一定要快,抢时间恢复,能恢复多少是多少,允许数据丢失。如果不允许数据丢失,这个世界估计没人做得到。
Joseph:应用级的好处就是可以保证事务的一致性,各有各的应用场景,磁盘级的copy在远距离传输中更有优势。远距离磁盘copy延时一般要求低于5ms,而这种要求也是针对应用的有要求,所以要在一定前提下做灾备的规划。磁盘基于块级,可以做到更小颗粒度,节约了带宽,延时更小。
白鳝:十多年前帮一个银行搞过一个工具叫开库操作管理平台,一个人写sql,一个人评审,通过才执行,在核心账务库操作只能通过这个平台。
架构上保证误操作可纠正是更好的办法,Oracle的闪回就是干这个的,可以在dg上开闪回。早年我们给客户设计高可用的时候设计两个dg,一个自动recover,做灾备用,一个延时apply,做误操作的恢复用。
alex-t:容灾还是dg靠谱,存储的最多做备份。存储底层没办法保证数据一致性,一般要用for Oracle组件配合,而且实时性不好,还是dg架构简单,管理便捷。
小徐:对于存储还是adg最好同时使用,存储方式虽然快,但是安全性谁都保证不了,再说现在带宽相对廉价了,使用adg也未必不可,可以与存储结合使用。
流氓才子:我觉得,重大操作时要按照标准化流程。建立多级审核制度,越是重要的操作,越是需要审核,最好来个评估委员会,虽然效率低了点
tony:容灾讲体系的,不仅仅这个那个复制技术,最重要的是符合企业业务需求。双活也好,单活也罢,都是为业务服务。
杨志洪:这个话题很有意思,私下跟几个制造业的朋友聊天,我们大家都知道容灾的重要性,但是有些老板不这么认为,甚至真建设好了他都没办法跟老板说有什么成效。我想说,这就是**PUB事故的源头,当最后一个熟悉环境的人离开后,灾难随踪而至。不管你用什么技术实现,如果你的核心数据库还没有容灾,甚至还没有备份,那是时候做起来了。
在“DBA+社群”热议话题讨论活动中,得到了以下联合发起人以及群友们的积极参与和支持。在此,小编整理成文,并附上所有发表观点的人员头像汇总图,特此鸣谢!
本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2015-9-29