第 9 章:执行备份和恢复 目的 本章向您介绍通过 Enterprise Manager 执行的 Oracle Database 备份和恢复操作。
主题 本章讨论了以下内容:
查看屏幕截图 将鼠标移到这个图标上,显示所有的屏幕截图。您还可以将鼠标移到各个图标上,只查看与该图标相关的屏幕截图。
配置闪回恢复区和 ARCHIVELOG 模式 返回主题列表
闪回恢复区是为 Oracle 数据库中的所有与恢复相关的文件和活动提供的一个统一的存储位置。将数据库从介质故障中完全恢复过来所需的全部文件都属于闪回恢复区。可以在闪回恢复区中创建的与恢复相关的文件包括:存档重做日志文件、控制文件、由恢复管理器 (RMAN) 创建的备份、闪回日志和修改跟踪文件。Oracle 推荐在与数据库文件所在相同的磁盘上创建修改跟踪文件。实际上,如果您安装了 OMF,并执行了启用修改跟踪的命令,那么将自动在为数据库文件指定的目录中创建跟踪文件。
通过分配一个存储位置并将相关的恢复文件统一在一个特定的区域内,Oracle 数据库服务器使数据库管理员不必再管理由这些组件创建的磁盘文件。
当创建闪回恢复区时,您可以选择一个目录、文件系统或自动存储管理磁盘组来存放文件,并为闪回恢复区中用于存储所有文件的最大空间设置一个磁盘限额。您必须选择一个足够大的区域,以容纳所需的磁盘限额。当接近磁盘空间界限时,Oracle 服务器可以根据 RMAN 保留策略的界限来删除非必要的文件,为新文件腾出空间。
闪回恢复区应该在一个与工作区分离的磁盘上,其中存储着在增量备份中使用的活动数据库文件(如数据文件、控制文件、在线重做日志和修改跟踪文件)。将闪回恢复区和工作区置于相同的磁盘上,当出现磁盘故障时,很容易使您同时丢失活动的数据库文件以及备份。
当您创建数据库时,可以配置闪回恢复区和 ARCHIVELOG 模式。如果您在您创建数据库时没有执行这些任务,那么请按照以下步骤来配置闪回恢复区和 ARCHIVELOG 模式:
1.
在操作系统提示符下为闪回恢复区创建一个目录。执行下列命令:
cd $ORACLE_BASE mkdir flash_rec_area
2.
打开浏览器,并指定用户名为 SYS,口令为 SYSDBA,以登录 Enterprise Manager Database Console。单击 Login。
3.
单击 Oracle Database Home 页面上的 Maintenance。
4.
在 Backup/Recovery 部分中选择 Configure Recovery Settings。您可以使用 Configure Recovery Settings 页面来配置恢复实用工具的设置,包括闪回恢复区。
5.
出现 Configure Recovery Settings 页面。滚动至 Flash Recovery Area 部分。在相应字段中输入下列值来配置闪回恢复区:
Flash Recovery Area Location:<在第 1 步中创建的目录步中创建的目录闪回恢复区所需的大小pGY0<>
Flash Recovery Area Size:<闪回恢复区所需的大小>
向上滚动至窗口顶部。
6.
选中 Archive Log Mode,为数据库配置 ARCHIVELOG 模式。单击 Apply。
7.
显示一条确认修改的消息。要完成 ARCHIVELOG 模式的配置,必须关闭数据库例程。单击 Yes,关闭例程并重新启动它。
8.
显示 Restart Database:Specify Host and Target Database Credentials 页面。输入主机证书和数据库证书。单击 OK。
9.
显示 Restart Database:Confirmation 页面。单击 Yes,关闭例程并重新启动它。
10.
显示 Restart Database:Activity Information 页面。单击 Refresh,登录 Enterprise Manager Database Control。
配置备份设置和策略 返回主题列表
您可以配置许多设置和策略来确定如何存储备份、备份哪些数据、如何执行备份,以及备份在从恢复区中清除之前保留多久。
您还可以配置特性来提高备份性能。
1.
单击 Oracle Database 主页上的 Maintenance 页面。
2.
在 Backup/Recovery 区域中选择 Configure Backup Settings。
3.
滚动至 Configure Backup Settings 页面的 Host Credentials 区域。输入操作系统用户名和口令。向上滚动至 Disk Settings 部分。
4.
接受 Device 页面上的 Disk Settings 部分中的 Parallelism 字段中的值 1。设置 Disk Backup Location 字段为 null,以使用闪回恢复区进行备份。对 Disk Backup Type 选择 Backup Set。单击 Test Disk Backup。
5.
显示一条消息,指示磁盘设置备份测试成功完成。现在您将配置备份策略设置。单击 Policy,访问 Policy 页面。
6.
选择 Automatically backup the control file and server parameter file (SPFILE) with every backup and database structural change。选择 Optimize the whole database backup by skipping unchanged files such as read-only and offline datafiles that have been backed up。选择 Enable block change tracking for faster incremental backups。为 Block Change Tracking File 输入一个文件名。然后向下滚动到 Retention Policy 部分。
7.
选择 Retain backups that are necessary for a recovery to any time within the specified number of days (point-in-time recovery),并接受默认值(31 天)。单击 OK。返回到 Maintenance 页面。
确定 DBID 和 DB_UNIQUE_NAME 的值 返回主题列表
如果您丢失了数据库控制文件或 SPFILE,Enterprise Manager 可以从备份中恢复它们 — 只要您能够为数据库提供 DB_UNIQUE_NAME 和 DBID。
执行以下步骤,确定 DB_UNIQUE_NAME 的值:
1.
单击 Administration 页面上的 Instance 区域中的 All Initialization Parameters。
2.
出现 Current 属性页面。在 Filter 字段中输入 db_unique_name,然后单击 Go。
3.
出现的页面显示了一行,该行的 Name 列为 db_unique_name,Value 列中给出了数据库的db_unique_name 的值。
记录这个值,以便将来您需要它来进行恢复操作时,可以获得它。
执行以下步骤来确定 DBID:
1.
单击 Administration 页面的 Storage 区域中的 Controlfiles。
2.
出现 Controlfiles 属性页面。选择 Advanced 属性页面。
3.
Database ID 字段包含 DBID 值。
记录这个值,以便将来您需要它来进行恢复操作时,可以获得它。
执行完整的数据库备份 返回主题列表
您可以通过执行一次完整的数据库备份来备份数据库的全部内容。所有数据文件的完整备份都将被创建。结果可能作为镜像拷贝或作为备份集存储,但在任意情况下,数据库的所有数据文件以及控制文件、存档重做日志和服务器参数文件的全部内容都将在备份中反映出来。利用这个文件集,可以完整的恢复数据库。
1.
在 Backup/Recovery 区域中选择 Schedule Backup。
2.
出现 Schedule Backup:Strategy 页面。从 Backup Strategy 下拉菜单中选择 Customized。选择 Whole Database,如果需要,在 Host Credentials 部分中输入用户名和口令。单击 Next。
3.
出现 Schedule Backup:Options 页面。在 Backup Type 部分中选择 Full Backup。在 Backup Mode 部分中选择 Online Backup。在 Advanced 部分中选中 Back up all archived logs on disk。单击 Next。
4.
出现 Schedule Backup:Settings 页面。适当地选择 Disk 或 Tape。单击 Next。
5.
出现 Schedule Backup:Schedule 页面。接受默认的作业名称。选择 Immediately,立即执行作业,或输入在稍后执行的时间。单击 Next。
6.
出现 Schedule Backup:Review 页面。单击 Submit Job。
7.
显示 Backup Submit Successful 消息。单击 OK。
利用 Oracle 建议的备份策略对数据库进行备份 返回主题列表
Oracle 建议的备份策略的基础是创建数据库的一个镜像拷贝,然后利用 RMAN 增量备份继续生成备份。Oracle Enterprise Manager 调度 RMAN 备份作业。按照以下步骤来设置备份计划:
1.
在 Backup/Recovery 区域中选择 Schedule Backup。
2.
出现 Schedule Backup:Strategy 页面。从 Backup Stratgy 下拉菜单中选择 Oracle-suggested。在 "Select your backup destination" 下选择 Disk。在 Host Credentials 部分中输入操作系统用户名和口令。单击 Next。
3.
出现 Schedule Backup:Setup 页面。请仔细查看信息,然后单击 Next。
4.
出现 Schedule Backup:Schedule 页面。仔细查看信息,并相应地调整开始日期和时间。单击 Next。
5.
出现 Schedule Backup:Review 页面。请仔细查看信息,然后单击 Submit Job。
6.
出现 Status 页面和一条指示作业成功提交的消息。您可以单击 View Job 来访问作业状态页面或单击 OK 来完成操作。
还原和恢复整个数据库 返回主题列表
在这一部分中,您将通过 Enterprise Manager 来恢复数据文件。
1.
在 Backup/Recovery 区域中选择 Perform Recovery。
2.
出现 Perform Recovery:Type 页面。从 Type 部分中的 Object Type 下拉菜单中选择 Whole Database。选择 Recover to the current time or a previous point-in-time 作为 Operation Type。在 Host Credentials 部分中输入操作系统用户名和口令。单击 Next。
4.
显示 Recovery Wizard 页面,指示例程将关闭并重启。单击 Refresh,继续使用 Recovery Wizard。
5.
单击 Perform Recovery,恢复数据库。
6.
在 Host Credentials 区域中输入操作系统用户名和口令。在 Database Credentials 区域中输入 SYS 和 SYS 的口令。单击 Continue。
7.
再次出现 Perform Recovery:Type 页面。数据库现在处于加载状态。单击 Next。
8.
出现 Perform Recovery:Point-in-time 页面。选择 Recover to the current time。单击 Next。
9.
出现 Perform Recovery:Rename 页面。选择 No. Restore the files to the default location(如果您希望这样)或者选择 Yes.Restore the files to a new, common location,并输入位置。单击 Next。
10.
出现 Perform Recovery:Review 页面。仔细查看信息,然后单击 Submit。
11.
收到 "Operation succeeded" 消息。单击 OK。
执行闪回表 返回主题列表
完成以下任务来执行闪回表操作:
[url=http://otn.oracle.com/index.html#t6b]模拟用户错误
启用行转移 返回列表
您必须在表上启用行转移,以在表上执行闪回表操作。在这一部分中,您将在 HR.EMPLOYEES 表上启用行转移。
1.
在 Oracle Database Home 页面上单击 Administration。
2.
出现 Administration 属性页面。在 Schema 部分中选择 Tables。
3.
出现 Tables 页面。从 Object Type 下拉菜单中选择 Table。在 Schema 字段中输入 HR,在 Object Name 字段中输入 REGIONS。单击 Go。
4.
REGIONS 表显示在 Results 部分中。单击 Edit。
5.
出现 Edit Table 页面。单击 Options 标签。
6.
从 Enable Row Movement 下拉菜单中选择 Yes。单击 Apply。
7.
收到一条消息,指示表成功修改。选择路径式导航栏中的 Tables 导航项。
模拟用户错误 返回列表
在这一部分中,您将通过修改 REGIONS 表中的数据来模拟用户错误。执行以下操作:
1.
通过打开一个终端窗口和执行以下命令来查看 REGIONS 表中的数据:
sqlplus hr/hr col region_name format a30 select * from regions;
2.
通过执行以下 SQL 命令来修改所有行中的 region_name 列中的值,以模拟用户错误:
update regions set region_name = 'ORACLE'; commit;
3.
再次执行以下命令来查看修改:
select * from regions;
在执行闪回表部分中,您将把表闪回到您更新表之前的时间点上。
执行闪回表 返回列表
在这一部分中,您将闪回 HR.REGIONS 表。
1.
验证在表的列表中仍然选中了 REGIONS。从 Actions 下拉菜单中选择 Flashback Table。单击 Go。
2.
出现 Perform Recovery:Point-in-time 页面。选择 Flashback to a timestamp,然后输入几分钟以前的一个日期和时间。单击 Next。
3.
出现 Perform Recovery:Flashback Tables 页面。仔细查看页面上的信息,然后单击 Next。
4.
出现 Perform Recovery:Review 页面。仔细查看信息,然后单击 Submit。
5.
接收到一条消息,确认表已被闪回。单击 OK。
6.
切换回 SQL*Plus 会话,执行以下命令来验证闪回表操作:
select * from regions;
执行闪回丢弃 返回主题列表
在这一部分中,您将使用闪回丢弃特性来取回被丢弃的表。为了完成本练习,您将创建一个新的表、丢弃该表,然后用闪回丢弃来恢复它。
按照下列步骤来创建一个新的表,然后丢弃它:
1.
在 Schema Name 字段中输入 HR,并在 Object Name 字段中输入 REGIONS 或 REGIONS 的一部分,然后单击 Go。
2.
从 Action 下拉菜单中选择 Create Like。单击 Go。
3.
出现 Create Table 页面。在 Name 字段中输入 REG_HIST。取消 REGION_ID 列选定的 Not Null。单击 Constraints。
4.
出现 Constraints 页面。选中每一个约束条件,然后单击 delete 来删除表上的约束条件。本练习不需要这些约束条件。
5.
单击 OK,创建 REG_HIST 表。
6.
收到一条消息,指示表已创建。在 Object Name 字段中输入 REG_HIST,然后单击 Go。
7.
显示 Tables 页面,并在 Results 部分中显示 REG_HIST 表。单击 Delete 来删除 REG_HIST 表。
8.
单击 Yes,确认删除表。
9.
显示一条消息,指示表已删除。单击 Go,尝试取回表。
10.
在结果部分中显示 No object found。
要恢复您刚刚删除的表,您将需要执行一次闪回丢弃。执行以下操作:
1.
单击 Recycle Bin。
2.
在 Schema Name 字段中输入 HR,然后单击 Go。
3.
验证选中了 REG_HIST,然后单击 Flashback Drop。
4.
出现 Perform Recovery: Rename 页面。单击 Next。
5.
出现 Perform Recovery:Review 页面。仔细查看信息,然后单击 Submit。
6.
显示一条确认消息。单击 OK。
7.
回收站中不再有该表。单击路径式导航栏中的 Tables 导般项。
8.
REG_HIST 表现在被包含在表的列表中。
管理备份 返回主题列表
管理备份包括两个任务:管理存在于磁盘或磁带上的备份自身,和管理保存在 RMAN 信息库中的备份记录。在这一部分中,您将执行备份维护和更新 RMAN 信息库。在这一部分中,您将执行以下任务:
使用 Manage Current Backups 页面[/url]
[url=http://otn.oracle.com/index.html#t9b]交叉查对备份
使用 Manage Current Backups 页面 返回主题列表
您可以使用 Manage Current Backups 页面来查看在 RMAN 信息库中记录的备份。从这个页面中,您可以执行在这整个部分中说明的备份维护操作。
1.
单击 Maintenance 属性页面的 Backup/Recovery 区域中的 Manage Current Backups。
2.
显示 Manage Current Backups 页面。Backup Sets 属性页面显示在 RMAN 信息库中记录的备份集。单击 Contents 列中的链接来查看关于一个备份集的内容的详细信息。
3.
显示 Contents 属性页面。单击 Manage Current Backups,返回 Manage Current Backups 属性页面。
4.
单击 Image Copies,查看 Image Copies 页面。
5.
显示 Image Copies 页面,该页面显示记录在 RMAN 信息库中的镜像拷贝。
交叉查对备份 返回主题列表
当您交叉查对一个备份时,RMAN 验证记录在信息库中的信息与实际备份状态是否保持一致。如果不一致,则将更新信息库来反映正确的状态。您可以按以下方式来交叉查对所有的备份文件:
1.
单击 Maintenance 属性页面的 Backup/Recovery 区域中的 Manage Current Backups。
2.
显示 Manage Current Backups 页面。单击页面顶部的 Crosscheck All 来交叉查对 RMAN 信息库中的所有文件。
3.
显示 Crosscheck All:Specify Job Parameters 页面。您可以接受 Job Name、Job Description、Start time 和 Repeat 规范的默认值,或输入自己的值。单击 Submit Job,提交交叉查对作业。
4.
在 Manage Current Backups 页面上显示了一条 Job Submission Succeeded 消息。您可以单击 View Job 来查看作业的状态。
5.
在 Summary 区域中,您可以查看作业的状态。
删除过期备份 返回主题列表
您可以通过执行以下步骤来删除 RMAN 信息库中标记为 EXPIRED 的所有备份:
1.
单击 Maintenance 属性页面的 Backup/Recovery 区域中的 Manage Current Backups。
2.
显示 Manage Current Backups 页面。单击页面顶部的 Delete All Expired,从 RMAN 信息库中删除标记为 EXPIRED 的那些备份。
3.
显示 Delete All Expired:Specify Job Parameters 页面。您可以接受 Job Name、Job Description、Start time 和 Repeat 规范的默认值,或输入自己的值。如果您没有执行交叉查对操作,选择 Perform the operation 'Crosscheck All' before 'Delete All Expired'。 单击 Submit Job,提交作业。
4.
在 Manage Current Backups 页面上显示了一条 Job Submission Succeeded 消息。您可以单击 View Job 来查看作业的状态。
5.
在 Summary 区域中,您可以查看作业的状态。
删除废弃备份 返回主题列表
您可以通过执行以下步骤来删除所有废弃的备份:
1.
单击 Maintenance 属性页面的 Backup/Recovery 区域中的 Manage Current Backups。
2.
显示 Manage Current Backups 页面。单击页面顶部的 Delete All Obsolete,从 RMAN 信息库中删除所有过时的备份。注意:您可以从 Backup Sets 或 Image Copies 页面中执行这一操作。
3.
显示 Delete All Obsolete:Specify Job Parameters 页面。您可以接受 Job Name、Job Description、Start time 和 Repeat 规范的默认值,或输入自己的值。单击 Submit Job,提交作业。
4.
在 Manage Current Backups 页面上显示了一条 Job Submission Succeeded 消息。您可以单击 View Job 来查看作业的状态。
5.
在 Summary 区域中,您可以查看作业的状态。
6.
返回 Image Copies 和/或 Backup Sets 属性页面来验证废弃的备份是否已被删除。
标记备份为 UNAVAILABLE 返回主题列表
您可以通过执行以下步骤来把信息库中的备份标记为 UNAVAILABLE:
1.
单击 Maintenance 属性页面的 Backup/Recovery 区域中的 Manage Current Backups。
2.
显示 Manage Current Backups 页面。选择您希望标记为 UNAVAILABLE 的备份,并单击 Change to Unavailable。
3.
显示 Confirmation 页面。单击 Yes,继续操作。
4.
显示 Request in process 页面。
编制备份的目录 返回主题列表
您可以为利用操作系统命令获取的备份编制目录,以便 RMAN 可以在恢复操作中使用它们。在本例中,您将使用操作系统命令来备份属于 EXAMPLE 表空间的数据文件。然后您将使用 Enterprise Manager 来为 RMAN 信息库中的备份文件编制目录。
1.
调用 SQL*Plus,并作为一个拥有 SYSDBA 权限的用户登录。通过执行以下命令来使 EXAMPLE 表空间处于在线备份模式:
ALTER TABLESPACE example BEGIN BACKUP;
2.
返回操作系统提示符,创建属于 EXAMPLE 表空间的数据文件的一个拷贝。在本例中,拷贝创建在一个名称为 backup 的目录中。您可以使用您自己选择的一个目录。
3.
执行以下命令,使 EXAMPLE 表空间退出在线备份模式:
ALTER TABLESPACE example END BACKUP;
4.
现在您已经做好准备,可以利用 Enterprise Manager Database Control 来为 RMAN 信息库中的备份编制目录。单击 Maintenance 属性页面的 Backup/Recovery 区域中的 Manage Current Backups。
5.
选择 Manage Current Backups 页面顶部的 Catalog Additional Files。
6.
选择 Catalog files in the specified disk location into the Recovery Manager repository,然后输入位置和备份文件的名称(无需文件扩展名)。单击 OK。
7.
显示 Request in process 页面。
8.
显示一条确认消息,指示已完成文件的目录编制。