• 创建一致的数据库备份
• 在不关闭数据库的情况下备份数据库
• 创建增量备份
• 自动执行数据库备份
• 管理备份和查看备份报告
• 监视快速恢复区
- 备份解决方案:概览
可使用以下工具执行备份:
• Recovery Manager
• Oracle Secure Backup
• 用户管理的备份
备份解决方案:概览
Recovery Manager (RMAN) 是推荐使用的备份Oracle DB 的方法。
Oracle Secure Backup 增加了备份到磁带功能和操作系统文件备份,从而完善了现有功能。
用户管理的备份是基于脚本的,DBA 必须编写脚本。这种方法正逐渐被淘汰,因为它需要较多的人工。
- Oracle Secure Backup
• Oracle Secure Backup 和RMAN 一起为Oracle 环境提供端到端备份解决方案:
– 对文件系统数据和Oracle DB 使用集中式磁带备份管理
– 对RMAN 备份提供最佳集成介质管理层
– 可备份网络上任意位置的任意数据
• 由一个技术支持资源来支持整个备份解决方案,可加快解决问题的速度。
• 确保以较低的成本和复杂性提供可靠的数据保护。
Oracle Secure Backup
Oracle 当前用于数据库备份和恢复的产品是Recovery Manager。Oracle Secure Backup 通过以下方式对现有功能提供补充:
• 完整的备份解决方案:Oracle Secure Backup 为数据库和非数据库的数据提供数据保护,可保护整个Oracle 环境。
• 介质管理:Oracle Secure Backup 为RMAN 数据库磁带备份提供了介质管理层。在Oracle Secure Backup 推出以前,客户需要购买价格昂贵、集成有RMAN 磁带备份功能的第三方介质管理产品。
• 备份网络上任何位置的数据:Oracle Secure Backup 可备份从多台连接到网络的计算机系统至网络上的三级存储资源中的所有数据。Oracle Secure Backup 支持对服务器、客户机、网络连接存储(NAS) 服务器和三级存储设备的各种配置,并保护网络存储环境。
RMAN 和Oracle Secure Backup 的组合提供了一个纯粹以Oracle 产品堆栈实现的端到端备份解决方案。因为由Oracle Corporation 负责整个备份解决方案,因此该解决方案可提供更好的客户支持服务。
- 用户管理的备份
用户管理的方案:
• 指手动跟踪备份需求和状态的过程
• 通常使用用户自己编写的脚本
• 需要将数据库文件置于正确的模式以进行备份
• 依赖操作系统命令来备份文件
用户管理的备份
可以采用交互方式执行用户管理的备份。但通常需要编写执行备份的脚本。可运行的方案有多种,必须编写脚本来处理这些方案。
以下是脚本必须执行的一些操作:
• 查询V$DATAFILE以确定需要备份的数据文件及其当前状态
• 查询V$LOGFILE以确定联机重做日志文件
• 查询V$CONTROLFILE以确定要备份的控制文件
• 将每个表空间置于联机备份模式
• 查询V$BACKUP以查看哪些数据文件包含在处于联机备份模式的表空间中
• 发出操作系统复制命令,以将数据文件复制到备份位置
• 使每个表空间退出联机备份模式
- 术语
• 备份策略可包括:
– 整个数据库(整个)
– 部分数据库(部分)
• 备份类型可指示包含以下项:
– 所选文件中的所有数据块(完全备份)
– 只限自以前某次备份以来更改过的信息(增量备份)
— 累积(自上次0 级备份以来的更改)
— 差异(自上次增量备份以来的更改)
• 备份模式可为以下类型:
– 脱机(一致备份或冷备份)
– 联机(非一致备份或热备份)
整个数据库备份:包括所有数据文件和至少一个控制文件(请记住数据库中的所有控制文件都是相同的)。
部分数据库备份:可以包括零个或多个表空间、零个或多个数据文件;可以包括也可以不包括控制文件。
完全备份:为包含数据且位于要备份的文件中的每个数据块创建副本。
增量备份:为自以前某次备份以来发生更改的所有数据块创建副本。Oracle DB 支持两个级别的增量备份(0 和1)。1 级增量备份可以为以下两种类型之一:“累积”或“差
异”。累积备份用于备份自上次0 级备份以来发生的所有更改。差异备份用于备份自上次增量备份(可以为0 级或1 级备份)以来发生的所有更改。RMAN 的更改跟踪功能支持增量备份。
“脱机备份”(也被称为“冷”备份或一致备份):指在数据库未打开的情况下执行的备份。之所以称为一致备份,是因为进行备份时,数据文件头中的系统更改号(SCN) 与
控制文件中的SCN 相匹配。
“联机备份”(也被称为“热”备份或非一致备份):指在数据库打开的情况下执行的备份。之所以称为非一致备份,是因为在数据库打开的情况下不能确保数据文件与控制文件同步。
备份可存储为:
• 映像副本
• 备份集
映像副本:指的是数据或归档日志文件的副本(类似于只使用操作系统命令复制文件)。
备份集:指的是一个或多个二进制文件的集合,其中包含一个或多个数据文件、控制文件、服务器参数文件或归档日志文件。使用备份集时,不会存储空数据块,因此备份集在磁盘或磁带上占用的空间比较小。通过压缩备份集可进一步降低备份的空间要求。
映像副本必须备份到磁盘上。备份集可发送到磁盘或直接发送到磁带。
将备份存储为映像副本的优势在于改善了还原操作的粒度。使用映像副本,需要从备份位置检索的只是文件。使用备份集时,必须先从备份位置检索整个备份集,然后才能提取所需的文件。
将备份存储为备份集的优势在于可更好地利用空间。在大多数数据库中,20% 或更多的数据块为空块。映像副本会备份每个数据块,即使数据块为空也会进行备份。备份集可显著降低备份所需的空间。在多数系统中,备份集的优势大于映像副本的优势。
- Recovery Manager (RMAN)
• 具有功能强大的控制能力和脚本编写语言
• 与Enterprise Manager 集成
• 具有已公布的API,可以用来连接到多数常用备份软件
• 可备份数据、控制文件、归档日志文件和服务器参数文件
• 可将文件备份到磁盘或磁带
Recovery Manager (RMAN)
RMAN 是一个用于执行备份和恢复操作的Oracle DB 组件。使用它可执行一致备份和非一致备份,执行增量备份和完全备份,可备份整个数据库或数据库的一部分。
RMAN 使用自己的功能强大的作业控制能力和脚本编写语言以及公布的用于连接到许多常用备份软件解决方案的API。
RMAN 可将备份存储在磁盘上以进行快速恢复,也可将备份存储在磁带上以进行长期存储。为了让RMAN 将备份存储在磁带上,必须使用Oracle Secure Backup 或配置到磁带设备的连接,也就是到所谓介质管理库(MML) 的连接。
Enterprise Manager 提供一个图形界面来显示最常用的RMAN 功能。通过RMAN 的命令行客户机可访问高级备份和恢复操作。
- 配置备份设置
选择“Enterprise Manager > Availability > Backup Settings(Enterprise Manager > 可用性> 备份设置)”。在此处可管理用于创建备份的永久性备份设置。磁盘和磁带都有单独的设置。磁带设置取决于介质管理库功能。
磁盘设置包括:
• Parallelism(并行度):要创建多少个单独的备份信息流。并行度的最佳设置取决于硬件。随着硬件资源的增加,相应的并行度也会提高。通常,需要将并行度设置
为对磁盘备份位置进行条带化的磁盘数。对于磁带备份,则需要将并行度设置为现有磁带机的数目。
• Disk backup location(磁盘备份位置):备份应存储在何处?默认位置是快速恢复区。如果更改了这个设置,请单击“Test Disk Backup(测试磁盘备份)”,验证
RMAN 是否可写入新位置。
• Disk backup type(磁盘备份类型):选择“Backup Set(备份集)”、“Compressed Backup Set(压缩备份集)”或“Image Copy(映像副本)”。
单击“Backup Set(备份集)”选项卡可设置备份片段的最大文件大小,指定压缩备份集使用的压缩算法,并指定磁带备份的冗余度。在Enterprise Manager 中必须提供主机身份证明,才能保存对备份设置所做的更改。
单击“Policy(策略)”选项卡,可执行以下操作:
• 每次备份时自动备份控制文件和服务器参数文件(SPFILE)。如果不希望将备份转到快速恢复区,可另外为这些备份指定一个位置。
• 通过不备份某些文件来优化备份,前提是这些文件与已属于保留的备份的一个文件完全匹配。使用此设置可跳过只读和脱机数据文件。
• 启用块更改跟踪功能并指定跟踪文件的位置。如果要创建增量备份,使用这个设置可减少选择增量备份中包括的块时所需的时间。
• 从整个数据库备份中排除表空间。有些管理员选择不备份包含某些可很容易地重新创建的数据或对象(如索引或频繁成批加载的数据)的表空间。
• 指定保留策略:RMAN 应将备份保留多长时间?如果使用快速恢复区存储备份,RMAN 会通过自动删除旧备份来为新备份腾出空间(如果保留策略允许)。默认
情况下,只保留最后一次备份。保留策略可指定为备份数或天数。
- 调度备份:策略
选择“Enterprise Manager > Availability > Schedule Backup(Enterprise Manager > 可用性> 调度备份)”。选择Oracle 建议的备份策略或您自己的定制策略。
调度Oracle 建议的备份如下:
每日脚本:
run {
allocate channel oem_disk_backup device type disk;
recover copy of database with tag 'ORA_OEM_LEVEL_0';
backup incremental level 1 cumulative copies=1 for recover of copy with tag 'ORA_OEM_LEVEL_0' database;
}
是一次性执行整个数据库备份,这个备份是联机执行的。这种备份是基准增量0 级备份。然后,自动备份策略会安排在以后的每一天都执行1 级增量备份。第3 天及以后,在开始该天的增量备份之前,RMAN 会将从第n-1 天开始的1 级备份应用到0 级备份。
通过单击“Schedule Customized Backup(调度定制备份)”,可以访问更多的配置选项。选择要备份的对象-整个数据库(默认值)或单个表空间、数据文件、归档日志,或当前驻留在磁盘上的任何Oracle 备份(将这些备份移到磁带)。
这两种策略都允许设置加密备份。
- 调度备份:选项
请选择完全备份类型或增量备份类型。如果执行的是完全数据库备份,则可选择“Use as the base of an incremental backup strategy(作为增量备份策略的基础)”,使完全数据库备份成为0 级增量备份。如果使用的是映像副本,则可选择“Refresh the latest datafilecopy on disk to the current time using the incremental backup(使用增量备份将磁盘上最新的数据文件副本刷新到当前时间)”,以更新现有备份,而不是创建新映像副本。
如果要在用户继续使用数据库的同时执行此任务,请选择“Online Backup(联机备份)”。
如果用户不需要访问数据库,请选择“Offline Backup(脱机备份)”,这将使用装载的实例执行备份。
选择“Delete obsolete backups(删除过时的备份)”,可删除超出以前配置的保留策略范
围的备份。如果是备份到快速恢复区,RMAN 会自动删除过时备份。
- 调度备份:设置
请选择备份是转到磁盘,还是转到磁带。
要创建一次性备份(以及定期调度的备份),请单击“Override Current Settings(覆盖当前
设置)”并指定备份设置。
- 调度备份:调度
请选择希望如何调度备份-是一次性作业还是循环过程。
要对数据库进行配置,以使其具有最大可恢复性,Oracle 建议定期调度备份。自动备份可
减少管理员的工作量。
如果选择了“Repeating(重复)”,该页会显示其它调度详细信息。
- 调度备份:复查
backup incremental level 0 cumulative device type disk tag '%TAG' database;
backup device type disk tag '%TAG' archivelog all not backed up delete all input;
RMAN 使用自己的命令语法和脚本编写语言。
使用该页,可根据需要定制RMAN 脚本,或复制这些脚本以用作记录。
提交作业:
查看作业
- 将控制文件备份到跟踪文件
控制文件有一个附加备份选项。
控制文件跟踪备份可用来在丢失了所有控制文件之后进行恢复。
将控制文件备份到跟踪文件
选择“Enterprise Manager > Server > Control Files(Enterprise Manager > 服务器> 控制文件)”可管理数据库的控制文件。
控制文件有一个附加备份选项;
控制文件可备份到跟踪文件。
如果丢失了所有控制文件,则可使用控制文件跟踪备份,其中包含重新创建控制文件所需的SQL 语句。
尽管合理配置的数据库(控制文件的多个副本放置在不同磁盘和不同控制器上)同时丢失所有控制文件的可能性很小,但还是有可能发生。因此,每次数据库物理结构发生更改(添加了表空间或数据文件,或添加了其它重做日志组时)后,管理员都应将控制文件备份到跟踪文件。
使用Enterprise Manager或以下SQL 命令可创建控制文件的跟踪副本:
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
跟踪备份的创建位置由DIAGNOSTIC_DEST初始化参数指定(例如/u01/app/oracle/diag/rdbms/orcl/orcl/trace,文件名为orcl_vktm_8400.trc)。
通过“Control Files(控制文件)”页的“Advanced(高级)”选项卡,可从控制文件中查看信息。
- 管理备份
选择“Enterprise Manager > Availability > Manage Current Backup(Enterprise Manager > 可用性> 管理当前备份)”可管理现有备份。在这一页上,可以查看备份的完成时间、创建位置(磁盘或磁带)以及备份是否仍可用。
在“Manage Current Backups(管理当前备份)”页的顶端有四个按钮,使用这些按钮可处理现有备份:
• Catalog Additional Files(将其他文件列入目录):尽管RMAN(通过Enterprise Manager 运行)是推荐使用的创建备份的方法,但是有些映像副本或备份集可能是
通过其它方法或在其它环境下创建的,这样RMAN 就找不到这些备份。执行这个任务后会找到这些文件,还会将这些文件添加到目录中。
• Crosscheck All(全部交叉检验):RMAN 可自动删除过时备份,但用户也可使用操作系统命令删除这些备份。如果备份不是使用RMAN 删除的,那么在目录与目录
实际内容之间执行交叉检验之前,目录并不知道备份是否缺失。
CROSSCHECK BACKUPSET;
CROSSCHECK COPY;
• Delete All Obsolete(删除所有过时记录):执行这个任务会删除早于保留策略的备份。
DELETE NOPROMPT OBSOLETE;
• Delete All Expired(删除所有失效记录):执行这个任务会删除执行交叉检验时未找到的备份的目录列表。
DELETE NOPROMPT EXPIRED BACKUP;
DELETE NOPROMPT EXPIRED COPY;
- 查看备份报告
选择“Enterprise Manager > Availability > Backup Reports(Enterprise Manager > 可用性> 备份报告)”也可查看有关备份作业的信息。这些内容基于控制文件。备份报告提供有关特定作业的输入和输出的概要信息及详细信息,其中包括计时、SCN、大小调整、压缩、损坏(如果有)等等。
- 监视快速恢复区
如果将归档日志配置为写入到此位置,则必须监视此位置的空间,以确保它没有到达其容量限制。如果实例因空间不足而无法创建归档日志,实例就会暂停,直到管理员更正了这种情况。
选择“Enterprise Manager > Availability > Recovery Settings(Enterprise Manager > 可用性> 恢复设置)”。
在此页上,可执行以下操作:
• 确定已占用了多少快速恢复区空间
• 指定快速恢复区的位置
• 指定快速恢复区的大小
• 配置闪回数据库
• 指定保留时间
保留时间确定文件何时过时(即何时这些文件对达到数据恢复目标已不再有用)。Oracle DB 通过删除不再需要的文件,自动管理此存储。备份恢复区时,如果快速恢复区中的归档重做日志无法访问或已损坏,则RMAN 可故障转移到其它归档重做日志目标。
定期将备份复制到磁带可释放快速恢复区的空间以存放其它文件,但从磁带检索文件会导致数据库还原和恢复的时间较长。
注:快速恢复区的英文名称已从flash recovery area 改为fast recovery area,但Enterprise Manager 的英文界面还没有更新,未反映此变化。
- 使用RMAN 命令行
$ rman target /
RMAN> CONFIGURE …
RMAN>BACKUP DATABASE PLUS ARCHIVELOG;
使用RMAN 命令行
1. 在终端会话中,启动RMAN 并连接到目标数据库。
2. 执行配置命令:
- CONFIGURE DEFAULT DEVICE TYPE TO disk;
- CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY;
- CONFIGURE CONTROLFILE AUTOBACKUP ON;
3. 完全数据库备份是所有数据文件和控制文件的副本。可以根据需要包括服务器参数文件(SPFILE) 和归档重做日志文件(可选)。使用RMAN 为所有数据库文件创建
映像副本,这只需执行以下几步即可完成:装载或打开数据库,启动RMAN,然后输入BACKUP命令。在备份归档日志文件时还可以提供DELETE
INPUT选项(可选)。这会使RMAN 在备份归档日志文件之后将其删除。如果未使用快速恢复区,则该选项尤为有用,它会在空间紧张的情况加剧时删除文件,从而
为你执行空间管理。如果使用该选项,则命令将类似于以下内容:
RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
此外还可使用以下命令,为数据库中所有数据文件和控制文件以前的映像副本创建备份(备份集或映像副本):
RMAN> BACKUP COPY OF DATABASE;