MySQL数据库工程师入门实战课程视频教程
4960 人在学
我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中仍然记录着这些archivelog文件的相关信息,在Oracle的OEM管理器中有可视化的日志展现出,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了,这时候我们应该怎么做才能正确删除呢?
Oracle数据库可以启用归档模式和非归档模式。而Oracle在开启了归档模式后,会在指定的archive目录下产生很多的archivelog文件,而且默认是不会定期清除的,时间长久了,该文件夹会占用很大的空间。为了节省空间,我们需要定期删除archivelog文件,下面小编给大家讲解正确方法~~
一、思路
删除数据库的归档日志文件只能通过“RMAN”命令方式,不能直接删除,因为Oracle数据库把归档日志文件的路径记录在控制文件中,单单只删除系统层面的文件,系统的容量会减少,但是Oracle数据库层面不会减少,这样还会沾满闪回恢复区(归档日志默认放在闪回恢复区,闪回恢复区的大小是指定的,我的系统20G)。所以要在数据库层面进行Archivelog的删除。
二、正确方法:
1.用RMAN连接目标DB:在命令行界面输入以下命令
2.在RMAN命令窗口中,输入如下命令:
或者删除指定时间之前的archivelog:
3.其它相关命令:查看归档日志列表:
查看失效的归档日志列表:
4.定期清除archivelog:可以将如下代码写成.bat文件,在控制面版的任务计划下添加新的定时任务:
小编结语:
更多内容尽在课课家教育!