执行数据库备份和恢复

本课程介绍了 Oracle 数据库 10g 的特性,使用这些特性可以更轻松地管理备份和恢复操作。

本课程介绍了以下主题:

概述
执行备份
执行数据文件恢复
数据库闪回
为实现快速的增量备份进行的更改跟踪

将鼠标移到该图标上可以显示所有屏幕截图。还可以将鼠标移到每个图标上来仅查看相关的屏幕截图。

支持备份和恢复操作的新特性

本课程介绍了为简化备份和恢复任务而提供的新特性。此外,还介绍了用于统一特定领域中的相关恢复文件以及简化数据库管理员任务的特性。

在 Oracle 数据库 10g 中,闪回功能已经得到扩展。使用 Flashback Database(闪回数据库)特性,您可以快速将整个 Oracle 数据库恢复到过去某个时间点的状态。本课程详细介绍了闪回数据库。除了数据库级的闪回操作以外,还可以闪回整个表。还可以快速恢复已经意外删除的表。现有的闪回查询功能也得到了增强。有关这些额外的闪回功能的信息,请参考从人为错误进行恢复

在本节,您将执行以下任务:

配置闪回恢复区
备份数据库

置闪回恢复区

闪回恢复区是为 Oracle 数据库中的所有与恢复相关的文件和活动提供的一个统一的存储位置。将数据库从介质故障中完全恢复过来所需的全部文件都属于闪回恢复区。可以在闪回恢复区中创建的与恢复相关的文件包括:存档重做日志文件、控制文件、由恢复管理器 (RMAN) 创建的备份、闪回日志和修改跟踪文件。

通过分配一个存储位置并将相关的恢复文件统一在一个特定的区域内,Oracle 数据库服务器使数据库管理员不必再管理由这些组件创建的磁盘文件。

执行以下步骤,以验证数据库是否处于 ARCHIVELOG 模式下并配置闪回恢复区。

1.

通过打开浏览器并输入以下 URL 登录到企业管理器数据库控制台:

http://:5500/em

输入 sys/ 作为 SYSDBA,单击 Login

将鼠标移到该图标上可以查看该图像

 

2.

Oracle 数据库主页通过显示一系列描述数据库整体状况的度量,使您可以查看数据库的当前运行情况。Oracle 数据库主页是数据库状态以及数据库环境管理和配置的入口。它通过子选项卡包含四个页面,每个页面显示有子部分。

单击 Maintenance 选项卡。

将鼠标移到该图标上可以查看该图像

 

3.

选择 Backup/Recovery -> Configure Recovery Settings

将鼠标移到该图标上可以查看该图像

 

4.

向下滚动到 Media Recovery Flash Recovery Area 部分以查看新设置。配置闪回恢复区和存档后,将为存档日志目标 10 配置闪回恢复区 (USE_DB_RECOVERY_FILE_DEST)。向上滚动到该页面的顶部。

将鼠标移到该图标上可以查看该图像

 

5.

单击 Database:orcl

将鼠标移到该图标上可以查看该图像

 

6.

在 Backup/Recovery 部分中单击 Configure Backup Settings

将鼠标移到该图标上可以查看该图像

 

7.

您现在需要测试配置。在 Disk Settings for Disk Backup Type 下选择 Image Copy。向下滚动到 Host Credentials

将鼠标移到该图标上可以查看该图像

 

8.

输入 OS 用户名和口令,然后向上滚动到该页面的顶部。

将鼠标移到该图标上可以查看该图像

 

9.

单击 Test Disk Backup。备份测试的位置就是为闪回恢复区设置的位置。

将鼠标移到该图标上可以查看该图像

 

10.

收到成功通知后,请单击 Database:orcl

将鼠标移到该图标上可以查看该图像

 

备份数据库

执行以下步骤以备份整个数据库。

1.

在 Backup/Recovery 部分中单击 Schedule Backup

将鼠标移到该图标上可以查看该图像

 

2.

为 Backup Strategy 选择 Oracle-suggested。在 Select your backup destination 下选择 Disk。输入您的 OS 用户名和口令。然后,单击 Continue

将鼠标移到该图标上可以查看该图像

 

3.

查看 Setup 页面,然后单击 Next

将鼠标移到该图标上可以查看该图像

 

4.

查看 Schedule 页面,然后单击 Next

将鼠标移到该图标上可以查看该图像

 

5.

查看 Review 页面,然后单击 Submit Job

将鼠标移到该图标上可以查看该图像

 

6.

您的备份作业已经提交。单击 OK

将鼠标移到该图标上可以查看该图像

 

7.

在 Related Links 部分中单击 Jobs

将鼠标移到该图标上可以查看该图像

 

8.

可以在 Job Activity 页面上查看备份作业的状态。单击您的备份作业。

将鼠标移到该图标上可以查看该图像

 

9.

然后,向下滚动并单击 Backup 日志。

将鼠标移到该图标上可以查看该图像

 

10.

单击 Show More

将鼠标移到该图标上可以查看该图像

 

11.

您将看到日志中的当前内容。可能需要单击 back 并再次选择备份日志,您将看到备份正在进行。完成备份后,向上滚动到该页面的顶部。

将鼠标移到该图标上可以查看该图像

 

12.

单击 Logout

将鼠标移到该图标上可以查看该图像

 

13.

单击 Login

将鼠标移到该图标上可以查看该图像

 

14.

SYSDBA 的身份输入 sys/,然后单击 Login

将鼠标移到该图标上可以查看该图像

 

您可以通过 Enterprise Manager 轻松地恢复数据文件或整个数据库。

可以使用闪回数据库特性将 Oracle 数据库快速恢复到先前某个时刻的状态,而不必恢复数据文件并执行介质恢复。可以使用企业管理器或 FLASHBACK DATABASE 命令闪回数据库。

通过 Resetlogs 简化恢复这一特性是恢复操作的增强功能,如此,可将以前的化身备份(incarnation backup)用于恢复当前的数据库化身。在打开数据库以供生产使用之前,您不必在 RESETLOGS 操作之后备份整个数据库。

在这一部分中,您将通过 Enterprise Manager 来恢复数据文件。您可通过从开放式数据库中删除数据文件来模拟数据文件的丢失。执行以下列出的步骤以模拟数据库中数据文件的丢失并恢复该数据文件:

1.

调用 SQL*Plus 并以 HR 用户的身份进行连接。按如下所示查询 EMPLOYEES 表:

sqlplus /nolog
connect hr/hr@orcl
SELECT count(*) FROM hr.employees;
exit

将鼠标移到该图标上可以查看该图像

 

2.

EMPLOYEES 表存储在 EXAMPLE 表空间中。EXAMPLE 表空间由 example01.dbf 数据文件组成。通过在操作系统提示符下执行以下命令模拟 example01.dbf 数据文件的丢失:

rm $ORACLE_BASE/oradata/orcl/example01.dbf

将鼠标移到该图标上可以查看该图像

 

3.

验证 example01.dbf 数据文件的丢失。以 HR 用户的身份使用 SQL*Plus 连接数据库。对 DEPARTMENTS 表执行以下查询:

sqlplus /nolog
connect hr/hr@orcl
SELECT count(*) FROM hr.departments;
exit

将鼠标移到该图标上可以查看该图像

 

4.

您现在将使用 Enterprise Manager 来恢复数据文件。切换回 Enterprise Manager。单击 Maintenance 选项卡。

将鼠标移到该图标上可以查看该图像

 

5.

在 Backup/Recovery 部分中单击 Perform Recovery

将鼠标移到该图标上可以查看该图像

 

6.

注意 Current Database Information 部分中一个数据文件需要恢复的指示。 选择 Restore and Recover。在 Host Credentials 部分中,输入 oracle/URin2 并单击 Continue

将鼠标移到该图标上可以查看该图像

 

7.

选择/oracle/oradata/orcl/example01.dbf 数据文件复选框并单击 Next

将鼠标移到该图标上可以查看该图像

 

8.

通过选择 No. Restore the files to the default location 将数据文件恢复到它的原始位置。单击 Next

将鼠标移到该图标上可以查看该图像

 

9.

查看您要提交的恢复作业。单击 Submit

将鼠标移到该图标上可以查看该图像

 

10.

查看 Operation Succeeded 页面。单击 OK

将鼠标移到该图标上可以查看该图像

 

11.

您现在将验证恢复。在终端窗口中调用 SQL*Plus。以 HR 用户的身份连接到 orcl 数据库。再次查询 DEPARTMENTS 表。

sqlplus /nolog
connect hr/hr@orcl
SELECT count(*) FROM hr.departments;
exit

将鼠标移到该图标上可以查看该图像

 

使用 Flashback Database(闪回数据库)特性,您可以快速将整个 Oracle 数据库恢复到过去某个时间点的状态。可以使用 Flashback Database 撤销已经导致逻辑数据损坏或因用户错误导致的更改。Flashback Database 要比使用备份和重做日志文件的传统时间点恢复的速度快。数据库恢复时间现在与需要撤销的更改数(而非数据库大小)成正比。

闪回数据库是使用一种称作闪回数据库日志的新型日志文件实施的。闪回数据库日志包含已更改块的数据块映像以及支持该操作的其他信息。数据块映像用于在闪回数据库操作过程中快速撤销对数据库的更改。

请求数据库闪回时,Oracle 数据库服务器使用闪回数据库日志撤销更改。执行以下步骤:

1.

打开一个终端窗口。以 SYSDBA 的身份登录到 SQL*Plus。按如下所示执行 CREATE_JOBS_HIST 脚本创建 HR.JOBS_HIST 表:

cd wkdir
sqlplus /nolog
connect / as sysdba
@CREATE_JOBS_HIST
SELECT count(*) FROM hr.jobs_hist;

将鼠标移到该图标上可以查看该图像

 

2.

通过执行以下查询确定当前的系统更改编号 (SCN)写下该编号。

SELECT current_scn FROM v$database; 

将鼠标移到该图标上可以查看该图像

 

3.

截断 HR.JOBS_HIST 表以模拟用户错误。

TRUNCATE TABLE hr.jobs_hist;
SELECT count(*) FROM hr.jobs_hist;

将鼠标移到该图标上可以查看该图像

 

4.

在准备闪回数据库时,使用 IMMEDIATE 选项关闭实例:

SHUTDOWN IMMEDIATE

将鼠标移到该图标上可以查看该图像

 

5.

在准备闪回数据库时,请启动实例并安装数据库:

STARTUP MOUNT

将鼠标移到该图标上可以查看该图像

 

6.

退出 SQL*Plus。调用 Recovery Manager(恢复管理器)并连接目标数据库:

rman
connect target

将鼠标移到该图标上可以查看该图像

 

7.

使用 Recovery Manager 将数据库闪回到以前找到的 SCN。

FLASHBACK DATABASE TO SCN ;

将鼠标移到该图标上可以查看该图像

 

8.

使用 RESETLOGS 选项打开数据库。

ALTER DATABASE OPEN RESETLOGS;

将鼠标移到该图标上可以查看该图像

 

9.

验证是否恢复了 HR.JOBS_HIST 表中的行。

SELECT count(*) FROM hr.jobs_hist;

将鼠标移到该图标上可以查看该图像

 

概述

在 Oracle 数据库以前的版本中,当您使用增量备份备份数据库时,RMAN 必须检查整个数据文件以确定哪些块已经更改。因此,RMAN 执行增量备份所用的时间与备份中涉及的数据文件的大小成正比。

在 Oracle 数据库 10g 中,可以创建一个用于记录自上次备份以来修改的块数的块更改跟踪文件。RMAN 使用跟踪文件确定在增量备份中包含哪些块。使用更改跟踪文件,RMAN 可以使增量备份时间与上次备份以来修改的内容数量成正比。

启用更改跟踪

启用更改跟踪时,Oracle 自动跟踪更改跟踪文件中哪些数据文件块已经更改。执行 BACKUP INCREMENTAL 时,RMAN 使用更改跟踪文件更快速地标识自上次增量备份以来已更改的块。因此,RMAN 创建增量备份的速度要比 Oracle 数据库 10g 之前的版本快很多。

默认情况下,更改跟踪文件作为 Oracle 托管文件在 DB_CREATE_FILE_DESTDB_RECOVERY_FILE_DEST 初始参数指定的位置中创建。

1.

在 Enterprise Manager 中的 Maintainance 选项卡的 Backup/Recovery 部分中,选择 Configure Backup Settings

将鼠标移到该图标上可以查看该图像

 

2.

单击 Policy 选项卡。

将鼠标移到该图标上可以查看该图像

 

3.

选中“Enable block change tracking for faster incremental backups”。将以下内容指定为更改跟踪文件的名称:/oracle/oradata/orcl/chg_trk.dbf。滚动到 Host Credentials 部分。

将鼠标移到该图标上可以查看该图像

 

4.

输入 OS 用户名和口令,然后单击 OK

将鼠标移到该图标上可以查看该图像

 

将鼠标移到该图标上可以隐藏所有屏幕截图