谁能简单介绍一下Oracle数据库备份都有哪几种方法

谁能简单介绍一下Oracle数据库备份都有哪几种方法,第1张

Oracle数据有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。

一、 导出/导入(Export/Import)

利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。

1、 简单导出数据(Export)和导入数据(Import)

Oracle支持三种方式类型的输出:

(1)、表方式(T方式),将指定表的数据导出。

(2)、用户方式(U方式),将指定用户的所有对象及数据导出。

(3)、全库方式(Full方式),瘵数据库中的所有对象导出。

数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。

2、 增量导出/导入

增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。

二、 冷备份

冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:

1、 是非常快速的备份方法(只需拷文件)

2、 容易归档(简单拷贝即可)

3、 容易恢复到某个时间点上(只需将文件再拷贝回去)

4、 能与归档方法相结合,做数据库“最佳状态”的恢复。

5、 低度维护,高度安全。

但冷备份也有如下不足:

1、 单独使用时,只能提供到“某一时间点上”的恢复。

2、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。

4、 不能按表或按用户恢复。

如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

1、 所有数据文件

2、 所有控制文件

3、 所有联机REDO LOG文件

4、 Init.ora文件(可选)

值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。

三、 热备份

热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下 *** 作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:

1. 数据文件一个表空间一个表空间的备份。

(1) 设置表空间为备份状态

(2) 备份表空间的数据文件

(3) 回复表空间为正常状态

2. 备份归档log文件

(1) 临时停止归档进程

(2) log下那些在archive rede log目标目录中的文件

(3) 重新启动archive进程

(4) 备份归档的redo log文件

3. 用alter database bachup controlfile命令来备份控制文件

热备份的优点是:

1. 可在表空间或数据库文件级备份,备份的时间短。

2. 备份时数据库仍可使用。

3. 可达到秒级恢复(恢复到某一时间点上)。

4. 可对几乎所有数据库实体做恢复

5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。

热备份的不足是:

1. 不能出错,否则后果严重

2. 若热备份不成功,所得结果不可用于时间点的恢复

3. 因难于维护,所以要特别仔细小心,不允许“以失败告终”。

Oracle作为目前世界上市场份额占有率最高的大型通用数据库,在世界上各行各业的信息化建设中起着核心首脑的作用。它(软件自身以及它所依赖运行的硬件)一旦出现问题,轻则导致业务中断,重则丢失部分数据,严重则全部数据不可逆转性损毁!这种情况在信息化越来越占生产主导地位的今天意味着什么各大CIO都非常清楚,所以他们想尽一切办法坚决杜绝这种情况的发生!

 针对Oracle数据库来说,主要有以下四种备份方式。

 一、导出/导入(Export/Import)

 导出导入是一种最初级的备份方式,它采用定时将全量、增量或者差异数据以表、用户或者全库为单位导出到某种格式的文件中达到备份的目的。它作为标准的命令被集成到了Oracle开发语言中。可以通过DBA手动执行备份命令,或者通过脚本和工具自动执行。RMAN就是此类工具中的佼佼者,曾经有很多DBA在使用。

 但它是一种定时备份的模式,具有明显的备份时间窗口。备份间隔内仍然存在数据丢失的可能,比如每一天做一个增量备份的话,那么最大会丢失一天的数据。如果是可以允许一段时间内数据丢失的业务,可以采用这种模式。反之只能采用下面的一种备份模式——热备份。

 二、热备份

 对于热备份来说,故名思议就是刚出炉的数据还是热乎的就开始执行备份的 *** 作。实现热备份的方式目前主要有两种方式,逻辑方式和物理方式。

 1、逻辑方式

 如果把Oracle数据库比作一个美女的话,那么实例库就是她的整个身体,表空间就是她的骨骼,表是她的筋络,数据是她的血肉。视图、事务、函数、pack包等是她身体上毛发和的饰品。

 对于逻辑方式备份来说就是用一种方式勾勒出了这位美女的模样,让人看上去能认出就是那位美女,但是仔细看的话可能又有所不同。

 这种勾勒的方式又分为两种:

 1)SQL语句模式

 SQL的全称是,它是一种语言,而不是专指一种数据库。很多人习惯把MSSQL简称为SQL,这是不对的。SQL之前必须加了MS(Microsoft)才能是一种数据库的名字。

 SQL这种语言,大多数数据库都支持。Oracle的老大埃里森当年也是因为首先致力于对SQL语言的支持,才在SQL成为标准后挫败了很多当时没有纳入到SQL语言标准范畴内的数据库。

 既然Oracle支持SQL语句,那么就可以用SQL语句进行逻辑勾勒。我们知道当我们提交数据的时候并不关心是提交到了哪种数据库里面去了,以什么样的方式存储。最终只要能提交成功并能查、改、删皆可。这些都是通过SQL语句来实现的,它同样不关心数据库的种类和存储方式。这就意味着我们就可以用SQL语句将数据从源端数据库抽取出来,然后将它装载在某个目标的数据库里面。源端数据库和目标端数据库可以是不一样的品牌,甚至可以不在同一平台上。就如同我们在勾勒美女的时候是用油画布还是国画宣纸都不影响最终对美女的展现。

 CDC(Change Data Capture)就是以这种模式对Oracle进行增量备份的,当然它更多情况下用以做数据整合。

 这种模式听起来似乎很美,可以不用管平台不用管数据库,直接抽取和装载数据库。但是要素描我们首先得雇佣一个画家,这一块的投资颇大,就如同CDC价值不菲一样。

 另外它有一个缺点:在执行SQL语句的时候占用了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模式可以算是。

 ODG的物理Standby模式在创建时,使用主库进行一个全copy(可以理解为不用shutdown的冷备份)。在此基础之上以“基于块”的模式对数据进行物理的拷贝和恢复。此时目标段(备份机)就是完全是源端数据库的一个复制,因为它是Oracle自身的工具,所以它深入了解Oracle自身的逻辑结构,从而有效的避免了物理复制存在数据库不可用的问题。

 但是对于CDP里面的第3点:可以恢复到任意时间点。它必须借助Oracle的另外一个功能Oracle Undo(撤消日志)。

 我们知道Oracle的中文名是甲骨文,它一定意义上反映了Oracle数据库 *** 作的难易程度。

 ODG的物理Standby模式虽然看起来很美,但是第一:它只属于Oracle,第二:需要专业DBA配置和维护。这就使得它的使用成本过高而成为“王谢堂前燕” ,难以飞入“寻常百姓家”。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9988765.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存