9.3.4 Configuring Recovery Settings
本节解释如何配置用于实例恢复、媒体恢复和快速恢复的设置。它包括以下主题:
9.3.4.1配置快速恢复区域
如果在安装过程中没有指定快速恢复区域的位置,安装过程将在Oracle基本目录中自动配置快速恢复区域。但是,Oracle建议快速恢复区域位于与数据库文件分开的存储设备上。
您可以修改以下初始化参数来重新定位快速恢复区域并调整其大小:
-
DB_RECOVERY_FILE_DEST
指定快速恢复区域的位置。可以是文件系统目录或Oracle自动存储管理(Oracle ASM)磁盘组,但不能是原始磁盘。
DB_RECOVERY_FILE_DEST_SIZE
指定快速恢复区域的大小,单位为字节。
DB_RECOVERY_FILE_DEST_SIZE参数必须在DB_RECOVERY_FILE_DEST参数之前设置。
您可以设置这些参数,而不必关闭和重新启动数据库。在Oracle Real Application Clusters (Oracle RAC)数据库中,所有实例对于这些初始化参数必须具有相同的值。该位置必须位于集群文件系统、Oracle ASM或共享目录上。
配置快速恢复区:
假设您希望将快速恢复区域放置在/u02/oracle/fra目录中,并且希望其大小上限为10 GB。
- Connect Oracle Recovery Manager (RMAN) to the target database as described in "Connecting to the Target Database Using RMAN."
- 使用以下命令指定快速恢复区域的大小:
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G;
- 使用以下命令指定快速恢复区域的位置:
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u02/oracle/fra';
See Also:
9.3.4.2 启用重做日志文件的归档
若要在数据库打开时备份它,或要能够执行完整或时间点媒体恢复,必须启用重做日志文件的归档。为此,您将数据库置于ARCHIVELOG模式。您可以使用以下查询确定是否为目标数据库启用了重做日志存档:
SELECT LOG_MODE FROM V$DATABASE;
如果没有指定数据库应该将归档日志文件写入的目的地,则数据库将它们写入快速恢复区域。您可以指定不同的目的地,也可以指定将每个归档日志文件的多个副本写入不同的目的地。冗余副本有助于确保归档日志文件在某个目的地出现故障时始终可用。
下面的过程假设您希望将归档日志文件放置在目录/u02/oracle/logfiles中,并将归档日志文件的冗余副本放置在目录/u03中
WARNING:
您必须确保在任何时候都有足够的磁盘空间用于归档日志文件目的地。如果数据库在尝试归档日志文件时遇到磁盘满错误,则会发生致命错误,数据库停止响应。您可以检查警报日志以获取磁盘满消息。
To enable archiving of redo log files:
- Connect Oracle Recovery Manager (RMAN) to the target database as described in "Connecting to the Target Database Using RMAN."
- Shut down the database.
SHUTDOWN IMMEDIATE;
- Back up the database.
建议您总是在对数据库进行任何重大更改之前备份数据库。
- 启动实例并装入数据库(不要打开数据库)。要启用归档,必须挂载数据库,但不能打开数据库。
STARTUP MOUNT;
- 输入以下命令设置第一个归档日志文件目的地:
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/u02/oracle/logfiles';
Note:
The directory must exist.
- (可选)输入以下命令设置第二个归档日志文件目的地:
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = 'LOCATION=/u03/oracle/logfiles';
- 改数据库归档模式,然后打开数据库进行正常操作。
ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
- Shutdown the database.
SHUTDOWN IMMEDIATE;
- Back up the database.
因为更改归档模式会更新控制文件,所以建议您创建一个新的备份。
- Start up the database normally.
STARTUP;
Note:
不能使用切换到ARCHIVELOG模式之前的备份来将数据库恢复到切换后的某个时间点。因此,如果您在切换之后没有立即进行备份,那么您运行的数据库就没有有效的备份。参见“使用RMAN执行和调度备份”了解如何进行数据库备份。
See Also:
-
Oracle Database Administrator’s Guide for more information about setting initialization parameters for archived log file destinations
-
"Monitoring General Database State and Workload" for information about the alert log
9.3.4.3使闪回数据库
要将整个数据库恢复到以前的时间点,可以通过恢复备份并执行时间点恢复将整个数据库恢复到以前的时间点,也可以启用Flashback数据库。启用Flashback数据库后,数据库将在快速恢复区域生成Flashback日志。这些日志用于将数据库闪回到指定的时间。在通常的操作中,数据库偶尔会将数据块的图像记录到闪回日志中。数据库自动创建、删除和调整闪回日志的大小。
使用以下命令检查目标数据库是否启用了Flashback数据库:
SELECT FLASHBACK_ON FROM V$DATABASE;
To enable Flashback Database:
- Ensure that you configure a fast recovery area and that the database is running in
ARCHIVELOG
mode. - Connect Oracle Recovery Manager (RMAN) to the target database as described in "Connecting to the Target Database Using RMAN."
- 或者,可以通过设置DB_FLASHBACK_RETENTION_TARGET初始化参数来指定所需的闪回窗口的长度(以分钟为单位)。
这个参数的默认值是1440分钟,也就是一天。以下命令指定闪回窗口必须为3天。ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=4320;
- 使用以下命令为整个数据库启用Flashback数据库特性:
ALTER DATABASE FLASHBACK ON;
您还可以使用SQL*Plus而不是RMAN连接到目标数据库,从而执行本节中的命令。
See Also:
-
Oracle Database Backup and Recovery User’s Guide for more details about configuring a fast recovery area