Oracle® 数据库备份恢复基础--3.5为RMAN设置闪回恢复区

3.5为RMAN设置闪回恢复区
正如在“自动的基于磁盘的备份和恢复:闪回恢复区”中所解释的,闪回恢复区的功能可以可以以您的名义在磁盘上指定特定的位置,使得你的数据库在此位置上创建和管理各种备份和恢复相关的文件。
使用闪回恢复区,简化了数据库不断进行的各种管理工作,自动命名恢复相关的文件,只要还原和恢复活动需要这些文件,便将它们保留在闪回恢复区中,当恢复你的数据库不再需要这些文件并且需要空间用于其他一些与备份和恢复相关的操作,便会自动删除它们以便腾出空间。
通过使用闪回恢复区,您长期进行的备份和恢复管理,可以大大地加以简化。强烈建议你使用闪回恢复区。作为实施您的备份策略的第一个步骤,你可能需要设立闪回恢复区。
本节概述了闪回恢复区的功能,确定存储在那里的文件,说明其文件的管理规则,并介绍了最重要的配置选项。
3.5.1选择一个闪回恢复区的位置
设立一个闪回恢复区时,你必须选择保存文件的位置(目录或自动存储管理磁盘组)。闪回恢复区不能被存储在一个裸文件系统中。
你还必须确定一个闪回恢复区的磁盘配额,即可用于存储在那里的所有文件的最大空间。你必须选择一个位置,大到足以容纳所需的磁盘配额。当接近磁盘空间限制时,Oracle可以删除不必要的文件,为新文件腾出空间,以便满足保留策略的限制。
闪回恢复区应该位于与数据库区不同的单独的磁盘上,而在数据库区中存储的是数据库文件、控制文件、联机重做日志文件。如果你将闪回恢复区与数据库区保持在同一磁盘上,那么在出现介质故障的事件时你的实时数据库文件和备份会同时丢失。
注意:
在RAC环境中选择了闪回恢复区的位置需要特殊的考虑。位置必须在一个集群文件系统,ASM或通过NFS配置的共享目录中。对所有实例位置和磁盘配额必须相同.

3.5.1.1闪回恢复区,自动存储管理,和Oracle管理文件
闪回恢复区与其他两个Oracle特征息息相关的,并可以与其结合使用。这两个特征是:Oracle管理文件和自动存储管理。。
Oracle管理文件(OMF)是一种基于几个初始化参数的服务,它对数据库文件、如控制文件、重做日志文件、数据文件和其他文件提供自动的命名,定位,创建和删除服务。通过消除制定针对这些细节的你自己的策略的规划的必要性,它可以简化DBA的工作的许多方面。
闪回恢复区建建立在OMF的基础上,所以闪回恢复区可以随时随地存储在Oracle管理的文件可以存储的地方。而Oracle管理文件可以建立在主机操作系统支持的传统的文件系统(例如,VxFS或ODM)上。
闪回恢复区也可以使用Oracle自动存储管理(ASM)。 ASM整合存储设备到易于管理的磁盘组,在而不需要第三方的逻辑卷管理器的前提下,提供如镜像和条带化这些好处。
即使您选择不在ASM存储中建立闪回恢复区,你仍然可以在ASM磁盘组中使用Oracle管理文件管理您的备份文件。此时你将失去闪回恢复区的主要好处之一:对满足您的可恢复目标不再需要的文件进行自动删除为最近备份腾出所需的空间。然而,其他自动特征仍然会起作用。
注意:
当存储备份文件,不使用闪回恢复区使用基于自动存储管理的OMF是可以的,但不建议这样。直接操作在自动存储管理之下的文件是不灵活的.

3.5.2可以存储在闪回恢复区中的文件
在闪回恢复区中的文件可以被分为永久或暂时的两类。仅有的永久文件(假设这些文件被配置存储在闪回恢复区中的话)是多份当前控制文件和联机重做日志的副本。这些文件不能被删除,删除的话会导致数据库实例的失败。所有其他文件都是暂时的,因为按照保留的策略在某个时间点之后它们会成为过时的或已备份到磁带上,Oracle通常最终会删除这些文件。临时文件包括归档重做日志,数据文件副本,控制文件,控制文件自动备份,备份片。
注意:
Oracle闪回数据库功能,它提供了一个方便的替代的时间点恢复,它会产生闪回日志,这也被认为是必须存储在闪回恢复区中的临时文件。然而,不像其他的临时文件,闪回日志不能被备份到其他介质。当闪回恢复区中的其他文件需要的空间时,它们的一部分会被自动删除。见第5章,“使用还原点和闪回数据库进行数据保护”关于Oracle闪回数据库的更多细节.

3.5.3规划闪回恢复区的大小
闪回恢复区越大,它的作用就越大。理想的情况下,闪回恢复区应足够大,大到可以包含所有下列文件:
.所有的数据文件的副本
.您所选择的备份策略所使用的增量备份
.联机重做日志
.尚未备份到磁带的归档重做日志
.控制文件
.控制文件的自动备份(包括控制文件和SPFILE文件的副本)
如果提供这么多的空间是不现实的,最好是创建一个空间足够大,以保持最重要的表空间和所有尚未复制到磁带的的归档日志的备份。在绝对最低的情况下,闪回恢复区必须足够大,大到能够包含还没有被复制到磁带的归档日志。
为了确定闪回恢复区中的磁盘配额和当前磁盘的使用情况,查询视图V$RECOVERY_FILE_DEST。
估算一个可用的闪回恢复区的大小的公式取决于您的备份和恢复策略中的几个因素:
.你的数据库频繁更改的数据块的数量是大还是小;
.你只在磁盘上还是在磁盘和磁带上存储备份;
.您使用基于冗余的保留策略,还是使用基于恢复窗口的保留策略;
.您是打算使用闪回数据库还是计划用保证恢复点作为替代时间点恢复来恢复逻辑错误。
具体计算公式提供许多不同的备份方案在附录A,“基于RMAN的磁盘和磁带备份策略:情景”。如果你想使用闪回数据库,你必须添加额外的空间闪回恢复区,在“闪回恢复区的大小,包括闪回日志”讨论。

3.5.4设置初始化参数闪回恢复区的大小和位置
要启用闪回恢复区,你必须设定两个初始化参数DB_RECOVERY_FILE_DEST_SIZE(指定磁盘配额,或使用该数据库的闪回恢复区文件的最大空间,)和DB_RECOVERY_FILE_DEST(指定闪回恢复区的位置)。
注意:

.DB_RECOVERY_FILE_DEST_SIZE必须在设置DB_RECOVERY_FILE_DEST之前设置。
.在一个RAC数据库,所有实例都必须使这些参数具有相同的值。
初始化参数可以通过下列任何方式指定:
.在目标数据库的初始化参数文件包含它们
.用SQL语句ALTER SYSTEM SET指定它们
.使用数据库配置助手设置它们
参见:
.Oracle数据库管理员指南关于设置和更改数据库的初始化参数的细节。

为了找出当前闪回恢复区的位置,查询V$RECOVERY_FILE_DEST。
参见:
Oracle数据库SQL参考关于ALTER SYSTEM的语法

3.5.4.1闪回恢复区大小:DB_RECOVERY_FILE_DEST_SIZE
这个初始化参数为这个数据库指定被用于闪回恢复区按字节计的最大存储量。
注意:
指定的值不包括某些类型的磁盘开销:
.块0或每个Oracle文件的OS块头不包括在这个尺寸中。在计算实际的闪回恢复区所需的磁盘用量时,允许额外的10%的余量。
.DB_RECOVERY_FILE_DEST_SIZE并不表明在磁盘上占用的实际大小,Oracle并不知道底层的文件系统镜像、压缩、或在一些其他的方式对磁盘开销的影响。例如,如果你能按正常冗余(2路镜像)ASM磁盘组配置闪回恢复区,则每个X字节的文件占用的ASM磁盘组2X字节。在这种情况下,必须设置为DB_RECOVERY_FILE_DEST_SIZE不超过1/2的ASM磁盘组的磁盘的大小。同样,采用了高冗余(三路镜像)ASM磁盘组时,DB_RECOVERY_FILE_DEST_SIZE必须在磁盘组的磁盘的大小不超过1/3,等等。

3.5.4.2闪回恢复区的位置:初始化参数DB_RECOVERY_FILE_DEST
此参数为创建文件指定一个有效的磁盘位置,此位置可以是一个文件系统目录,或自动存储管理磁盘组。

3.5.4.3共享在多个数据库的闪回恢复区
多个数据库可以有相同的DB_RECOVERY_FILE_DEST的值,如果符合下列条件之一的话:
.其中任何两个数据库所指定的DB_UNIQUE_NAME没有相同的值。
.对于那些没有提供DB_UNIQUE_NAME的数据库,没有两个数据库具有相同的DB_NAME的值。
当多个数据库共享一个单一的闪回恢复区时,以这种方式的文件系统或ASM磁盘组,这个闪回恢复区应该大到足以容纳所有数据库的所有恢复文件。为不同的数据库添加同一个DB_RECOVERY_FILE_DEST_SIZE值,然后允许在实际分配的的磁盘空间中进行任何如镜像或压缩的额外开销,正如“闪回恢复区大小:DB_RECOVERY_FILE_DEST_SIZE”中所述。

3.5.4.4当使用闪回恢复区时关于初始化参数的限制
使用闪回恢复区时,会对牵涉到的一些其他初始化参数产生潜在的影响:
.您不能使用LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST参数指定重做日志的归档位置。你必须改用新LOG_ARCHIVE_DEST_n参数。 有关LOG_ARCHIVE_DEST_n参数的语义的详细信息,请参阅Oracle数据库参考。
.LOG_ARCHIVE_DEST_10被隐式设置为USE_DB_RECOVERY_FILE_DEST(即归档重做日志文件将被发送到闪回恢复区),如果您创建一个恢复区并且不设置任何其他地方的归档位置。
.Oracle公司建议的DB_RECOVERY_FILE_DEST与DB_CREATE_FILE_DEST或任何的DB_CREATE_ONLINE_LOG_DEST_n参数都不相同。如果DB_RECOVERY_FILE_DEST与这里列出的任何其他参数是相同的,警告将出现在警报日志中。

3.5.4.5添加闪回恢复区到现有的数据库中
创建一个闪回恢复区,你可以在初始化参数文件(PFILE)设置必要的参数,并重新启动数据库。您还可以使用ALTER SYSTEM为一个处于打开状态的数据库设置初始化参数DB_RECOVERY_FILE_DEST和DB_RECOVERY_FILE_DEST_SIZE,进而为其添加闪回恢复区,如下列例子中所示。
注意:
设置DB_RECOVERY_FILE_DEST_SIZE必须你之前DB_RECOVERY_FILE_DEST.
1.在启动SQL * Plus连接到数据库之后,设置闪回恢复区的大小。例如,将它设置为10 GB:
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G SCOPE=BOTH SID='*';

设置SCOPE 为 BOTH 使其在内存和服务器参数文件中都生效。 (将SID的设置为“*”在单实例数据库中不起作用;在一个RAC数据库中,设置将在所有实例中生效。)
2.设置闪回恢复区的位置。例如,如果该位置为文件系统目录/disk1/flash_recovery_area,那么您可以执行以下操作:
SQL> SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/disk1/flash_recovery_area' SCOPE=BOTH SID='*';

如果闪回恢复区的位置是一个命名为例子DISK1的自动存储管理磁盘组,那么你就可以按以下的方式进行操作:
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '+disk1' SCOPE=BOTH SID='*';

3.5.4.6使用V$RECOVERY_FILE_DEST和V$FLASH_RECOVERY_AREA_USAGE
视图V$RECOVERY_FILE_DEST和V$FLASH_RECOVERY_AREA_USAGE可以帮助您确定您是否已为您的闪回恢复区分配足够的空间。
查询视图V$RECOVERY_FILE_DEST找出目前的位置,磁盘配额,已使用的空间,可回收删除文件的空间,和闪回恢复区中的文件总数。
SQL> SELECT * FROM V$RECOVERY_FILE_DEST;

NAME            SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
--------------  ----------- ---------- ----------------- ---------------
/mydisk/rcva     5368709120 109240320             256000              28

查询视图V$FLASH_RECOVERY_AREA_USAGE,找出不同类型的文件所占总磁盘配额的百分比,以及可以通过删除过时的,冗余的,或已经备份到磁带文件,能为每种类型的文件回收多少空间。
SQL> SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE                   0                         0               0
ONLINELOG                     2                         0              22
ARCHIVELOG                 4.05                      2.01              31
BACKUPPIECE                3.94                      3.86               8
IMAGECOPY                 15.64                     10.43              66
FLASHBACKLOG                .08                         0               1

关于视图V$RECOVERY_FILE_DEST和V$FLASH_RECOVERY_AREA的更多细节,请参见Oracle数据库参考。

3.5.4.7禁用闪回恢复区
要禁用闪回恢复区,设置初始化参数DB_RECOVERY_FILE_DEST为一个空字符串。例如,使用下列SQL * Plus语句改变正在运行的数据库参数:
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='' SCOPE=BOTH SID="*";

该数据库将不再为存储在老的DB_RECOVERY_FILE_DEST位置的文件提供闪回恢复区的空间管理功能。这些文件将仍然被RMAN信息库所知晓,无论怎样,它们仍然在备份和恢复活动中是可以使用的。

3.5.5配置备份保留策略
为了满足您的数据恢复要求,备份保留策略指定哪些备份必须保留。这一策略可以基于恢复窗口(可以恢复到过去多少天的最大数量)也可以基于冗余(每个备份文件保持多少副本)。
使用CONFIGURE命令设置保留策略。
参见:
.Oracle数据库备份和恢复参考有关CONFIGURE的语法

3.5.5.1配置恢复基于窗口的保留策略
CONFIGURE命令的RECOVERY WINDOW 参数指定当前的时间和最早可恢复时间点之间的天数。 如果任何全备或0级增量备份落在恢复窗口内,RMAN则不会将其视为过时的。此外,RMAN保留所有恢复到一个窗口内的随机点所需要归档日志和1级增量备份。
在RMAN提示符下运行CONFIGURE RETENTION POLICY 命令。下列例子确保您能恢复数据库到上周的任何时间点:
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

RMAN不会自动删除恢复窗口所确定的过时的备份。相反,RMAN在REPORT OBSOLETE 输出中将它们显示在V$ BACKUP_FILES的OBSOLETE列中。 如果你运行DELETE OBSOLETE命令,RMAN的删除过时的文件。

3.5.5.2配置基于冗余的保留策略
CONFIGURE RETENTION POLICY 命令的REDUNDANCY参数指定的每个数据文件和控制文件RMAN应保持多少份备份。换句话说,如果一个特定的数据文件或控制文件的备份的数量超过了REDUNDANCY设置,则RMAN将其看做过时的额外备份。默认保留策略是REDUNDANCY=1。
当你产生更多的备份,RMAN跟踪哪些保留,哪些是过时的。 RMAN的保留恢复非过时的备份所需要的所有归档日志和增量备份。
假设您在周一,周二,周三和周四对数据文件7进行了备份。你现在有4个数据文件7的备份。如果REDUNDANCY是2,然后在周一和周二的备份是过时的。如果你上周五有了另一个备份,那么在星期三的备份便变得过时了。
在RMAN提示符下运行CONFIGURE RETENTION POLICY命令,如在下面的例子:
CONFIGURE RETENTION POLICY TO REDUNDANCY 3;

3.5.5.3显示当前保留政策
与SHOW保留策略的命令,可以查看当前配置的保留策略。示例输出如下:
RMAN> SHOW RETENTION POLICY;

RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 3;

3.5.5.4禁用保留策略
当你禁用了保留策略中,RMAN不会将任何备份视为过时的。
要禁用保留策略,运行下列命令:
CONFIGURE RETENTION POLICY TO NONE;

保留策略配置为NONE与清理它不是一回事。清除它返回到其默认设置REDUNDANCY = 1,而没有完全禁用它。
如果禁用保留策略和运行REPORT OBSOLETE 或 DELETE OBSOLETE命令并且不带保留策略选项,RMAN报告一个错误,因为没有确定哪些备份过时的保留策略存在。
注意:
如果您正在使用闪回恢复区,那么你应该无法运行你的具有禁用保留策略的数据库。如果文件从未认为是过时的,那么只有在它已经备份到一些其他的磁盘位置或三级存储设备如磁带等,它才能从闪回恢复区中删除。很可能将恢复区的全部空间用完。这种情况会干扰你的数据库的正常运行在“在闪回恢复区何时无可用的空间”中进行说明.

3.5.6 Oracle如何管理在闪回恢复区的磁盘空间
Oracle不会从闪回恢复区中删除合乎条件的文件,直到空间必须回收用于其他目的。其效果是最近移动到磁带上的文件在磁盘上往往仍可以恢复使用。因此可以作为一种缓存磁带恢复区。一旦闪回恢复区满了,Oracle会自动删除合乎条件的文件,以回收在闪回恢复区的所需的空间。

3.5.6.1何时文件合乎条件可以从闪回恢复区中删除
有相对简单的规则控制文件何时变得有资格可以从闪回恢复区中删除:
.永久文件是从来没有资格被删除的。
.在配置了保留策略的条件下,过时的文件有资格被删除。
.已复制到磁带上的临时文件有资格被删除。
.在Data Guard环境中,归档重做日志删除策略控制归档重做日志文件何时可以从闪回恢复区中删除。有关归档重做日志删除策略的详细信息,请参阅的Oracle Data Guard概念和管理。
注意:
恰好有资格的文件将被删除,以满足一个空间要求是不可预知的。选择特定的文件删除的规则版本之间有可能改变,并且取决于你的配置。安全可靠的方式来控制从闪回恢复区中删除文件就是要修改你的保留策略。如果你想提高移动到磁带上的文件也保留在磁盘上可能性,以尽量减少预期还原和恢复时间,请增加闪回恢复区的配额.

3.5.6.2何时在闪回恢复区中空间不可用
如果,例如,RMAN保留策略需要保持一套比闪回恢复区磁盘配额大的备份,或者如果保留策略设置为NONE,那么闪回恢复区可能被完全填满而没有可回收的空间。
当可回收空间小于15%时数据库会发出一个警告警报,当可回收空间小于3%时,将发出一个危急的警报。在此条件下为了警告DBA,一个条目被添加到警报日志文件中和DBA_OUTSTANDING_ALERTS表中(企业管理器将使用此表)。然而,该数据库将继续消耗在闪回恢复区的空间,直到有没有可回收的剩余空间为止。
当恢复区完全充满时,您会收到下列错误:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim nnnnn bytes disk space from mmmmm limit

其中nnnnn是所需的字节数和mmmm是闪回恢复区的磁盘配额。
数据库处理可回收空间不足的闪回恢复区,和它在处理磁盘的充满的情形时是类似的。通常情况下,结果是数据库挂起,但并非总是如此。例如,如果闪回恢复区为1你的强制的重做日志的归档位置,并且数据库不能归档一个新的日志,因为恢复区是满的,那么归档器,这取决于你的配置,定期重试归档直到在恢复区的空间被释放。关于在磁盘的充满情况下Oracle如何响应的特定功能的信息,请参阅该功能的相关文档。
参见:
“解决一个填满的闪回恢复区”有关如何设法解决闪回恢复区经常填满的情况,并且没有文件有资格被删除
3.5.7为基于磁盘的备份配置闪存恢复区:示例
在这个例子中,数据库配置如下:
.归档日志和RMAN备份存储在闪回恢复区。
.控制文件和联机重做日志副本存储在闪回恢复区外的文件系统的目录中。
.数据文件预计将不超过3GB大小。应予保留归档重做日志文件不超过4GB。
在这个例子中的备份策略基于增量备份。控制文件将被自动备份到闪回恢复区。
闪回恢复区的大小为10GB,有足够的空间用于控制文件自动备份,整个数据库0级增量备份(包括3GB的数据文件映像副本),再加上几个1级增量备份。
为了实施这一策略,参数文件包含下列项目:
DB_NAME=sample
# set location for current datafiles:
DB_CREATE_FILE_DEST = '/u02/oradata/wrk_area'
# set location for control files and online redo logs:
DB_CREATE_ONLINE_LOG_DEST_1 = '/u03/oradata/wrk_area'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u04/oradata/wrk_area'
# set flash recovery area location and size
DB_RECOVERY_FILE_DEST = '/u01/oradata/rcv_area'
DB_RECOVERY_FILE_DEST_SIZE = 10G


由于参数文件不设置任何LOG_ARCHIVE_DEST_n参数,Oracle只将归档日志存入闪回恢复区。
一旦目标数据库启动,下面的RMAN命令配置保留策略,备份优化,控制文件自动备份:
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;


任何基于磁盘的备份,现在定向您的闪回恢复区。
参见:
“编写只用磁盘备份的脚本”备份作业的例子,你可以运行在此环境.

3.5.8用闪回恢复区中的多种文件创建一个数据库:场景
假设你要创建一个数据库具有以下属性:
.控制文件,数据文件和联机重做日志作为Oracle管理文件存储在一个单一的文件系统目录中。
.一个多个控制文件的副本保存在闪回恢复区
.多个联机重做日志的副本保存在闪回恢复区
.重做日志文件既被归档到闪回恢复区又被归档到另一个文件系统,与工作区分开
.默认情况下RMAN备份定向到闪回恢复区
参见:
Oracle数据库备份和恢复高级用户指南关于在闪回恢复区中文件创建更详细的信息

使用闪回恢复区创建一个数据库:

1.为数据库创建一个PFILE文件,其中包含在闪回恢复区中需要使用的初始化参数以及指向在线和归档日志,控制文件的副本。假设你设置以下:
# set DB_NAME
DB_NAME=sample
# set destination for OMF datafiles, control file and online redo logs
DB_CREATE_FILE_DEST = /u01/oradata/wrk_area/
# set log archiving destinations to a file system location
# and the flash recovery area
LOG_ARCHIVE_DEST_1 = 'LOCATION=/arc_dest1'
LOG_ARCHIVE_DEST_2 = 'LOCATION=USE_DB_RECOVERY_FILE_DEST'
# multiplexed copies of control file and online logs in flash recovery area
# rman backups also go here
DB_RECOVERY_FILE_DEST = 'LOCATION=/u01/oradata/rcv_area'
DB_RECOVERY_FILE_DEST_SIZE = 10G

DB_CREATE_FILE_DEST参数设置的所有数据文件,联机日志和控制文件的默认目录。闪回恢复区中创建控制文件和联机日志的另一个副本。

2.在设置初始化参数后,创建数据库。例如,启动SQL * Plus并输入:
SQL> CREATE DATABASE sample;

前面的语句具有以下效果:
.在DB_CREATE_FILE_DEST中创建作为Oracle管理文件的数据文件。
.由于没有包含LOGFILE子句,默认创建联机日志组。每组有两个成员,一个在DB_CREATE_FILE_DEST中,另一个在DB_RECOVERY_FILE_DEST中。

.由于没有设置CONTROL_FILES参数,Oracle在DB_CREATE_FILE_DEST(主)和DB_RECOVERY_FILE_DEST(多重副本)中创建控制文件。在Linux系统上,文件名可能看起来如下:
/u02/oradata/wrk_area/SAMPLE/controlfile/o1_mf_3ajeikm_.ctl #primary ctlfile
/u01/oradata/rcv_area/SAMPLE/controlfile/o1_mf_6adjkid_.ctl #ctl file copy
/u02/oradata/wrk_area/SAMPLE/logfile/o1_mf_0_orrm31z_.log #log grp1, mem 1
/u01/oradata/rcv_area/SAMPLE/logfile/o1_mf_1_ixfvm8w9).log #log grp 1 mem 2
/u02/oradata/wrk_area/SAMPLE/logfile/o1_mf_2_2xyz16am_.log # log grp2, mem 1
/u01/oradata/rcv_area/SAMPLE/logfile/o1_mf_2_q89tmp28_.log #log grp 2, mem 2


.Oracle使用LOG_ARCHIVE_DEST_1和LOG_ARCHIVE_DEST_2作为归档重做日志的存储位置。归档重做日志文件被创建在闪回恢复区,因为LOG_ARCHIVE_DEST_2配置为闪回恢复区。
因为你启用了本地重做日志归档位置,LOG_ARCHIVE_DEST_10不会隐含设置为闪回恢复区。
在闪回恢复区中的归档重做日志文件所给出的Oracle管理文件名不基于LOG_ARCHIVE_FORMAT参数给定的格式。例如,如果生成归档日志:
ALTER SYSTEM ARCHIVE LOG CURRENT;


在主归档位置一个归档日志文件被创建,同样在闪回恢复区子目录下一个归档日志文件也被创建:
/u01/oradata/rcv_area/SAMPLE/archivelog/YYYY_MM_DD
其中YYYY_MM_DD是创建日期格式。
3.你可能需要为此数据库创建多个联机重做日志组。要做到这一点,可以在SQL * Plus内使用ALTER DATABASE ADD LOGFILE 语句。如果没有指定文件名,在已经为联机重做日志指定的位置中它会创建另一个日志文件成员,包括在闪回恢复区内同样会如此。例如,下面的语句创建新的日志组的两名成员一个在DB_CREATE_FILE_DEST而另一个在DB_RECOVERY_FILE_DEST:
ALTER DATABASE ADD LOGFILE;

3.5.9创建一个带归档日志只放在闪回恢复区的数据库:场景
假设你要创建一个数据库,这个数据库的控制文件,数据文件和联机重做日志都是在一个单一的文件系统目录中的Oracle托管文件。此外,你要做到以下几点:
.归档每个重做日志到闪回恢复区(并且只放在闪回恢复区)
.默认情况下,将RMAN备份送到闪回恢复区。
参见:
Oracle数据库备份和恢复高级用户指南关于在闪回恢复区中文件创建更详细的信息

1.设置相关的初始化参数。假设你设置如下:
DB_NAME=sample
DB_CREATE_FILE_DEST = '/u02/oradata/wrk_area'
DB_RECOVERY_FILE_DEST = '/u01/oradata/rcv_area'
DB_RECOVERY_FILE_DEST_SIZE = 10G
# if you set the following parameters, then the online redo logs *and*
# current control file are located here
DB_CREATE_ONLINE_LOG_DEST_1 = '/u03/oradata/wrk_area'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u04/oradata/wrk_area'

DB_CREATE_FILE_DEST参数设置为数据文件的默认文件系统目录。 DB_CREATE_ONLINE_LOG_DEST_n参数设置的联机重做日志和控制文件的默认文件系统目录。 DB_RECOVERY_FILE_DEST设置归档日志文件系统目录。

2.在设置初始化参数之后,创建数据库。例如,启动SQL * Plus并输入:
CREATE DATABASE sample;

在闪回恢复区中没有创建联机重做日志或控制文件的副本。

3.因为启用了闪回恢复区,Oracle自动设置LOG_ARCHIVE_DEST_10闪回恢复区。闪回恢复区中的文件名是Oracle管理文件名并不遵循LOG_ARCHIVE_FORMAT参数所指定的格式。例如,生成归档日志:
ALTER SYSTEM ARCHIVE LOG CURRENT;

在Linux上,上面的语句创建一个闪回恢复区归档日志子目录
/u01/oradata/rcv_area/SAMPLE/archivelog/YYYY_MM_DD,其中YYYY_MM_DD创建日期格式。
4.如果您需要添加更多的联机重做日志组,执行ALTER DATABASE ADD LOGFILE 语句。如果没有指定文件名,它会在每个DB_CREATE_ONLINE_LOG_DEST_n位置创建另一个日志文件成员(但不在闪回恢复区)。例如,输入以下内容:
ALTER DATABASE ADD LOGFILE;

在Linux上,前面的语句创建一个成员在/u03/oradata/wrk_area/SAMPLE/logfile和另一个成员在/u04/oradata/wrk_area/SAMPLE/logfile。在其他平台上,具体的文件和目录名是平台相关的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值