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