如何解决Oracle数据库归档日志占满磁盘空间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决Oracle数据库归档日志占满磁盘空间相关的知识,希望对你有一定的参考价值。

如果不想加硬盘的话,那么只能删除日志,可以根据时间删除老日志(如果有带库的话,也可以将老日志转移到带库上,然后再删除存储上的老日志)。删除归档日志有一套程序的。可不是直接删除了就行,那套程序网上很多,我就不多写了。
归档日志占满硬盘,还不敢或者不能删除(万一宕机了,没有备分怎么恢复),多数是备分策略有一点问题,可以重新讨论备分策略(主要是备分方式和备分级别),让备分占用的空间相对稳定下来的。
参考技术A 1,加硬盘

2,删日志
仅此2法

Oracle Rac数据文件和归档日志文件在ASM磁盘组上出现双份现象分析解决

在给客户做数据迁移之前进行数据库巡检,发现一个原来并没有留意的问题,在数据库里面查询发现数据文件和归档日志文件都为单份,但是通过grid用户进入asmcmd模式下,发现数据文件和归档日志文件都为两份且路径不同,感觉比较奇怪,在这里将现象分析及解决方式进行记录。

为了复现遇见的现象,首先在测试环境下进行归档日志的设置,设置成和生产环境一样的路径参数,发现场景复现,步骤如下:

1、更改数据库归档日志路径

su - oracle

sqlplus / as sysdba

SQL> alter system set log_archive_dest_1=LOCATION=+DATA/arch/ sid=* scope=both;

2、进行归档日志路径查看

SQL> archive log list;

Oracle

3、查看归档日志路径下的文件

su - grid

asmcmd

asmcmd > cd data/arch

asmcmd > ls -l

Oracle

asmcmd > cd data/racdb/archivelog/2022_03_10

asmcmd > ls

Oracle

备注:发现两份竟然是mirror关系,删除arch路径下的归档日志,archivelog路径的的归档日志也会跟着一起自动删除。当切换归档日志时arch路径下会生成一个dbf结尾的归档日志,同时archivelog路径下也会在当天日期文件夹下自动生成一个asm自动管理的归档日志文件。

根据现象推测应该是asm管理文件机制导致的,查询资料得知是由于指定了归档日志的具体路径导致的,由于指定了具体路径,会在指定的路径下生成一份归档日志文件,但是asm机制也会按照自己的格式生成一份。解决办法就是在指定归档日志路径的时候直接指定asm磁盘组的名称即可,后边不用指定具体文件夹名称。

4、修改归档日志目标路径

Oracle

5、切换归档后发现arch路径下不会新生成日志文件,最新生成的归档日志文件在DATA/RACDB/ARCHIVELOG/ ***(日期) 下只保存了一份。

6、根据归档日志的设置问题查找软件工程师在为表空间添加数据文件的脚本时候发现工程师为数据文件指定了具体的文件路径,这也是数据文件出现双份的原因。

数据文件解决方式是在数据迁移的时候直接使用rman setnewname 指定到+DATA目录,这样迁移完成后数据文件都在+DATA/RACDB/DATAFILE/路径下了。

7、总结

在使用asm磁盘组存储数据库的时候,无论在添加数据文件还是指定归档日志路径时候直接指定asm磁盘组名称即可,不需要指定具体路径,asm会自动管理数据文件路径,数据文件名以及归档日志具体路径和归档日志的名称。








以上是关于如何解决Oracle数据库归档日志占满磁盘空间的主要内容,如果未能解决你的问题,请参考以下文章

如何检查Oracle的归档空间是不是满了

oracle归档日志老满怎么办

解决Ubuntu因为CUPS打印服务的日志占满磁盘空间的问题

问题解决:Ubuntu 磁盘空间占满如何清理

ORACLE 11G DB RAC ORA-00257archiver error解决办法

如何检查oracle的归档空间是不是满了