客服微信
作者:刘晓峰
1. 启动时出现ORA-03113
2. 可以用之前介绍过过的ADR诊断检查
3. 输入show alert
因为是数据库启动而不是监听问题,所以输入1,查看报错信息
或者去v$diag_info查询name=Diag Alert对应的路径去获取log.xml文件
打开后查找WARNNG关键词
db_recovery_file_dest_size 设置快速恢复区的大小,5G已经满了。它的功能是生成归档重做日志,还原点,闪回等。
解决办法:
1. alter system set DB_RECOVERY_FILE_DEST_SIZE=10G;增加快速恢复区大小
2. 备份快速恢复区,然后RMAN DELETE 删除文件
不过我这个是测试环境,我只想把最快数据库打开
最简单方法是禁用快速恢复区,或者调整保留策略,让其自动删除,或者用RMAN主动删除,或者操作系统层面删除然后RMAN crosscheck
1.Oracle用户下执行
RMAN TARGET 账户/密码
RMAN> startup mount
2然后手动删除过期文件.删除前可以使用report obsolete查看过期文件
RMAN> delete obsolete;
3. 删除归档日志
RMAN> delete archivelog all;
4. 现在可以尝试打开数据库了
SQL> alter database open;
后面尝试操作:
查看我的保留策略,过期数据会保留但是会被标记为过时
RMAN> show retention policy;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
Redundancy:要保留的副本数
Revovery window:要保留的备份天数
我当前配置结果,副本数是1
修改备份天数
configure retention policy to recovery window of 1 days
如果要禁用保留策略:使得RMAN不会将任何备份视为过时
configure retenton policy to none;
上面只能治标,可能过一段时间又会出现,如果是自己的测试环境一劳永逸的方法
关闭闪回
alter database flashback off;
禁用快速恢复区:
alter system set DB_RECOVERY_FILE_DEST='';
不过我配置alter之后,没怎么关注过告警日志
1)查询历史警报
select * from dba_alert_history;
看到2个月前就已经是80%
2)查询阈值
select * from dba_thresholds;
3)查询当前警报
select * from dba_outstanding_alerts;
Tablespace [APPS_DATA_TABLESPACE] is [90 percent] full
赶紧加表空间大小,不然又打不开数据库了
先获取此表空间对应的数据文件名称
select d.file_name, d.MAXBYTES/1024/1024/1024 from dba_data_files d
where d.TABLESPACE_NAME='APPS_DATA_TABLESPACE';
4)执行修改
alter database datafile
'/usr/local/oracle19c/oradata/ORCL/APPS_DATA_TABLESPACE.dbf'
autoextend on next 8m maxsize 20g;