Oracle 学习资料库
本教程介绍了可以让您更轻松地管理备份和恢复操作的 Oracle 数据库 10g 特性。
所需时间
大约 2 个小时。
本教程介绍了以下主题:
| 概述 | ||
| 前提条件 | ||
| 执行备份 | ||
| 执行数据文件恢复 | ||
| 数据库闪回 | ||
| 总结 | ||
将鼠标置于此图标上 可以加载和查看本教程的所有屏幕截图。 (警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注意:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。您可以单击单个屏幕截图将其隐藏。
本教程介绍了为简化备份和恢复任务提供的新特性。本课程利用了闪回恢复区。闪回恢复区是一个用于统一特定区域中的恢复文件并简化数据库管理员任务的特性。此外,本教程还介绍了块更改跟踪。在 Oracle 数据库的早期版本中,当您使用增量备份备份数据库时,RMAN 必须检查整个数据文件以确定哪些块发生了更改。在 Oracle 数据库 10g 中,您可以创建一个块更改跟踪文件,用于记录上次备份后修改的块。RMAN 使用跟踪文件确定将哪些块包含在增量备份中。通过更改跟踪文件,RMAN 可以使增量备份的时间与上次备份后修改的内容数量成正比,而不是与要备份的数据文件大小成正比。
Oracle 数据库 10g 已经扩展了闪回功能。通过闪回数据库特性,您可以将整个 Oracle 数据库快速恢复到过去某个时间点的状态。本教程将详细介绍闪回数据库。除了数据库级闪回操作以外,还可以闪回整个表,以及快速恢复意外删除的表。现有的闪回查询功能也得到了增强。有关这些闪回功能的其他信息,请参见教程 从人为错误中恢复。
开始本教程之前,您应该:
| 1. |
完成了教程 在 Windows 上安装 Oracle 数据库 10g。 |
|
| 2. |
下载 rman.zip 文件并将其解压缩到您的工作目录 (c:\wkdir) 中。 |
|
在该部分,您将执行以下任务:
| 配置闪回恢复区 | ||
| 启用块更改跟踪 | ||
| 测试磁盘备份 | ||
| 备份数据库 | ||
| 查看备份报告 | ||
| 检查闪回恢复区使用情况 | ||
| 制定 RMAN 脚本执行计划 | ||
闪回恢复区是为 Oracle 数据库中所有与恢复相关的文件和活动提供的一个统一的存储位置。将数据库从介质故障中完全恢复过来所需的全部文件都属于闪回恢复区。可以在闪回恢复区中创建的与恢复相关的文件包括:存档重做日志文件、控制文件、由恢复管理器 (RMAN) 创建的备份、闪回日志和更改跟踪文件。
通过分配一个存储位置并将相关的恢复文件统一在一个特定的区域内,Oracle 数据库服务器使数据库管理员不必再管理由这些组件创建的磁盘文件。
执行以下步骤,确认数据库处于 ARCHIVELOG 模式下并配置闪回恢复区。
| 1. |
打开浏览器并输入以下 URL,登录到企业管理器 Database Console:
http://localhost:1158/em
以 SYSDBA 的身份输入 sys/oracle,然后单击 Login。
|
| 2. |
Oracle Database Home 页面通过显示一系列描述数据库整体运行状况的度量为您展示该数据库的当前状态。Oracle Database Home 页面是数据库状态以及数据库环境管理和配置的入口。它包含四个按子选项卡划分的页面,每个页面显示各子部分。单击 Maintenance 选项卡。
|
| 3. |
在 Backup/Recovery Settings 下,单击 Recovery Settings。
|
| 4. |
您需要将数据库置于 archivelog 模式下。在 Media Recovery 部分中,选中 ARCHIVELOG Mode 复选框。然后,向下滚动至 Flash Recovery Area 部分。
|
| 5. |
向下滚动至该页面的 Flash Recovery Area 区域,然后单击 Enable Flashback Database。将 Flashback Retention Time 更改为 6 小时,然后单击 Ap ply 。
|
| 6. |
单击 Yes 重新启动数据库。
|
| 7. |
以 SYSDBA 的身份为 Cluster Credentials 输入 oracle/oracle,并为 Database Credentials 输入 sys/oracle。选中 Save as Preferred Credentials 框,然后单击 OK。
|
| 8. |
单击 Yes 确认。
|
| 9. |
数据库正在重新启动。等待大约 10 分钟,然后单击 Refresh。
|
| 10. |
单击 refresh 后,将显示 DB Control 主页,以 SYS 用户身份自动登录。
|
启用更改跟踪时,Oracle 自动跟踪更改跟踪文件中哪些数据文件块已经发生了更改。执行 BACKUP INCREMENTAL 时,RMAN 使用更改跟踪文件更快速地识别上次增量备份后发生更改的块。这样,RMAN 创建增量备份的速度要比 Oracle 数据库 10g 之前的版本快很多。
默认情况下,将更改跟踪文件在初始化参数 DB_CREATE_FILE_DEST 或 DB_RECOVERY_FILE_DEST 指定的位置创建为 Oracle 受管理的文件。
| 1. |
单击 Maintenance 选项卡。
|
| 2. |
在 Backup/Recovery Settings 区域中选择 Backup Settings 。
|
| 3. |
单击 Policy 选项卡。
|
| 4. |
选中 Enable block change tracking for faster incremental backups。为 Block Change Tracking File 的名称输入 <oracle_home>\oradata\<sid>\<filename>。滚动至页面底部。
|
| 5. |
确认设置了主机证书。选中 Save as Preferred Credential 选项,然后单击 OK。
|
在制定数据库备份计划前,您要执行镜像副本。在制定备份计划之前,您首先需要测试磁盘备份。执行以下步骤:
| 1. |
在 Maintenance 页面的 Backup/Recovery Settings 下,单击 Backup Settings。
|
| 2, |
将 Disk Backup Type 更改为 Image Copy。然后,为确定磁盘备份界面正常工作,单击 Test Disk Backup。
|
| 3. |
您将看到进度窗口。
|
| 4. |
大约一分钟之后,您将看到 Disk Backup Test 成功。向下滚动。
|
| 5. |
确保将 Host Credentials 置为 oracle/oracle ,然后单击 OK 保存设置。
|
执行以下步骤,备份整个数据库。
| 1. |
在 Maintenance 页面的 Backup/Recovery 部分中单击 Schedule Backup。
|
| 2. |
为最大限度地减少执行备份的管理任务,您将使用 Oracle Suggested Backup 方法。该方法制定一个日常备份作业计划,该作业使用前一个部分中配置的备份设置备份整个数据库。 对于备份策略,单击 Schedule Oracle-Suggested Backup。
|
| 3. |
确保选中了 Disk,然后单击 Next。
|
| 4. |
单击 Next。
|
| 5. |
将时间设置为当前时间之后 5 分钟,然后单击 Next。注意:查看 DB Control 主页可以确定当前的时间。
|
| 6. |
单击 Submit Job 制定备份计划。
|
| 7. |
您的备份作业已经提交。单击 View Job。
|
| 8. |
单击浏览器中的 Reload 或 Refresh,直到 Page Refreshed 时间显示备份作业计划开始时间之后的某个时间。
|
| 9. |
作业启动后可以看到它的进度。单击 Backup 日志查看有关此次执行的更多详细信息。
|
| 10. |
向下滚动查看详细信息。
|
| 11. |
当备份在大约 7 分钟的时间内成功完成后,单击页面底部的 Database 选项卡。 注意:如果备份失败,增加闪回恢复区的大小,再次尝试备份。
|
企业管理器在备份管理中增加了新功能,该功能为在某个域中针对数据库运行的所有备份提供单一视图。单击特定的数据库备份可以获得该备份的详细信息。通过提供所有数据库备份及其状态的组合视图,DBA 可以迅速确定备份作业何时未完成。通过下钻日志,DBA 可以解决该问题,然后重新启动备份。
要查看镜像副本备份的结果,执行以下步骤:
| 1. |
单击 Maintenance 选项卡。
|
| 2. |
在 Backup/Recovery 区域中,单击 Backup Reports。
|
| 3. |
随即显示数据库中当前计划的备份作业列表。单击将完整备份项。
|
| 4. |
该报告显示备份作业的摘要信息,如已备份文件的数量、备份大小以及备份中包含的文件。向下滚动查看 Inputs 和 Outputs 部分。
|
| 5. |
该报告的这两个部分提供了该作业所备份文件的更多详细信息。可以看到文件编号、文件大小、备份类型、损坏的块数以及检查点 SCN 信息。向下滚动查看该报告的后三个部分。
|
| 6. |
现在,您看到有关 Backup Sets、Backup Pieces 和 Image Copies 的信息。向上滚动至页面顶部。
|
| 7. |
单击 Database Instance:orcl 链接。
|
您还可以查看闪回恢复区的使用情况。执行以下步骤:
您还可以制定 RMAN 脚本的定期执行计划。执行以下步骤:
| 1. |
从 Maintenance 选项卡的 Backup/Recovery Settings 下,单击 Recovery Settings。
|
| 2. |
向下滚动至 Flash Recovery 部分。您将看到一个包含闪回恢复区使用情况的饼图。注意,由于您刚执行了备份,因此 Image Copy 占用了大部分空间。向上滚动至页面顶部。
|
| 3. |
单击 Database Instance:orcl 链接。
|
| 1. |
向下滚动至页面底部,然后单击 Related Links 下的 Jobs。
|
| 2. |
从 Create Job 下拉列表中选择 RMAN Script,然后单击 Go。
|
| 3. |
为 Job Name 输入 DAILY_ARCH_BACKUP。输入对此作业的描述,如“Backup archived log files in the flash recovery area”。对于 RMAN 脚本,您既可以通过键入 @c:\wkdir\backup_arch.rman 执行保存的脚本,也可以键入要运行的 RMAN 脚本,如下所示:
键入此信息后,单击 Add 指定数据库目标。
|
| 4. |
单击 Search 按钮。
|
| 5. |
选择 orcl 并单击 Add。
|
| 6. |
在 Create 'RMAN Script' Job 页面上,向下滚动至 Host and Database Credentials 区域。选择 Override Preferred Credentials 并为 Host User Name 和 Password 输入 oracle/oracle,然后确认该口令。为 Database User Name 和 password 输入 sys/oracle,然后确认该口令。将 Database Role 更改为 SYSDBA,然后单击 Schedule 选项卡。
|
| 7. |
为 Start 时段选择 Later,并将时间设置为 11:30 pm。在 Repeat 区域中,选择 Interval 并将 Frequency 设置为 1 Days。然后,单击 Submit。
|
| 8. |
随即创建作业并制定作业计划。要检查已制定计划的作业的当前状态,单击 Database 选项卡。
|
| 9. |
在 DB Control 主页上,向下滚动至 Job Activity 区域,单击 Scheduled Executions 右侧的链接号。
|
| 10. |
在 Job Activity 页面上,可以看到 DAILY_ARCH_BACKUP 作业计划在稍后运行。单击页面顶部的 Database 选项卡。
|
可以通过企业管理器轻松地恢复数据文件或整个数据库。
可以使用闪回数据库特性将 Oracle 数据库快速恢复到其先前某个时刻的状态,而无需恢复数据文件并执行介质恢复。可以使用企业管理器或 FLASHBACK DATABASE 命令闪回数据库。
重置日志简化的恢复这一特性是恢复操作的增强功能,该特性可以使用先前的化身备份恢复当前的数据库化身。在打开数据库供生产使用之前,您不必在 RESETLOGS 操作之后备份整个数据库。
您将需要执行以下任务恢复丢失/损坏的数据文件:
| 删除数据文件 | ||
| 将表空间置于联机状态 | ||
您首先将查看 employees 表中包含的某些数据。然后,您将删除包含该表数据的文件来模拟数据文件丢失。为了删除数据文件,您需要将表空间置于脱机状态,然后将数据文件删除。执行以下步骤:
| 1. |
选择 开始 > 程序 > Oracle - OraDb10g_home1 > Application Development > SQL Plus。为 User Name/Password 输入 hr/hr ,单击 OK。
|
| 2. |
输入以下命令,查看 HR 模式中员工的当前数量:
SELECT count(*) FROM hr.employees; exit
|
| 3. |
为了删除数据文件,您需要将表空间置于脱机状态,然后将数据文件删除。以 SYSDBA 用户的身份登录到企业管理器,然后单击 Administration 选项卡。
|
| 4. |
选择 Tablespaces。
|
| 5. |
单击 EXAMPLE 表空间的链接。
|
| 6. |
注意该表空间的数据文件位置。
|
| 7. |
从 Actions 列表中选择 Take Offline,然后单击 Go。
|
| 8. |
选择脱机模式 Immediate,然后单击 OK。
|
| 9. |
表空间将处于脱机状态。现在可以删除该文件了。单击 Database Instance:orcl 链接。
|
| 10. |
打开 Windows 资源管理器,导航到 EXAMPLE 表空间文件的位置。右键单击 EXAMPLE01.DBF,并选择 Delete。
|
| 11. | 单击 Yes 确认。
|
| 12. |
切换回企业管理器。从 Administration 选项卡中,选择 Tables 链接。
|
| 13. |
在 Schema 域中输入 HR,然后单击 Go。
|
| 14. |
选择 EMPLOYEES 表前面的单选按钮,从 Actions 列表中选择 View data,然后单击 Go。
|
| 15. |
注意 I/O 错误。数据文件内容已经从该位置消失。单击 Database Instance:orcl 链接。
|
现在,您就可以对刚删除的数据文件执行恢复了。执行以下步骤:
| 1. |
单击 Maintenance 选项卡。
|
| 2. |
在 Backup/Recovery 下,选择 Perform Recovery。
|
| 3. |
注意数据库信息表示有一个数据文件需要恢复。单击 Datafiles Need Media Recovery。
|
| 4. |
要恢复的数据文件已经位于数据文件列表中。选中数据文件名称前面的 Select 复选框。然后单击 Next。
|
| 5. |
接受默认设置恢复到默认位置,然后单击 Next。
|
| 6. |
审查要提交的作业。注意,您可以单击 Edit RMAN Script 查看将要运行的脚本。单击 Submit。
|
| 7. |
浏览器将继续轮询恢复请求的状态并显示一个处理屏幕。
|
| 8. |
大约一分钟后,将显示“Operation Succeeded”消息,此时应单击 OK。
|
要访问恢后的数据文件中的数据,您需要先恢复表空间的联机状态。执行以下步骤:
| 1. |
在 database Administration 页面上,单击 Tablespaces。
|
| 2. |
选择 EXAMPLE 表空间,在 Actions 列表中选择 Place Online,然后单击 Go。
|
| 3. |
单击 Yes 确认。
|
| 4. |
已再次将 EXAMPLE 表空间的数据文件置于联机状态。单击 Database Instance:orcl 链接。
|
| 5. |
要验证您现在是否可以查看数据,选择 Tables 链接。
|
| 6. |
为 Schema 输入 hr,然后单击 Go。
|
| 7. |
再次选择 EMPLOYEES 表的单选按钮,从 Actions 下拉列表中选择 View Data,然后单击 Go。
|
| 8. |
现在将显示数据。数据文件已成功恢复。
|
通过闪回数据库特性,您可以将整个 Oracle 数据库快速恢复到过去某个时间点的状态。可以使用闪回数据库回退已导致逻辑数据损坏或因用户错误导致的更改。可以在实施数据库更改前创建一个恢复点来辅助执行闪回操作。闪回数据库要比使用备份和重做日志文件的传统时间点恢复快。现在的数据库恢复时间与需要回退的更改数(而非数据库大小)成正比。
闪回数据库使用一种称作闪回数据库日志的新型日志文件实现。闪回数据库日志包含已发生更改的块的数据块镜像以及支持该操作的其他信息。这些数据块镜像用于在闪回数据库操作过程中快速回退数据库的更改。
当请求数据库闪回时,Oracle 数据库服务器使用闪回数据库日志回退更改。在本练习中,您将创建一个恢复点,修改数据库表,然后闪回到此恢复点来撤消对表的更改。执行以下步骤:
| 创建恢复点 | ||
| 使用恢复点闪回数据库 | ||
| 1. |
选择 开始 > 程序 > Oracle - OraDb10g_home1 > Application Development > SQL Plus。为 User Name 输入 /nolog ,单击 OK。
|
| 2. |
执行如下所示的 CREATE_JOBS_HIST 脚本创建 HR.JOBS_HIST 表:
connect / as sysdba @c:\wkdir\create_jobs_hist SELECT count(*) FROM hr.jobs_hist;
|
| 3. |
切换到企业管理器 Database Control,然后单击 Maintenance 选项卡。
|
| 4. |
在 Backup/Recovery 下,单击 Manage Restore Points。
|
| 5. |
单击 Create。
|
| 6. |
输入名称 BEFORE_TRUNC,然后单击 OK。
|
| 7. |
这就创建了恢复点,并显示其相关的 SCN 值。单击 Database Instance:orcl 链接。
|
| 1. |
切换到 SQL Plus 窗口。使用以下命令截断 HR.JOBS_HIST 表来模拟用户错误。
TRUNCATE TABLE hr.jobs_hist; SELECT count(*) FROM hr.jobs_hist;
|
| 2. |
返回企业管理器,然后单击 Administration 选项卡。
|
| 3. |
选择 Tables。
|
| 4. |
为 Schema 输入 HR,然后单击 Go。
|
| 5. |
选择 HR.JOBS_HIST 表,然后单击 Edit。
|
| 6. |
在最后一个列项后的空白行中,为 name 输入 LAST_UPDATE,并为 data type 输入 TIMESTAMP。单击 Apply。
|
| 7. |
已经成功应用了更改。单击 Database Instance:orcl 链接。
|
| 8. |
返回 SQL*Plus 并使用以下命令描述该表以查看新列:
DESCRIBE hr.jobs_hist; exit
|
| 1. |
单击 Maintenance 选项卡。
|
| 2. |
单击 Perform Recovery。
|
| 3. |
要将数据库置于恢复模式下,单击 Perform Whole Database Recovery 按钮。
|
| 4. |
单击 Yes 关闭数据库。
|
| 5. |
将显示 Recovery Wizard 页面。等待大约 8 分钟,然后单击 Refresh。
|
| 6. |
数据库被关闭,并以 mount 状态启动。
|
| 7. |
将数据库闪回到截断 HR.JOBS_HIST 表前创建的恢复点。打开一个 SQL Plus 会话,然后输入以下命令:
connect / as sysdba;
FLASHBACK DATABASE TO RESTORE POINT before_trunc;
|
| 8. |
当 FLASHBACK 命令完成时,使用以下命令打开数据库: ALTER DATABASE OPEN RESETLOGS;
|
| 9. |
几分钟后,将打开数据库。输入以下命令检查 HR.JOBS_HIST 表的内容和结构。注意,已经还原了行,但新近添加的列不存在。
connect hr/hr
|
| 10. |
切换到 Enterprise Manager,单击 Database 选项卡。
|
| 11. |
为 User Name 和 Password 输入 sys/oracle 。为 Connect As 选择 SYSDBA,单击 Login。
|
| 12. |
数据库现在处于打开状态。
|
在本教程中,您学习了如何:
| 配置并使用闪回恢复区 | ||
| 启用块更改跟踪以实现更快的增量备份 | ||
| 制定数据库备份计划 | ||
| 从丢失的数据文件恢复 | ||
| 使用恢复点将数据库闪回到上一时间点 | ||
将鼠标移到该图标上可以隐藏所有屏幕截图。
热门下载 | ||
更多融合中间件下载 | ||