Oracle数据库是企业中使用比较多的一种数据库,一旦数据库出现问题,后果不言而喻,如果数据库恢复成功还好,失败可就关系到企业的命脉,因此对于网管来说,数据库的备份工作,尤为重要。关于Oracle数据库的备份方法,冲突赤兔数据恢复专家在这里跟大家一起分享!
一、导出/导入(Export/Import)
导出导入是一种最初级的备份方式,它采用定时将全量、增量或者差异数据以表、用户或者全库为单位导出到某种格式的文件中达到备份的目的。它作为标准的命令被集成到了Oracle开发语言中。可以通过DBA手动执行备份命令,或者通过脚本和工具自动执行。RMAN就是此类工具中的佼佼者,曾经有很多DBA在使用。
但它是一种定时备份的模式,具有明显的备份时间窗口。备份间隔内仍然存在数据丢失的可能,比如每一天做一个增量备份的话,那么最大会丢失一天的数据。如果是可以允许一段时间内数据丢失的业务,可以采用这种模式。反之只能采用下面的一种备份模式——热备份。
二、热备份
对于热备份来说,故名思议就是刚出炉的数据还是热乎的就开始执行备份的操作。实现热备份的方式目前主要有两种方式,逻辑方式和物理方式。
1、逻辑方式
1)SQL语句模式
SQL的全称是,它是一种语言,而不是专指一种数据库。很多人习惯把MSSQL简称为SQL,这是不对的。SQL之前必须加了MS(Microsoft)才能是一种数据库的名字。
SQL这种语言,大多数数据库都支持。Oracle的老大埃里森当年也是因为首先致力于对SQL语言的支持,才在SQL成为标准后挫败了很多当时没有纳入到SQL语言标准范畴内的数据库。
既然Oracle支持SQL语句,那么就可以用SQL语句进行逻辑勾勒。我们知道当我们提交数据的时候并不关心是提交到了哪种数据库里面去了,以什么样的方式存储。最终只要能提交成功并能查、改、删皆可。这些都是通过SQL语句来实现的,它同样不关心数据库的种类和存储方式。这就意味着我们就可以用SQL语句将数据从源端数据库抽取出来,然后将它装载在某个目标的数据库里面。源端数据库和目标端数据库可以是不一样的品牌,甚至可以不在同一平台上。
CDC(Change Data Capture)就是以这种模式对Oracle进行增量备份的,当然它更多情况下用以做数据整合。
其次,在执行SQL语言时对于SQL语言细分的组成部分:DDL (数据定义语言)、DML (数据操作语言)、DCL (数据控制语言)和TCL(事务控制语言)以及特殊的字段比如blob和clob字段等的支持并不完美,效率低下甚至就不支持。
2)日志重做模式
我们用素描的方式来比喻逻辑备份里面的SQL语句模式,那么对于归档重做的模式我们称之为复印。归档日志是Oracle独有的一种模式,它会将自己做过的所有事情的过程都记录在里面。如果照着归档重新做一遍,则能得到同样的结果,这个结果是相对比较接近源生产库的。在这里之所以使用“相对比较接近”是因为还是有所差别的,就如彩色照片复印出来是黑白的,内容看上去差不多,但还是有差别,且存在很多限制。OGG(Oracle Goldengate)以及ODG(Oracle Dataguard)就是两款Orcle两款典型的日志重做工具。前者是Oracle收购的公司,后者是Oracle企业版包含的一个工具。 使用日志重做模式首先采用这种方法数据库必须至于归档模式下,且要是Force Logging(强制记录日志)状态。这才能满足日志重做的基本条件。因为Oracle的日志分为OnlineLog(联机日志)和ArchiveLog Log(归档日志)。如果写入的数据量较小,那么可以直接对OnlineLog进行重做。但如果写入的数据量很大或者巨大,那么对OnlineLog进行重做是来不及的,就只有延后对ArchiveLog Log进行重做。而对于一下NoLogging(无日志)的数据操作就没有办法进行重做了,所以必须采用将数据库模式设置为Force Logging(强制记录日志)状态。这对数据库的使用具有很大的限制。
另外OGG(Oracle Goldengate)以及ODG(Oracle Dataguard)的逻辑Standby模式虽然在源端获取数据是通过归档日志,但是在目标端(备份机)上进行数据还原的时候是转换成SQL语句来进行的。这就具有了1)中所述使用SQL语句的一些缺点。
2、物理方式
同于我们将SQL逻辑方式比如素描,把日志重做逻辑方式比作复印,则物理方式就是复制人。
卷复制、分割镜像快照等技术就是一种常用的物理方式。乍看起来这种模式要优于逻辑方式,但是它的优势恰恰就是它的劣势。就如同我们打得复制人的比方,在复制人的时候必须每一个染色体每一个DNA都不能出差错。否则将会前功尽弃。对于Oracle这种结构化数据来说,它的精密性不亚于人体。一旦在物理复制的时候不完整或者出错,将会导致整个数据库不可用。所以物理复制不能是单纯的把数据库当作文件进行表面复制,必须是建立在对Oracle数据的逻辑存储结构深入分析的基础之上,才能保证复制出来的数据是100%可用的。
三、冷备份
从前文课件不管是逻辑方式的热备份还是物理方式的热备份,它都存在一些问题。举个例子来说:源端数据库的一个事务写完生产ArchiveLog Log后,ArchiveLog Log转换成SQL语句在备份机上执行,执行到一半的时候正好停机了。再开机时这个没有执行完的SQL就有可能导致整个Oracle数据库无法Open。
为了尽可能的避免这种情况,用户往往在指定的时间(比如凌晨2-3点)将源端数据库合法Shutdown(关闭),以确保数据库在可用的状态时拷贝出一份完成的数据出来。
很明显拷贝的前提是将数据库Shutdown,就是说业务需要停止。所以这种备份叫做冷备份。
四、CDP
SNIA(全球网络存储工业协会StorageNetworkingIndustryAssociation)对什么是CDP做了明确界定:1、有变化就备份,2、至少备份到另外一个地方,3、可以恢复到任意时间点。实现的模式主要有三种:基于块、基于文件、基于应用。
ODG的物理Standby模式在创建时,使用主库进行一个全copy(可以理解为不用shutdown的冷备份)。在此基础之上以“基于块”的模式对数据进行物理的拷贝和恢复。此时目标段(备份机)就是完全是源端数据库的一个复制,因为它是Oracle自身的工具,所以它深入了解Oracle自身的逻辑结构,从而有效的避免了物理复制存在数据库不可用的问题。
但是对于CDP里面的第3点:可以恢复到任意时间点。它必须借助Oracle的另外一个功能Oracle Undo(撤消日志)。
我们知道Oracle的中文名是甲骨文,它一定意义上反映了Oracle数据库操作的难易程度。
ODG的物理Standby模式虽然看起来很美,但是第一:它只属于Oracle,第二:需要专业DBA配置和维护。这就使得它的使用成本过高而成为“王谢堂前燕” ,难以飞入“寻常百姓家”。
针对这种情况,国内老牌CDP容灾备份厂家——北京和力记易科技有限公司在深入研究Oracle数据库存储结构十余家的基础之上,集ODG的逻辑Standby和Undo功能于一体。以最简单的图形化界面实现了CDP实时备份和任意时间点回退。不但支持Oracle,还是支持Windows、Linux、Unix下的MSSQL\Oracle\DB2\Sybase\Informix\Interbase\人大金仓\神舟通用等数据库,支持主流的双机集群环境:MSCS、Lifekeeper、NEC、PlusWell、Oracle RAC+ASM等模式。真正实现了“旧时王谢堂前燕,飞入寻常百姓家”。
赤兔数据恢复中心希望以上的分享,给大家带来不同凡响的收获,最后,小编还要嘱咐下,请大家一定要重视备份工作哦!