ORACLE Archive Log Mode

ORACLE Archive Log Mode[@more@]
Oracle Archive Log Mode
Version 10.2
General
Note: Archive logging is essential for production databases where the loss of a transaction might be fatal. It is generally considered unnecessary in development and test environments.
Init.ora Parameters
Configure for multiple archiver processes log_archive_max_processes=;
log_archive_max_processes=10;
Startup The Database In Archivelog Mode
Steps Required To Take A Database Not In Archive Log Mode And Alter It To Archive Log Mode SHUTDOWN;

STARTUP MOUNT EXCLUSIVE;

ALTER DATABASE ARCHIVELOG;

ALTER DATABASE OPEN;
Startup The Database In NoArchivelog Mode
Steps Required To Take A Database In Archive Log Mode And Alter It To No Archive Log Mode SHUTDOWN;

STARTUP MOUNT EXCLUSIVE;

ALTER DATABASE NOARCHIVELOG;

ALTER DATABASE OPEN;
Restart After Archiving Logging Failure
Archive Logging RestartSHUTDOWN;

STARTUP;

ARCHIVE LOG START;

ARCHIVE LOG ALL;
Archive Log Related Commands
Start Archive Loggingalter system archive log start;
Stop Archive Loggingalter system archive log stop;
Force archiving of all log filesalter system archive log all;
Force archiving of the current log filealter system archive log current;
Shell Scripts
Move Archive Logsexport ARCH_DIR="/tmp/rim"
NEW_DIR ="/tmp/rim/new_dir"
export FILE_EXT="arc"
export MOVELIST="/tmp/move.list"
export CALF="/tmp/calc.tmp"
export TMPF="/tmp/workfile.tmp"
CMD="ls -ltr $ARCH_DIR/*.$FILE_EXT | awk {'print $9'}
| sort -r > $TMPF"
export FILE_COUNT="

echo "Number of files foundis $FILE_COUNT"
cat $TMPF
echo $FILE_COUNT - 1" > $CALF
echo "quit" >> $CALF
MOVE ="/usr/bin/bc/ $CALF"
echo "Number of files to move is $MOVE"
/usr/bin/tail -$MOVE $TMPF > $MOVELIST
echo "File to be moved"
cat $MOVELIST
while read FILE
do

cho "Moving file $FILE to $NEW_DIR"
done < $MOVELIST

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/330796/viewspace-871353/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/330796/viewspace-871353/

<think>首先,用户的问题是:“我想关闭Oracle数据库的归档日志目标 请问如何关闭 Oracle log_archive_dest 参数”。用户想关闭Oracle数据库的归档日志目标,具体是如何关闭log_archive_dest参数。 在系统级指令中,我有一些规则: - 所有行内数学表达式必须使用$...$格式。 - 独立公式必须使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,如[^1]。 用户问题涉及Oracle数据库管理,所以我需要提供准确、可靠的指导。参考提供的引用: - 引用[1]: 解释了log_archive_dest参数,最多可设置2个归档路径,与db_recover_file_dest和log_archive_dest_n冲突。 - 引用[2]: 显示了log_archive_dest参数的当前设置。 - 引用[3]: 展示了如何检查归档日志状态。 用户想关闭归档日志目标,这通常意味着禁用归档模式。关闭归档日志目标可能涉及修改相关参数。 关键点: - 在Oracle中,归档日志目标是通过参数如log_archive_dest、log_archive_dest_n等设置的。 - 要关闭归档日志目标,用户可能需要禁用归档模式或清除归档目标设置。 - 常见的步骤是: 1. 检查当前归档模式:使用`ARCHIVE LOG LIST`或查询`v$database`。 2. 如果归档模式启用,则禁用归档模式,但这可能需要重启数据库到mount状态。 3. 修改参数文件中的相关参数。 具体关闭log_archive_dest参数: - 根据引用[1],log_archive_dest参数与log_archive_dest_n冲突,不能同时设置。所以,要关闭它,用户可能需要设置log_archive_dest_n或使用其他方法。 - 关闭归档日志目标通常是通过设置归档目标为空或禁用归档模式。 安全步骤: 1. 备份数据库和参数文件。 2. 连接到数据库。 3. 检查当前归档设置。 4. 修改参数。 5. 重启数据库(如果需要)。 关闭归档模式: - 要完全禁用归档日志,用户需要将数据库置于非归档模式。 - 步骤: - 关闭数据库:`SHUTDOWN IMMEDIATE` - 启动到mount状态:`STARTUP MOUNT` - 更改归档模式:`ALTER DATABASE NOARCHIVELOG;` - 打开数据库:`ALTER DATABASE OPEN;` - 这会将数据库设置为非归档模式,归档日志目标将不再使用。 如果用户只想修改log_archive_dest参数: - 用户可能想清除log_archive_dest的设置。 - 在Oracle中,参数可以通过ALTER SYSTEM或修改init.ora文件来更改。 - 例如,设置log_archive_dest为空:`ALTER SYSTEM SET log_archive_dest='';` - 但根据引用[1],log_archive_dest与log_archive_dest_n冲突,所以如果使用log_archive_dest_n,用户可能需要先处理那些参数。 最佳实践: - 建议用户使用log_archive_dest_n参数,因为log_archive_dest是旧的。 - 要关闭归档目标,设置log_archive_dest_n为空或删除设置。 回答结构: - 使用中文。 - 结构清晰:逐步解释。 - 生成相关问题。 - 添加引用标识。 步骤: 1. 解释如何关闭归档日志目标。 2. 提供命令示例。 3. 提醒注意事项。 4. 生成相关问题。 引用: - 当引用提供的段落时,添加[^1], [^2], [^3]。 - 例如,提到log_archive_dest时,引用[^1]。 最终回答: - 开头:直接回答问题。 - 主体:步骤。 - 结尾:相关问题。</think>### 如何关闭 Oracle log_archive_dest 参数 要关闭 Oracle 数据库的归档日志目标(即禁用归档模式或清除归档目标设置),需要修改相关参数并调整数据库模式。以下是基于 Oracle 数据库管理的最佳实践逐步说明。在执行前,请确保已备份数据库和参数文件(如 `spfile` 或 `init.ora`),并计划在维护窗口操作,避免数据丢失风险。 #### 步骤 1: 检查当前归档模式 首先,确认数据库是否处于归档模式。连接到数据库(使用 SQL*Plus 或其他工具),执行以下命令: ```sql SQL> archive log list; ``` 如果输出显示 "Archive Mode" 和归档目标(如 `Archive destination +DATADG/arch`),表示归档模式已启用[^3]。例如: ``` Database log mode Archive Mode Automatic archival Enabled Archive destination +DATADG/arch ... ``` 如果目标是 "Archive Mode",则需禁用归档模式。 #### 步骤 2: 禁用归档模式 要关闭归档日志目标,必须将数据库切换到非归档模式(NOARCHIVELOG)。这需要重启数据库: 1. 关闭数据库: ```sql SQL> SHUTDOWN IMMEDIATE; ``` 2. 启动数据库到 MOUNT 状态: ```sql SQL> STARTUP MOUNT; ``` 3. 禁用归档模式: ```sql SQL> ALTER DATABASE NOARCHIVELOG; ``` 4. 打开数据库: ```sql SQL> ALTER DATABASE OPEN; ``` 此操作会禁用所有归档日志目标,包括 `log_archive_dest` 参数[^3]。 #### 步骤 3: 清除或修改 log_archive_dest 参数 禁用归档模式后,归档目标参数将不再生效。但为了彻底清除 `log_archive_dest` 的设置(避免冲突),需修改参数文件: - **使用 `ALTER SYSTEM` 命令(动态修改,如果参数允许)**: ```sql SQL> ALTER SYSTEM SET log_archive_dest = ''; ``` 如果参数是静态的(需重启生效),添加 `SCOPE=SPFILE`: ```sql SQL> ALTER SYSTEM SET log_archive_dest = '' SCOPE=SPFILE; ``` 然后重启数据库: ```sql SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP; ``` - **注意冲突**:`log_archive_dest` 与 `log_archive_dest_n` 和 `db_recover_file_dest` 参数冲突[^1]。如果使用了 `log_archive_dest_n`(如 `log_archive_dest_1`),需优先处理这些参数: - 检查现有设置: ```sql SQL> SHOW PARAMETER log_archive_dest; ``` 输出可能包括多个目标(如 `log_archive_dest_1`)[^2]。 - 清除冲突参数:例如,设置 `log_archive_dest_n` 为空: ```sql SQL> ALTER SYSTEM SET log_archive_dest_1 = '' SCOPE=SPFILE; ``` #### 步骤 4: 验证更改 确认归档模式已关闭且参数已清除: ```sql SQL> archive log list; -- 应显示 "No Archive Mode" SQL> SHOW PARAMETER log_archive_dest; -- 值应为空或未设置 ``` 输出应类似: ``` Database log mode No Archive Mode Automatic archival Disabled ... ``` #### 注意事项 - **性能影响**:关闭归档日志会禁用数据库恢复功能(如 Point-in-Time Recovery),仅适用于开发或测试环境。生产环境不推荐禁用归档。 - **参数冲突**:如果同时设置了 `log_archive_dest` 和 `log_archive_dest_n`,Oracle 会报错。优先使用 `log_archive_dest_n`(更灵活),并移除旧参数[^1]。 - **备份恢复**:禁用归档前,执行全量备份。如果需要重新启用归档,重复步骤 2 但使用 `ALTER DATABASE ARCHIVELOG;`。 - **权限要求**:需 `SYSDBA` 或 `SYSOPER` 权限执行上述命令。 通过以上步骤,您已成功关闭归档日志目标。如果遇到错误(如参数冲突),请检查告警日志(`alert.log`)以获取详细信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值