数据库的容灾与备份,你是如何处理的?

简介:

话题

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+社群”热议话题讨论活动中,得到了以下联合发起人以及群友们的积极参与和支持。在此,小编整理成文,并附上所有发表观点的人员头像汇总图,特此鸣谢!

 
 

 

数据库的容灾与备份,你是如何处理的-1

本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2015-9-29

目录
打赏
0
0
0
0
75
分享
相关文章
mysql数据库备份与恢复
MySQL数据库的备份与恢复是确保数据安全性和业务连续性的关键操作。
289 4
PolarDB开源数据库进阶课11 激活容灾(Standby)节点
本文介绍了如何激活PolarDB容灾(Standby)节点,实验环境依赖于Docker容器中用loop设备模拟共享存储。通过`pg_ctl promote`命令可以将Standby节点提升为主节点,使其能够接收读写请求。激活后,原Standby节点不能再成为PolarDB集群的Standby节点。建议删除对应的复制槽位以避免WAL文件堆积。相关操作和配置请参考系列文章及视频教程。
70 1
PolarDB开源数据库进阶课5 在线备份
本文介绍了如何在PolarDB RAC一写多读集群中进行在线备份,特别针对共享存储模式。通过使用`polar_basebackup`工具,可以将实例的本地数据和共享数据备份到本地盘中。实验环境依赖于Docker容器中用loop设备模拟的共享存储。
67 1
PolarDB开源数据库进阶课2 创建容灾(standby)节点
本文介绍了如何在macOS中搭建PolarDB的容灾(standby)节点,作为“穷鬼玩PolarDB RAC一写多读集群”系列的一部分。基于前一篇通过Docker和loop设备模拟共享存储的经验,本文详细描述了创建虚拟磁盘、启动容器、配置网络、格式化磁盘、备份数据及配置standby节点的具体步骤。
56 0
利用Cron表达式实现MySQL数据库的定时备份
以上就是如何使用Cron表达式和mysqldump命令实现MySQL数据库的定时备份。这种方法的优点是简单易用,而且可以根据需要定制备份的时间和频率。但是,它也有一些限制,例如,它不能备份MySQL服务器的配置文件和用户账户信息,也不能实现增量备份。如果需要更复杂的备份策略,可能需要使用专门的备份工具或服务。
44 15
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
如何快速在表级别做同构或者异构数据库之间的数据迁移/备份
【8月更文挑战第17天】本文介绍在同构与异构数据库间快速迁移/备份表级数据的方法。同构迁移可利用数据库自带工具(如MySQL的`mysqldump`)或管理软件(如phpMyAdmin);异构迁移则推荐使用ETL工具(如Pentaho Data Integration)或数据库复制工具(如SymmetricDS),亦可通过编程方式实现。实施前需测试以确保数据完整准确,并注意处理兼容性问题。
343 4
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
414 3
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
219 3
介绍一下数据库的备份和恢复策略
【10月更文挑战第21】介绍一下数据库的备份和恢复策略

热门文章

最新文章