ORA-01110 ORA-01122 ORA-01110 ORA-01200解决办法

早上在启动备库执行实时同步命令时出现如下报错

ORA-01110:data file 286'/rchldata/dbryhc/data/tbs_zhcx_tl.270.979312411'
ORA-01122database file 286 failed verification check
ORA-01110:data file 286'/rchldata/dbryhc/data/tbs_zhcx_tl.270.979312411'
ORA-01200:actual file size of 2364 is smaller than correct size of 3840000 blocks

经mos上查询,该错误是由于服务器崩溃引起的。但是最近也没有发生这种情况。

随后在这边文章http://blog.itpub.net/23413985/viewspace-663461/中提到该问题是由于数据库控制文件记录的大小与实际目录下数据文件大小不一致导致了该错误。

经比对后发现确实如此

解决方法:

在主库备份单个数据文件,根据文件号

RMAN> backup datafile 286 format '/bak/backup/datafile_forstandby_%U' tag 'forstandby';

完成备份后将备份文件传输至备库

scp /bak/backup/* standby:/rcldata2/dbrych/backup/

注册备份文件

RMAN> catalog start with '/rchldata2/dbryhc/backup/'

将丢失的数据文件rename到新的路径用于恢复,并写入控制文件

run
{
set newname for datafile 286 to '/rchldata/dbryhc/data/tbs_zhcx_tl.270.979312411';
restore datafile 286;
switch datafile all;
}

如果db_file_name_convert和log_file_name_convert参数已配置好,则catalog与switch database to copy均不用执行;

 开启备库实时同步

alter database recover managed standby database using current logfile disconnect from session;

查看alert日志正常,同步正常。自此,故障完成处理

原文地址:https://www.cnblogs.com/Roobbin/p/14763141.html