地牯牛的博客

欢迎光临
我们一直在努力

Oracle数据库关闭归档功能及删除归档日志方法

注意:数据库归档功能的开启和关闭需重启实例。

一、查询数据库归档是否开启

--返回值是ARCHIVELOG则开启了归档模式;
NOARCHIVELOG是未开启。
CONN sys/sys@orcl AS SYSDBA;
SELECT log_mode FROM v$database;

二、归档日志日空间使用率查询

--查看归档日志大小及使用情况。
若SPACE_USED/SPACE_LIMIT > 30%,需进行日志清理。
select * from v$recovery_file_dest;--查看归档日志使用情况(按百分比)。
如果 ARCHIVED LOG超过90%,Oracle随时有宕机的危险。
select * from v$flash_recovery_area_usage;

三、归档日志管理和应急处理

--登录RMAN (oracle用户执行)
$ rman target sys/sys@SGTMS
--归档日志交叉检查
RMAN> crosscheck archivelog all;
--只保留最近1天归档日志,其它日志都删除
RMAN>delete archivelog until time 'sysdate-1';
--保留最近7天的归档日志
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
--归档日志,全部删除
RMAN>delete expired archivelog all;
--观察磁盘空间使用率是否正常#df - hl--增大归档日志空间
SQL>alter system set db_recovery_file_dest_size=20G;

四、关闭数据库归档功能

--1)以sysdba身份登录数据库
conn sys/sys@orcl as sysdba;
--2)查看是否开启归档功能。
如果返回值为NOARCHIVELOG则未开启,如果是ARCHIVELOG则开启了归档模式。
select log_mode from v$database;
--3)关闭数据库shutdown immediate;
--4)启动数据库到MOUNT状态startup mount;
--5)关闭归档模式alter database noarchivelog;
--6)打开数据库alter database open;
--7)再次确定归档是否关闭select log_mode from v$database;
--8)查看归档归档路径是否设置。如果没有设置,则归档路径默认为闪回区。
show parameter log_archive_dest;
--9)设置归档路径
alter system set log_archive_dest_1='location=/u01/app/oracle/arch/orcl';
--10)查看归档路径是否改变
archive log list;
--11)切换日志,进入归档目录,查看是否有归档生成
alter system switch logfile;

五、停止归档

alter system set log_archive_start=true scope=spfile;


六、删除归档日志

1. 连接 RMAN 管理

  1. rman target /

2. 查看归档日志列表

  1. RMAN> crosscheck archivelog all;

3. 删除所有归档日志

  1. RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE';

    4.删除7天之前的日志

  2. RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

来自:https://blog.csdn.net/JohnnySun2015/article/details/74196786

未经允许不得转载:地牯牛的博客 » Oracle数据库关闭归档功能及删除归档日志方法
分享到: 更多 (135)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

地牯牛的博客 更专业 更方便

联系我们联系我们

登录

注册