【操作】ORACLE DATAGUARD重建备库

【操作】ORACLE DATAGUARD 重建备库

目的:

Oracle DataGuard环境中,一些情况下我们需要重建Standby DB,如主库执行flashback database,或某些archive log无法找回时。

环境:

Oracle Version:11.2

步骤:

1. 【备库】信息收集

SQL-Standby>
	set pagesize 0
	select name from v$datafile
	union
	select name from v$tempfile
	union
	select member from v$logfile
	union
	select name from v$controlfile;

2. 【备库】文件备份

SHELL-Standby>
	cd ${ORACLE_HOME}/dbs
	cp init${ORACLE_SID}.ora init${ORACLE_SID}.ora.`date +%Y%m%d`
	cp spfile${ORACLE_SID}.ora spfile${ORACLE_SID}.ora.`date +%Y%m%d`
	cp orapw${ORACLE_SID} orapw${ORACLE_SID}.`date +%Y%m%d`

3. 【备库】变更状态 - nomount

SQL-Standby>
	shutdown immediate
	startup nomount

4. 【主库】执行复制 - rman duplicate

SHELL-Primary>
	AUXDB="STANDBY-DB"
	SYSPW="xxxx"
	# 需要修改变量值
	rman target / auxiliary sys/${SYSPW}@${AUXDB}
	
RMAN-Primary>
	duplicate target database for standby from active database nofilenamecheck;

5. 【备库】 - 确认同步状态

SQL-Standby>
	alter database recover managed standby database using current logfile disconnect;
	select client_process,process, sequence#, status from v$managed_standby;

附注

  1. DataGuard 需要使用spfile,因为在dupliate过程中,实例需要修改db_name等参数;
  2. Standby DB需要启动到nomount状态,因为需要重建control file;
  3. Duplicate操作只负责复制数据库,Finished Duplicate Db之后,需要手动启动Standby DB的日志应用;

你可能感兴趣的:(数据库)