ORACLE备份与恢复技术介绍

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:873

ORACLE备份与恢复技术介绍
一、 备份分类简单的按照备份进行的方式,可以分为逻辑备份、冷备份(脱机备份)、热备份(联机备份),其实冷备份与热备份又可以合称为物理备份按照备份的工具,可以分为EXP/IMP备份、OS拷贝、RMAN、第三方工具,如VERITAS以下我们将从多个角度来说明以上的各种备份方式

EXP/IMP逻辑备份导入/导出是ORACLE幸存的最古老的两个命令行工具了,其实我们从来不认为Exp/Imp是一种好的备份方式,实际上Oracle官方也不建议使用Exp/Imp作为数据库的日常备份手段,正确的说法是Exp/Imp只能是一个好的转储工具。特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳。当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议。对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和第三方工具。
1. OS备份操作系统备份有两类,冷备份(Coldbackup)与热备份(Hot backup),操作系统备份与以上的逻辑备份有本质的区别。逻辑备份提取数据库的数据内容,而不备份物理数据块。而操作系统备份则是拷贝整个的数据文件。
2. 冷备份在文件级备份开始前数据库必须彻底关闭。关闭操作必须用带有normal、immediate、transaction选项的shutdown来执行。数据库使用的每个文件都被备份下来,这些文件包括:所有数据文件、所有控制文件、所有联机REDO LOG 文件、INIT.ORA文件(可选)作冷备份一般步骤是:a. 正常关闭要备份的实例(instance);b. 备份整个数据库到一个目录c. 启动数据库如SVRMGRL>connectinternalSVRMGRL>shutdown immediateSVRMGRL >! cp 或SVRMGRL >!tarcvf /dev/rmt/0 /u01/oradata/prodSVRMGRL>startup[size=10.0pt]注意:如果利用脚本对数据库进行冷备份,必须对关闭数据库的命令进行逻辑检查,如果发生关闭数据库的命令不能正常执行而导致数据库没有正常关闭,那么,所有的冷备份将回是无效的。[size=10.0pt]
3. 热备份热备份是当数据库打开并对用户有效是的OS级的数据备份。热备份只能用于ARCHIVELOG方式的数据库。在数据文件备份之前,对应的表空间必须通过使用ALTER TABLESPACE …… BEGIN BACKUP以备份方式放置。然后组成表空间的数据文件可以使用类似冷备份的操作系统命令进行拷贝。在数据文件用操作系统命令拷贝后,应使用ALTER TABLESPACE …… END BACKUP命令使表空间脱离热备份方式。热备份没有必要备份联机日志,但必须是归档状态,在实例恢复的时候,可能需要用到归档日志。当前联机日志一定要保护好或是处于镜相状态,当前联机日志的损坏,对于数据库的损坏是巨大的,只能以数据的丢失来进行数据库的恢复工作。对于临时表空间,存放的是临时信息,在热备份是也可以考虑不用备份,如果临时文件发生故障,可以删除该数据文件与表空间,重建一个临时表空间。热备份的优点是显而易见的a.可在表空间或数据文件级备份,备份时间短。 b.备份时数据库仍可使用。 c.可达到秒级恢复(恢复到某一时间点上)。 d.可对几乎所有数据库实体作恢复。 e.恢复是快速的,在大多数情况下在数据库仍工作时恢复。操作系统作热备份的一般步骤为:1. 连接数据库SVRMGRL>connectinternal;2. 将需要备份的表空间(如User)设置为备份方式SVRMGRL>Altertablespace User begin backup;3. 拷贝数据文件SVRMGRL>!cp/u01/oradata/prod/user01.ora /backup/prod/user01.oraOr$cp cp/u01/oradata/prod/user01.ora /backup/prod/user01.ora4. 在数据文件拷贝完成后,将表空间拖体备份方式SVRMGRL>Altertablespace User end backup;5. 对所有需要备份的表空间重复2,3,46. 使用如下的命令备份控制文件ALTER DATABSE ……BACKUP CONTROLFILE如备份成二进制文件alter databasebackup controlfile to ‘new fielname’;备份成文本文件alter databasebackup controlfile to trace;因为热备份的时候,用户还在操作数据库,所以,最好是每个表空间处于备份状态的时间最短,这样就要求一个表空间一个表空间的备份,不要一起使表空间处于备份状态而同时拷贝数据文件。注意:如果在热备份的时候如果数据库中断(如断电),那么在重新启动数据库的时候,数据库将提示有数据文件需要恢复,你需要把正在断电时候的处于备份状态的数据文件通过ALTER TABLESPACE …… END BACKUP结束备份方式。具体哪个数据文件或表空间处于备份状态,可以通过v$backup与v$datafile来获得
4. RMAN(备份与恢复管理器)[size=10.0pt]5.1 [size=10.0pt]使用RMAN进行备份[size=10.0pt]5.1.1[size=10.0pt] [size=10.0pt]了解RMANRecovery manager(RMAN)是ORACLE提供的DBA工具,用语管理备份和恢复操作。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,其中包括表空间、数据文件,控制文件和归档文件。RMAN可以按要求存取和执行备份和恢复。RMAN备份有如下优点:Ø 支持在线热备份Ø 支持多级增量备份Ø 支持并行备份、恢复Ø 减少所需要备份量Ø 备份、恢复使用简单重要的是,使用恢复管理器允许您进行增量数据块级的备份(这个与导出/导入的增量截然不同)。增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。另一个空间有效的RMAN特性是它只备份数据文件中使用的数据块,忽略空的,未用的数据块,这个对于预分配空间的表空间有很大的好处。从9i开始,还增加了RMAN的数据块级别的恢复,可以进一步减少数据库恢复时间。RMAN支持以下不同类型的备份Ø FULL 数据库全备份,包括所有的数据块Ø INCREMENTAL 增量备份,只备份自上次增量备份以来修改过的数据块。需要一个0级的增量作为增量的基础,可以支持7级增量。理解BACKUP,RESTORE,RECOVER命令,这是RMAN最基本的三个命令,可以进行数据库的备份,复原以及恢复操作。[size=10.0pt]
[size=10.0pt]5.1.2[size=10.0pt] [size=10.0pt]了解恢复目录理解恢复目录,RMAN可以在没有恢复目录(NOCATALOG)下运行,这个时候备份信息保存在控制文件。保存在控制文件的备份信息是很危险的,如果控制文件的破坏将导致备份信息的丢失与恢复的失败,而且,没有恢复目录,很多RMAN的命令将不被支持。所以对于重要的数据库,建议创建恢复目录,恢复目录也是一个数据库,只不过这个数据库用来保存备份信息,一个恢复目录可以用来备份多个数据库。创建RMAN目录,以下步骤说明了在一个数据库中尽力RMAN目录的过程。1.为目录创建一个单独的表空间[size=10.0pt]SQL>Create tablespace tools datafile ‘fielname’ size 50m;2.创建RMAN用户[size=10.0pt]SQL>Create user RMAN identified by RMAN defaulttablespace tools temporary tablespace temp;3.给RMAN授予权限[size=10.0pt]SQL>Grant connect , resource , recovery_catalog_ownerto rman;4.打开RMAN$>RMAN5.连接数据库RMAN>connectcatalog rman/rman6.创建恢复目录RMAN>Createcatalog tablespace tools注册目标数据库,恢复目录创建成功后,就可以注册目标数据库了,目标数据库就是需要备份的数据库,一个恢复目录可以注册多个目标数据库,注册目标数据库的命令为:[size=10.0pt]$>RMAN target internal/password catalog rman/rman@rcdb;RMAN>Registerdatabase;数据库注册完成,就可以用RMAN来进行备份了,更多命令请参考ORACLE联机手册。注销数据库不是简单的在RMAN提示下反注册就可以了,需要运行一个程序包,过程如下:1. 连接目标数据库,获得目标数据库ID$> RMAN targetinternal/password catalog rman/rman@rcdb;RMAN-06005:connected to target database: RMAN (DBID=1231209694)2. 查询恢复目录,得到更详细的信息SQL> SELECTdb_key, db_id FROM db WHERE db_id = 1231209694;DB_KEY DB_ID -------------------------1 1237603294 1 row selected.3. 运行过程dbms_rcvcat.unregisterdatabase注销数据库,如SQL> EXECUTEdbms_rcvcat.unregisterdatabase(1 , 1237603294)[size=10.0pt]5.1.3[size=10.0pt] [size=10.0pt]采用RMAN进行备份RMAN使用脚本来备份数据库,以下是RMAN进行备份的几个例子。1.备份整个数据库backup full tag‘basicdb’ format ‘/bak/oradata/full_%u_%s_%p’ database;2.备份一个表空间backup tag‘tsuser’ format ‘/bak/oradata/tsuser_%u_%s_%p’ tablespace users;3.备份归档日志backup tag ‘alog’format ‘/bak/archivebak/arcbak_%u_%s_%p’ archivelog all delete input;[size=10.0pt]5.2 [size=10.0pt]维护RMAN[size=10.0pt]5.2.1[size=10.0pt] [size=10.0pt]查看RMAN的信息检查现有备份RMAN>listbackup列出过期备份RMAN>reportobsolete删除过期的备份RMAN>allocatechannel for maintenance type disk;RMAN>changebackupset id delete;RMAN>releasechannel;[size=10.0pt]5.2.2[size=10.0pt] [size=10.0pt]同步或重置RMAN如果目标数据库物理对象发生了变化,如添加了一个数据文件,需要用如下命令同步:RMAN>resynccatalog;如果目标数据库reset了数据库,需要用如下命令同步RMAN>resetdatabase;当手工删除了数据库的归档文件后,要执行以下脚本同步RMAN>allocatechannel for maintenance type disk;RMAN> changearchivelog all crosscheck;RMAN>releasechannel;当手工删除了数据库的RMAN备份后,要执行以下脚本来同步RMAN>allocatechannel for maintenance type disk;RMAN>crosscheckbackup;RMAN>deleteexpire backup;RMAN>releasechannel;
二、 备份解决方案
1. 数据备份的原则对数据进行备份是为了保证数据的一致性和完整性,消除系统使用者和操作者的后顾之忧。不同的应用环境要求不同的解决方案来适应,一般来说,一个完善的备份系统,需要满足以下原则:[size=10.0pt]稳定性备份产品的主要作用是为系统提供一个数据保护的方法,于是该产品本身的稳定性和可靠性就变成了最重要的一个方面。首先,备份软件一定要与操作系统100%的兼容,其次,当事故发生时,能够快速有效地恢复数据。[size=10.0pt]全面性在复杂的计算机网络环境中,可能会包括了各种操作平台,如各种厂家的UNIX、NetWare、WindowsNT、VMS等,并安装了各种应用系统,如ERP、数据库、群件系统等。选用的备份软件,要支持各种操作系统、数据库和典型应用。[size=10.0pt]自动化很多系统由于工作性质,对何时备份、用多长时间备份都有一定的限制。在下班时间系统负荷轻,适于备份。可是这会增加系统管理员的负担,由于精神状态等原因,还会给备份安全带来潜在的隐患。因此,备份方案应能提供定时的自动备份,并利用磁带库等技术进行自动换带。在自动备份过程中,还要有日志记录功能,并在出现异常情况时自动报警。[size=10.0pt]高性能随着业务的不断发展,数据越来越多,更新越来越快,在休息时间来不及备份如此多的内容,在工作时间备份又会影响系统性能。这就要求在设计备份时,尽量考虑到提高数据备份的速度,利用多个磁带机并行操作的方法。[size=10.0pt]操作简单数据备份应用于不同领域,进行数据备份的操作人员也处于不同的层次。这就需要一个直观的、操作简单的图形化用户界面,缩短操作人员的学习时间,减轻操作人员的工作压力,使备份工作得以轻松地设置和完成。[size=10.0pt]实时性有些关键性的任务是要24小时不停机运行的,在备份的时候,有一些文件可能仍然处于打开的状态。那么在进行备份的时候,要采取措施,实时地查看文件大小、进行事务跟踪,以保证正确地备份系统中的所有文件。[size=10.0pt]容灾考虑将磁带库中的磁带拷贝一份,存放在远离数据中心的地方,以防数据中心发生不可预测的灾难。
2. 备份系统组成能否安全有效的备份取决于以下三个因素:(1) 执行备份的磁带机磁带机的质量与性能在整个备份过程中是至关重要的,它是能否进行高速高质量备份的关键所在。(2) 存储备份数据的介质介质是数据的负载物,它的质量一定要有保证,使用质量不过关的介质无疑是拿自己的数据冒险。(3) 控制备份的软件操作系统通常包括一些基本功能,但是为了达到更好的备份效果,最好使用专门的备份软件。优秀备份软件包括加速备份、自动操作、灾难恢复等特殊功能,对于安全有效的数据备份是非常重要的。
3. 推荐备份系统Ø 磁带库、Veritas备份软件对数据安全要求高的项目组,可以采用比较专业的备份软件和磁带库、虚拟带库来进行备份与恢复。需要购买磁带库或者虚拟带库硬件、以及备份软件(如HP DP、IBM TSM、SymantecVeritas等)。Ø 磁盘、RMAN对于数据库容量在MB级、项目经费不够的小项目组,可以采用Oracle自带的RMAN和备份服务器来进行备份与恢复。在性能允许条件下,备份服务器可以使用现有的数据库服务器或应用服务器来“兼任”,也无需另外购买软件,由开发人员编写备份脚本来实现。
4. 备份策略除了上述原则之外,一个好的备份/恢复系统,除了配备有好的软硬件之外,更需要有良好的备份策略和管理规划来进行保证。对于一个复杂的系统,必须根据各种应用和业务的处理类型来分别制定具体的备份策略。但总体上来讲,一个好的备份策略的组成,主要分为以下内容:
[size=10.0pt]4.1 [size=10.0pt]备份类型的选择备份类型主要有三种:(1) 全备份:每次备份定义的所有数据,优点是恢复快,缺点是备份数 据量大,数据多时可能做一次全备份需很长时间(2) 差异增量备份:备份自上一次备份以来更新的所有数据,其优点是每次备份的数据量少,缺点是恢复时需要全备份及多份增量备份(3) 累计增量备份:备份自上一次全备份以来更新的所有数据,其优缺点介于上两者之间在备份类型选择时,一般的规则是:(1) 对于操作系统和应用程序代码,可在每次系统更新或安装新软件时,做一次全备份(2) 对于一些日常数据更新量大,但总体数据量不是非常大的关键应用数据,可每天在用户使用量较小的时候安排全备份(3) 对于日常更新量相对于总体数据量较小,而总体数据量非常大的关键应用数据,可每隔一个月或一周安排一次全备份,再此基础上,每隔一个较短的时间间隔做增量备份[size=10.0pt]4.2[size=10.0pt]备份窗口选择所谓备份窗口,是指每次备份的间隔时间,这主要取决于每次备份间隔能够容忍丢失的数据量、每次备份的数据量和备份的速度。理论上,备份的间隔越短越好,但每次备份总需一定的时间,而且备份总会或多或少地影响系统的正常处理性能。因而,对一些关键数据,可预先定义备份窗口大小,再根据备份数据量计算所需的备份速度,若备份速度不能满足要求,则可考虑使用更快速的带库或增加带库上的驱动器数据。[size=10.0pt]其计算流程为:Ø 确定备份数据量及数据压缩比Ø 根据控制器类型推算出单驱动器的备份速度Ø 确定必需的备份窗口Ø 计算出单驱动器所需备份时间Ø 确定所需的驱动器数目
[size=10.0pt]4.3[size=10.0pt]确定介质保存时间备份过程中要用到大量的存储介质,备份介质的保留时间的长短将决定所需购置和维护的介质量。目前的备份策略都是基于多磁带轮换制,即保存有过时数据的介质可重新覆盖使用,轮换频率可根据备份类型和备份的窗口来确定。 [size=10.0pt]4.4[size=10.0pt]计算所需磁带介质数量[size=10.0pt]备份系统所需的介质数量可根据下述流程确定:Ø 确定介质容量Ø 计算每个服务器上的数据做全备份所需的介质数量Ø 计算每个服务器上的数据做增量备份所需的介质数量Ø 根据每种介质的保留时间或轮换频率即可计算出所需的介质数目
[size=10.0pt]4.5[size=10.0pt]备份介质的管理[size=10.0pt]备份好的介质,最好不要与计算机系统放在一起,而要放到保险柜或运输到备份中心统一保存。同时,为了更好的管理介质,对所有磁带需按统一的规则来命名,如:[i][size=10.0pt]备份类型 – 集合名 – 日期Ø 备份类型:[size=10.0pt]— F 完全备份[size=10.0pt]— A 部分备份Ø 集合名:[size=10.0pt]— 使用者指定的唯一性名字Ø 日期:[size=10.0pt]— 使用该介质进行备份的时间[size=10.0pt]— MM/DD/YY格式[size=10.0pt]
5. 灾难恢复策略备份的目的是为了防止在异常事故下的数据丢失,一旦运行数据发生问题,如何从备份介质中恢复出最当前的数据,才是我们真正关心的问题。我们不希望灾难发生,也不希望任何故障出现。然而灾难的出现往往是突然的、预先不可知的。所以我们应有一套应付各种灾难情况下的灾难恢复解决方案,以备不时之需。归纳出以下有可能会出现的几种情况,并提出了相应的解决措施。情况一:主机数据磁盘故障(非系统盘)情况二:主机物理损坏情况三:系统盘物理损坏情况四:操作系统不能启动情况五:磁盘上数据损坏(如由于人为失误、病毒或黑客攻击)情况六:整个数据中心灾难[size=10.0pt]解决措施:情况一:主机数据磁盘故障(非系统盘)Ø 若数据盘使用了RAID1、RAID5等技术,则应该可直接热替换硬盘Ø 若数据盘已不能访问,则需先修好物理盘,然后从备份介质恢复数据 情况二:主机物理损坏Ø 替换主机,使用原来的系统盘或数据盘Ø 若不使用原来的系统盘或数据盘,则可以通过备份系统的灾难恢复功能恢复操作系统,然后恢复数据 情况三:系统盘物理损坏Ø 替换系统盘Ø 则可以通过备份系统的灾难恢复功能恢复操作系统 情况四:操作系统不能启动Ø 直接通过备份系统的灾难恢复功能恢复操作系统[font=Symbol][size=10.0pt] 情况五:磁盘上数据损坏(如由于人为失误、病毒或黑客攻击)Ø 通过备份介质上的数据备份恢复数据 情况六:数据中心灾难 所谓数据中心灾难,是指一些特殊情况发生时,数据中心的主机系统的存放在磁盘上的数据,以及备份带库中的备份介质上的数据均遭损坏。此时,若没有很好的容灾解决方法,就可能导致严重的后果。可生成一个备份内容的多个备份介质拷贝,因而,在数据中心保留一份备份介质的同时,可将同样内容的其它备份介质送到远程的保险库中保留起来。一旦灾难发生,即使磁带库中的备份介质损坏,还可用保险库中的备份介质通过本地或远程进行恢复。

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】