注意:数据库归档功能的开启和关闭需重启实例。sql
一、查询数据库归档是否开启数据库
--返回值是ARCHIVELOG则开启了归档模式;NOARCHIVELOG是未开启。
CONN sys/sys@orcl AS SYSDBA;
SELECT log_mode FROM v$database;
二、归档日志日空间使用率查询oracle
--查看归档日志大小及使用状况。若SPACE_USED/SPACE_LIMIT > 30%,需进行日志清理。
select * from v$recovery_file_dest;
--查看归档日志使用状况(按百分比)。若是 ARCHIVED LOG超过90%,Oracle随时有宕机的危险。
select * from v$flash_recovery_area_usage;
三、归档日志管理和应急处理app
--登陆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;
4、关闭数据库归档功能spa
--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;