oracle基于SCN增量恢复

来源:这里教程网 时间:2026-03-03 17:56:17 作者:

基于 SCN 增量恢复

 

备库停掉 MRP 进程

SQL> alter database recover managed standby database cancel;

 

1. 查询最小 SCN

#### 生产库 ####

SQL> select min(f.fhscn) from x$kcvfh f,v$datafile d where f.hxfil=d.file# and d.enabled!='READ ONLY';

 

MIN(F.FHSCN)

----------------

14847289822558

 

 

#### 备份库 ####

SQL> select min(f.fhscn) from x$kcvfh f,v$datafile d where f.hxfil=d.file# and d.enabled!='READ ONLY';

 

MIN(F.FHSCN)

----------------

14846580672421

 

===> 14846580672421 <===

 

2. 在主库上执行基于 SCN rman 备份

run{

allocate channel c1 type disk;

allocate channel c2 type disk;

backup incremental from scn 14846580672421 database format '/oradata/st_%U' tag '14846580672421';

###### 备份集压缩

#######backup as compressed backupset incremental from scn 14846580672421 database format '/rman/bak_%U%t';

release channel c1;

release channel c2;

}

控制文件备份

SQL>alter database create standby controlfile as '/tmp/rman/standby.ctl';

或使用 backup current controlfile 备份

RMAN> backup current controlfile for standby format '/backup/control%s.bak';

 

 

3. 把备份片拷到备库

$ scp st* 10.87.250.91:/Tbackup/backup/

 

4. 控制文件恢复

若之前用 rman 备份

备库:

sql > shutdown immediate

sql > startup nomount 

rman > restore standby controlfile from '/Tbackup/backup/control65.bak';

rman > alter database mount;

 

 

5. 在备库主机上,注册备份片

RMAN> catalog backuppiece '/Tbackup/hdyy/st_crrl2dc5_1_1';

或者

RMAN> catalog start with '/Tbackup/backup'; 

 

RMAN> recover database noredo;

 

重建备库controlfile

 

 

查看数据文件头,验证恢复情况

select file#, to_char(checkpoint_change#) from v$datafile_header;

 

 

6. 备库重新启动应用日志

SQL>alter database recover managed standby database disconnect from session;

或者 SQL > alter database recover managed standby database using current logfile  disconnect from session;

 

主库操作往备库传输归档日志

SQL>alter system set log_archive_dest_state_2 ='enable';

主备库查看归档日志情况

SQL>archive log list;

主库切下归档看是否用到备库

Alter system switch lofile;

相关推荐