论云灾备时代数据库备份的特殊性

一、引言

“云灾备”作为目前一种成熟的灾备方式已经为广大用户所使用,目前存在的形式主要有公有云灾备以及私有云灾备。不管公有云还是私有云都是将数据备份到集成了计算资源、存储资源和网络资源的云平台。云平台作为数据备份的传输和存储介质,将备份数据进行传输和存储,但并不保证备份数据的完整和可用。当生产中心的数据出现问题需要进行数据恢复时,如果云灾备平台上的数据不能恢复或者使用,将会丧失备份的意义,这种情况在备份结构化的数据库类数据时尤为常见。

二:结构化数据库类数据的特点

凡是数据基本上可以分结构化数据、非结构化数据以及半结构化数据。结构化数据是指的可以用二维表结构来逻辑表达实现的数据,所有关系型数据库中的数据全部为结构化数据。非结构化数据指的是相对结构化数据而言,无法或者不方便用二维表来逻辑表达实现的数据,如所有格式的办公文档、文本、图片、各类报表、图像和音频/视频信息等等都属于非结构化数据。半结构化数据介于以上两种数据之间,如果将它作为结构化的数据,因为它的结构变化很大,所以不方便将它用二维表逻辑表达。另外我们要了解数据的细节所以也不能将它简单的组织成一个文件按照非结构化数据处理。这类数据如XML、HTML等文件,它一般是自描述的,数据的结构和内容混在一起,没有明显的区分。

对于非结构化以及半结构化的数据而言,数据损坏发生时,只会对个别文件造成影响。而对于结构化数据库而言,数据的损坏将会导致整个数据库无法使用。由此可见,保证数据库的备份数据的有效性关系重大,它关系到整个数据库的可用性。

三:导致结构化数据库不可用的原因分析。

通常引起数据库不可用的原因主要有以下几点:

1、意外中断

数据库在读写过程中突然重启或者死机,重新启动计算机使用数据库时,很可能会报数据文件损坏类错误(不同数据库的提示错误有所差别,但意思一致),这种错误的出现是因为在数据库读写过程中,计算机发生了突然的死机或重启,而导致了缓冲数据的丢失,缓冲数据的丢失将会导致数据库无法写入正确的数据,那么数据库会写入一些无关的数据,这样就会造成数据库出错。Oracle的数据库针对这种损坏可以通过归档文件进行回滚,但是运行在非归档模式下时,也一样会出现此类错误。

2、人为破坏

人为破坏最直接的就是将硬盘格式化或者将数据库文件彻底删除,此时用户往往会采用世面上的硬盘恢复工具如FinalData和EasyRecovery等工具进行恢复。虽然在运气好的情况下可以将数据文件找回,但是99%是无法附加、挂载的。即使可以附加和挂载,数据库也无法使用。因为数据库在日常中经常增加和修改、删除记录,这样就会出数据库文件存储不连续的情况,而FinalData和EasyRecovery等工具都是连续取数据的,所以取到的数据必然不完整。

3、逻辑损坏

逻辑损坏是指的一些“发和内部一致性错误”、“分配错误”和无任何提示的错误。这种错误的原因比较复杂,主要是系统表、回滚空间被破坏、篡改等。因为数据库的效验比较严密,只要稍改一个关键字节,都会导致这种错误。

四: CDP保证数据库备份100%的可用

目前主流的备份方式主要有三种:一种是定时备份、一种是实时备份,一种是CDP。很多人认为实时备份就是CDP,其实两者之间存在本质的区别,镜像同步类软件可以实现实时备份,但是却不能称作是CDP,因为CDP需要满足任意时间点(Any Point In Time)恢复的特点,而镜像类的产品是无法做到的,它只有有限个的快照点。

试想在进行数据恢复的时候,如果我们只有250个点可以选择。谁也无法保证当数据库发生逻辑错误时,修复的点就在这250个点之中,因为历史上数据的变化远远不止250次。而如果历史上所有的变化点都做了保留,比如变化了10000次,有10000个恢复点,那么这里面肯定有一个点是发生逻辑错误前的点。这就保证了这份备份数据是可以100%的恢复到数据库的一个可用状态的。

北京和力记易科技有限公司的UPM备特佳容灾备份系统,独有的任意时间点回退功能,保留了历史上的任意恢复点,完全做到了CDP的标准。其优秀的网络传输功能,采用无限增量的模式更是降低了异地容灾的网络带宽成本。可谓是异地容灾的上佳之选。