概述
最近生产环境在启动RAC数据库时其中一个实例碰到了一个报错:ORA-19808: recovery destination parameter mismatch,这是怎么导致的呢?下面一起来看看如何解决吧~
环境配置:
一、故障描述
在启动一套RAC数据库的第一个节点的时候报了如下错误:
二、问题排查思路
1、查看报错原因
先查看一下ORA-19808错误的信息
oerr ora 1980819808, 00000, "recovery destination parameter mismatch"// *Cause: The value of parameters DB_RECOVERY_FILE_DEST and// DB_RECOVERY_FILE_DEST_SIZE must be same in all instances.// instance. All databases must have same recovery destination// parameters.// *Action: Check DB_RECOVERY_FILE_DEST and DB_RECOVERY_FILE_DEST_SIZE// values in all instances.
由上面的解释可以知道,该错误是由于RAC的两个实例使用的参数文件中db_recovery_file_dest或者db_recovery_file_dest_size的值不一致造成的。(RAC所有节点使用同一个spfile可以避免该问题的发生)
2、检查两个实例的参数文件
可以看到RAC的两个实例使用的是不同的spfile
show parameter spfile;
3、检查两个实例的db_recovery_file_dest_size参数值
两个实例的db_recovery_file_dest_size不同
select name ,value,inst_id from gv$system_parameter where name='db_recovery_file_dest_size';
4、检查两个实例的db_recovery_file_dest参数值
两个实例的db_recovery_file_dest一致,到这里我们就可以知道两个实例使用的参数文件中db_recovery_file_dest_size值的不一致导致RAC第一个实例启动时报ORA-19808错误。
select name ,value,inst_id from gv$system_parameter where name='db_recovery_file_dest';
三、解决方式
修改两个实例上的db_recovery_file_dest_size值相同,再次启动实例成功。注意,如果是RAC,在修改参数时一定要加上sid=‘*’,至于为什么要这样加,请百度..
alter system set db_recovery_file_dest_size=200g scope=both sid='*';
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~