有时归档目标可能会失败,从而导致在自动归档模式下运行时出现问题。 Oracle数据库提供的过程可帮助您最大限度地减少与目标故障相关的问这些程序将在以下章节中讨论。
指定成功目标的最小数量
可选的初始化参数LOG_ARCHIVE_MIN_SUCCEED_DEST = n确定数据库在重用联机日志文件之前必须将重做日志组成功归档到的最小目标数。默认值为1.如果使用双工,则n的有效值为1到2;如果要进行多路复用,则有效值为1到31。
指定强制或可选目的地
LOG_ARCHIVE_DEST_n参数允许您指定目标是可选的(默认)还是强制。 LOG_ARCHIVE_MIN_SUCCEED_DEST = n参数使用所有MANDATORY目的地加上一些非备用可选目的地来确定LGWR是否可以覆盖在线日志。以下规则适用:
- 省略目标的MANDATORY属性与指定OPTIONAL相同。
- 必须至少有一个本地目的地,您可以声明OPTIONAL或MANDATORY。
- 只能为目标LOG_ARCHIVE_DEST_1到LOG_ARCHIVE_DEST_10指定MANDATORY属性。
- 为LOG_ARCHIVE_MIN_SUCCEED_DEST = n指定值时,Oracle数据库将至少将一个本地目标视为MANDATORY,因为LOG_ARCHIVE_MIN_SUCCEED_DEST的最小值为1。
- LOG_ARCHIVE_MIN_SUCCEED_DEST值不能大于目标数量,也不能大于MANDATORY目标数量加上可选本地目标数量。
- 如果您DEFER一个MANDATORY目的地,并且数据库覆盖在线日志而不将存档日志传输到备用站点,则必须手动将日志传输到备用数据库。
如果要双面存档日志,则可以使用LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST参数确定哪些目标是必需的或可选的。以下规则适用:
- LOG_ARCHIVE_DEST声明的任何目标都是必需的
- 如果LOG_ARCHIVE_MIN_SUCCEED_DEST = 1,则LOG_ARCHIVE_DUPLEX_DEST声明的任何目标都是可选的,如果LOG_ARCHIVE_MIN_SUCCEED_DEST = 2,则是必需的。
指定成功目标的数量:方案
可以通过示例方案最轻松地查看LOG_ARCHIVE_DEST_n和LOG_ARCHIVE_MIN_SUCCEED_DEST参数之间的关系。
存档到可选本地目的地的方案
在此方案中,您将归档到三个本地目标,每个目标都声明为OPTIONAL。表13-1说明了在这种情况下LOG_ARCHIVE_MIN_SUCCEED_DEST = n的可能值。
Table 13-1 LOG_ARCHIVE_MIN_SUCCEED_DEST Values for Scenario 1
Value | Meaning |
1 | 仅当至少一个可选目标成功时,数据库才能重用日志文件。 |
2 | 仅当至少两个可选目标成功时,数据库才能重用日志文件。 |
3 | 仅当所有可选目标都成功时,数据库才能重用日志文件。 |
4 or greater | 错误:该值大于目标数。 |
该方案显示,即使你没有明确设置任何你的目的地的强制性使用的LOG_ARCHIVE_DEST_n参数,数据库必须成功归档到一个或一个以上这些位置时LOG_ARCHIVE_MIN_SUCCEED_DEST设置为1,2或3。
归档到强制目标和可选目的地的方案 考虑一个案例,其中:
- 指定两个MANDATORY目的地
- 指定两个可选目的地。
- 没有目标是备用数据库。
表13-2显示了LOG_ARCHIVE_MIN_SUCCEED_DEST = n的可能值。
Table 13-2 LOG_ARCHIVE_MIN_SUCCEED_DEST Values for Scenario 2
Value | Meaning |
1 | 数据库忽略该值并使用MANDATORY目标的数量(在此示例中为2)。 |
2 | 即使没有可选目标成功,数据库也可以重用日志文件。 |
3 | 仅当至少一个可选目标成功时,数据库才能重用日志。 |
4 | 仅当两个可选目标都成功时,数据库才能重用日志。 |
5 or greater | 错误:该值大于目标数。 |
此案例显示数据库必须存档到您指定为MANDATORY的目标,无论您是否将LOG_ARCHIVE_MIN_SUCCEED_DEST设置为存档到较少数量的目标。
重新归档到失败的目的地
使用LOG_ARCHIVE_DEST_n参数的REOPEN属性指定ARCn是否以及何时应该在发生错误后尝试重新归档到失败的目标。 REOPEN适用于所有错误,而不仅仅是OPEN错误。
REOPEN = n设置ARCn尝试重新打开失败目标之前的最小秒数。 n的默认值为300秒。值0与关闭REOPEN属性相同;发生故障后,ARCn不会尝试存档。如果未指定REOPEN关键字,则ARCn将永远不会在发生错误后重新打开目标。
无法使用REOPEN指定ARCn应重新连接和传输存档日志的尝试次数。 REOPEN尝试成功或失败。
为可选目标指定REOPEN时,如果出现错误,数据库可以覆盖在线日志。如果为MANDATORY目标指定REOPEN,则数据库在无法成功存档时会停止生产数据库。在这种情况下,请考虑以下选项:
- 手动归档到失败的目标
- 通过延迟目标,将目标指定为可选或更改服务来更改目标。
- 放弃目的地
使用REOPEN关键字时,请注意以下事项:
- ARCn仅在从日志文件开头启动存档操作时才重新打开目标,从不在当前操作期间。 ARCn始终从头开始重试日志副本。
- 如果指定了REOPEN,则指定的时间为默认值,ARCn会检查记录的错误加上REOPEN间隔的时间是否小于当前时间。如果是,ARCn将重试日志副本。
- REOPEN子句成功影响ACTIVE = TRUE目标状态。 VALID和ENABLED状态不会更改。