这个错误是归档满了,首先查看一下归档使用情况。
select * from v$recovery_file_dest;
select * from v$flash_recovery_area_usage;
加起来99.7%了
这时只能删除日志了
- rman target sys/pwd@orcl
- crosscheck archivelog all;--检查日志情况
- delete archivelog until time 'sysdate'; --删除所有日志
- delete expired archivelog all;--删除过期日志
然后远程机器死机了重启报错
查看追踪文件3469
/home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/里的orcl_ora_3649.trc
ok,这里我们就开始删除日志吧。
这里是用rman连接,尴尬的事又出现了。
ORA-12543: TNS:destination host unreachable
重启虚拟机地址变了,改一下ok了。
- sqlplus / as sysdba
- shutdown abort ----关闭进程
- startup mount ---- 装载数据库
- select * from v$recovery_file_dest; ---查询归档日志
- db_recovery_file_dest_size=10737418240; --设置归档日志空间为10G
- Exit ---到这里空间大小已经设置完成
- 或者
- mantarget / -----进入rman工具窗口
- RMAN>crosscheck archivelog all; --运行这个命令可以把无效的expired的archivelog标出来。
- RMAN>delete noprompt archivelog until time "sysdate -3"; -- -即删除3天前的归档日志
- delete archivelog until time 'sysdate'; --删除所有日志
- delete expired archivelog all;--删除过期日志
删除完毕后启动数据库成功。
之后按转载博主的方法设置自动清理归档日志:
https://www.jb51.net/article/48129.htm
省事点直接备份完清理之前所有日志
delete noprompt archivelog until time 'sysdate -1';
$echo $ORACLE_BASE
select * from V$database;--oracle的sid
$echo $ORACLE_HOME
将配置参数放到脚本中,清除之前备份就放到0级备份脚本中。
end;