第 9 章:执行备份和恢复
目的
本章向您介绍通过 Enterprise Manager 执行的 Oracle Database 备份和恢复操作。
主题
本章讨论了以下内容:
![]() | 配置闪回恢复区和 ARCHIVELOG 模式 |
|---|---|
![]() | 配置备份设置和策略 |
![]() | 定义 DBID 和 DB_UNIQUE_NAME 的值 |
![]() | 执行完整的数据库备份 |
![]() | 利用 Oracle 建议的备份策略对数据库进行备份 |
![]() | 还原和恢复整个数据库 |
![]() | 执行闪回表 |
![]() | 执行闪回丢弃 |
![]() | 管理备份 |
查看屏幕截图
** 将鼠标移到这个图标上,显示所有的屏幕截图。您还可以将鼠标移到各个图标上,只查看与该图标相关的屏幕截图。 **
配置 闪回恢复区和 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 。
执行闪回表
返回主题列表
完成以下任务来执行闪回表操作:
![]() | 启用行转移 |
|---|---|
![]() | 模拟用户错误 |
![]() | 执行闪回表 |
启用行转移
返回列表
您必须在表上启用行转移,以在表上执行闪回表操作。在这一部分中,您将在 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 。
<img alt="将鼠标移到这个图标上来查看图像" src="http://otn.oracle.com/obe/2day_d
