Oracle备份的异地保存,在生产数据库进行备份,将备份数据传到灾备,这种备份方式是否可行?

想请教一下,对于Oracle备份的异地保存,是在生产数据库进行备份,将备份数据传到灾备?还是放在灾备DG数据库进行备份,再将备份数据回传到生产?哪种方式使用比较多,谢谢!

问题来自社区活动,由会员@birdnet axa 系统运维工程师提出,来自twt社区众多同行的分享,欢迎大家参与交流,各抒己见。

  • “争议”栏目内容来自同行分享的一手体验和观察,仅代表个人观点

@kevinshopping 某保险有限公司 科技信息经理:

本地备份和灾备是两个概念:

本地备份:是对生产数据进行本地备份,用于生产环境数据误操作时提供数据恢复能力。

数据灾备:灾备主要根据容灾目标要求在灾备端对数据进行恢复用于接管业务或灾备演练。

对于Oracle数据库一般为本地进行数据备份(备份软件将数据备份至存储或带库中),通过DG再将日志同步到灾备端(当然也会通过备份软件或系统进行日志压缩去重后再同步到灾备中心)。备份时会产生大量的数据传输,对传输带宽要求比较高,所以一般都是采用本地备份,且备份网络一般为单独规划,与业务生产网络分离。

@金融行业 工程师:

在生产库进行备份,传统取数多少会影响生产性能。在DG库需要额外预算,也不便宜。可以直接抽数到异地灾备,这种方法区别传统的通过数据库接口取数,而是通过SQL备端异步复制实现。

@wanggy 戴尔科技 系统工程师:

按照目前接触的数据日常备份的情况,主要还是在Oracle生产端进行备份,经过去重之后传输到异地,保证本地备份是完整的备份。

Oracle DG传输到异地,然后备份之后再传回来,这样本地的数据会和生产有一个时间差,RPO很短的话会对网络带宽有很高的要求。

@赵海 技术经理:

仔细看了一下这个问题,最终的目的似乎就是为了将备份保留住,以备异常场景下的异机恢复。

从备份对生产性能的影像角度,从DG备库做备份的思路是正确的。从容灾角度来讲,备份数据也应该留存两份:生产一份,备份一份。

那么接下来的问题就是备份从哪里做,生产端还是灾备端?

我们知道,备份数据除了有在及其极端的情况下的异机恢复之外,更重要的是保障及时恢复。如果从灾备端备份然后再回传到生产端,这其中存在着大量的时间差,及时回传回去的数据可以帮助恢复数据,但是RTO会差很多,价值有限。

所以还是建议从生产端做备份,然后传递到灾备端。有条件的话,本地可以做个DG,然后再DG实例上进行备份,实在不行就从RAC的其中一个实例进行。

@潘延晟 系统工程师:

对于备份来说,实现的方式有很多种,投入的资金和实现的效果也各有不同,具体采用哪种方式首先要考虑的就应该是业务数据的重要性和规模。

首先我们来说题主的问题:Oracle数据库,通过导出或者RMAN脚本备份到本地磁盘中,然后再通过脚本把备份的文件传送到灾备上,或者通过灾备DG数据库备份,再把备份数据回传到生产环境中,两种方式上技术上都是可行的,两种方式都实现了备份数据在异地的数据备份。不过备份讲究时效性,个人建议还是从生产端备份然后再把数据传送到在灾备机中。

另外,如果业务数据比较重要,我个人建议还是建立独立的备份系统专门来做数据备份。

1 ,可以避免生产环境和备份环境中勒索病毒导致备份数据无法正常恢复。

2 ,直接备份到备份系统的存储,减少了对生产机的性能影响和存储空间占用。

3,可以更方便灵活的制定备份策略。

@孙伟光 中国金融电子化公司 IT顾问:

异地保存数据属于灾备范畴了,使用DG或者OGG或者其他技术实现Oracle数据库的数据保存。

生产数据库备份传到灾备,如果对RPO没有要求,可以这么做,从数据安全和效率上不建议这么做。

@trouble_qu 戴尔科技 售前技术支持:

个人认为采用生产端数据库备份,再通过备份复制技术传输到灾备去的方式是相对更合适的,这是由于:

1.数据库备份通常是用于应对数据逻辑性错误,人为误操作或故意删数据等场景,这些场景下生产数据中心通常没有遭遇大规模灾难,仍是可用的,且灾备端的数据同样可能造损毁,因此此时最佳的解决方案是直接在生产环境用备份进行恢复。而如果按照采用灾备端备份的方案,则需要将备份数据恢复后回传生产再恢复业务,耗时较长。

2.备份复制技术通常会是基于消重或压缩的数据进行传输,对带宽占用较小,传输效率也高。

因此,还是建议采用生产端数据库备份,再通过备份复制技术传输到灾备去的方式。

@张文正 dcits 系统工程师:

一般来讲,在生产端进行数据备份,用于在生产端的数据备份和恢复,在本地恢复时间比较快;把备份的数据传到灾备主要是用于容灾使用;建议有条件的话做同城数据双活或者存储双活,同时在灾备端部署主机和相应的应用。

@王巧雷 sino-bridge 系统工程师:

这个看你们RTO和RPO的要求,在技术上是可行的,需要从其他方面考虑下:

  1. 首先已经做了DG,容灾层面数据已经有了双份,在数据冗余上已经有了保证。备份是在DG的基础上做的一个补充,比如误操作,重大灾备导致的数据丢失。
  2. 考虑下需求,主库的备份是否有恢复需求,如果有恢复的时限要求是什么,如果发到异地,恢复时是否可以满足要求。如果这些不是问题,直接在DG备份就行。
  3. 如果资源允许可以主备两端都备,且各自存放,或交叉存放。这些也可通过某些备份软件的容灾复制功能来实现。

@huijx 某银行 系统运维工程师:

您的需求是先备份,然后找个相对安全的地方保管备份文件。

把生产备份出来放到灾备中心是合理的。

@cpc1989 某保险公司 存储工程师:

个人觉得,备份数据容灾的标准做法应该是选择在生产库做备份,备份数据再拷贝到灾备,实现备份数据的异地保存。

在灾备DG做备份再拷贝到生产,这种做法的目的不够明确。灾备DG是对生产数据库的一种数据保护方案,但并不能保障DG和生产数据库的完全一致,DG方案的有效性也不能保障100%;在上述讨论的前提下,对DG做备份相比于在生产库直接做备份来说,可靠性要低。当然如果考虑的是可以降低备份对源库的影响,但相比于备份数据的有效性来说,还是不可取,建议选择合适的备份窗口和备份方式。

转自;https://www.modb.pro/db/125047

最后修改:2021 年 09 月 30 日
如果觉得我的文章对你有用,请随意赞赏