root
mkdir /home/bak
chown ora112:oinstall -R /home/bak
1.开启归档
set linesize 300
show parameter db_recovery_file_dest
alter system set db_recovery_file_dest='/home/bak' scope=both;
alter system set db_recovery_file_dest_size=10000000g scope=both;
show parameter db_recovery_file_dest
image.png
archive log list;
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
image.png
验证:
archive log list
image.png
ll /home/bak
image.png
alter system archive log current;
image.png
ll /home/bak
image.png
ll /home/bak/ORCL/archivelog/2016_12_28
image.png
失败情况下 先查看文件组 再尝试切换日志,
3、解决办法:
清除非归档的日志。
select group#,sequence#,archived,status from v$log;
该结果会显示哪些日志没有归档,结果显示第3组日志还没有归档。这有可能就是脏日志。我们可以清除掉这组日志。
4、清除
alter database clear unarchived logfile group 3;
5、执行完以上操作后尝试切换日志组
alter system switch logfile;
--------删除归档日志
rman target / -----进入rman工具窗口
crosscheck archivelog all; --运行这个命令可以把无效的expired的archivelog标出来。
delete noprompt archivelog until time "sysdate -3"; -- -即删除3天前的归档日志