0


Oracle故障案例 | Oracle归档目录修改的坑

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

前言

Oracle归档目录一般建议将存档终点修改为操作系统的适当目录,本文分享如何正确修改归档目录

📣 1.查看归档目录

Oracle安装好后,把存档终点设置为USE_DB_RECOVERY_FILE_DEST,
所以归档日志默认是保存在oracle系统的闪回恢复区(Flash recovery area)的。
默认的db_recovery_file_dest是2G,
所以一般建议将存档终点修改为操作系统的适当目录

SYS@PROD> archive log list

在这里插入图片描述
以上为归档文件的默认地址

SYS@PROD> alter system setlog_archive_dest='/u01/app/oracle/oradata/PROD/archive';
此时修改报如下的错误

在这里插入图片描述

📣 2.处理方法

SYS@PROD> alter system setlog_archive_dest_1='location=/u01/app/oracle/oradata/PROD/archive';
SYS@PROD> archive log list
注意:如果是RAC集群,以上命令发出后,会修改所有节点,如果要修改单个节点需要按照以下命令执行,指定实例名
SYS@PROD> alter system setlog_archive_dest_1='location=/arch_log'scope=spfile sid='*';  重启后生效
SYS@PROD> alter system setlog_archive_dest_1='location=/arch_log'sid='*';  --立即生效
归档目录如果设置不对,一般会报以下错误:
ORA-19502: write error on file"", blockno  (blocksize=)

注意:
本地修改一定要加:location
指定了db_recovery_file_dest快速恢复区作为归档路径,则不能使用LOG_ARCHIVE_DEST,不兼容

📣 3.确认信息

SYS@PROD> alter system switch logfile;
SYS@PROD>select name from v$archived_log;

在这里插入图片描述

SYS@PROD> show parameter log_archive_dest

在这里插入图片描述

结论:

1.指定了db_recovery_file_dest快速恢复区作为归档路径,则不能使用LOG_ARCHIVE_DEST,不兼容;

而db_recovery_file_dest和log_archive_dest_n兼容,
且未指定log_archive_dest_n参数时归档默认指向db_recovery_file_dest快速恢复区,
而当log_archive_dest_n参数设定值时则归档目录指定为log_archive_dest_n参数所指向的目录。

2.log_archive_dest参数:
使用log_archive_dest参数最多可设置2个归档路径,
通过log_archive_dest设置一个主归档路径,通过LOG_ARCHIVE_DUPLEX_DEST参数设置一个从归档路径。
所有的路径必须是本地的

3.LOG_ARCHIVE_DEST_n,LOG_ARCHIVE_DEST_n参数可以设置最多10个不同的归档路径,
通过设置关键词location或service,
该参数指向的路径可以是本地或远程的。

4.可见log_archive_dest和LOG_ARCHIVE_DEST_n这两个参数都可以设置归档路径,
不同的是后者可以设置远程归档到standby端,而前者只能归档到本地,且最多同时归档到2个路径下

📣 4.归档日志拓展

在这里插入图片描述

✨4.1 手动切换日志

仅切换当前实例,适用归档和非归档:
SYS@PROD> alter system switch logfile;
SYS@PROD>alter system switch logfile;
[oracle@enmoedu1 ~]$ cd /u01/app/oracle/arch/
[oracle@enmoedu1 arch]$ ll

在这里插入图片描述

在 RAC 下切换所有实例,仅适用于归档模式
SYS@PROD>alter system archive log current;
[oracle@enmoedu1arch]$ ls -lh

在这里插入图片描述

✨4.2 归档相关视图

SYS@PROD>select name from vKaTeX parse error: Expected 'EOF', got '#' at position 36: …OD>select group#̲,sequence#,arch…log;

✨4.3 删归档

不建议操作系统 rm 命令手工删归档,可按需在 rman 备份脚本中增加删除归档的语句。
如果存在手工删除情况,可能引起 rman 备份脚本执行报错
可以在 rman 脚本中执行 crosscheck archivelog all; 校验,通知控制文件。

rman 删
[oracle@enmoedu1 ~]$ rman target /
1)RMAN> list archivelog all;
2)RMAN> delete archivelog until sequence 7;
3)RMAN> delete archivelog all completed before ‘sysdate-7’;
4)RMAN> delete archivelog until time ‘sysdate-7’ ;

注:3)删除已备份过的归档,没有备份备份的归档,不会被删除。而4)语句, 则会删除掉归档,无论备份与否

在这里插入图片描述
在这里插入图片描述

标签: oracle 数据库 dba

本文转载自: https://blog.csdn.net/weixin_41645135/article/details/127157393
版权归原作者 IT邦德 所有, 如有侵权,请联系我们删除。

“Oracle故障案例 | Oracle归档目录修改的坑”的评论:

还没有评论