AI智能
改变未来

oracle data guard重建

oracle data guard重建

情况:1、dg备库存在很大的归档gap,且主库已无归档日志;
2、主库的磁盘空间剩余量不多。

方式:删除备库,并使用rman的duplicate在线复制。

注:所有的操作都在备库执行。

1、备库取消日志应用
SYS@slave>alter database recover managed standby database cancel;

Database altered.

##查看数据文件路径
SYS@slave> select name from v$datafile;

##查看redo日志文件路径
SYS@slave> select member from v$logfile;

##查看控制文件路径
SYS@slave> select name from v$controlfile;

##查看归档日志文件路径
SYS@slave> archive log list;

2、关闭备库
SYS@slave>shutdown immediate

3、将备库的数据文件、redo日志文件、控制文件move到新建的backup文件夹,同时复制pfile文件,spfile文件到backup文件夹(相当于给备库做冷备);
删除归档文件

(注:如果备库磁盘空间充足,尽量不要直接删除备库的文件。)

4、将备库启动到nomount状态
SYS@slave> startup nomount

5、在备库上使用rman的duplicate进行复制
##连接rman
rman target sys/密码@master auxiliary sys/密码@slave

(注:master和slave为tnsnames.ora文件中配置的服务名。)

##使用duplicate复制
RMAN> duplicate target database for standby from active database nofilenamecheck;

附:使用duplicate时报错:ORA-19554,原因是rman 中设置备份通道设备类型为’SBT_TAPE’,修改为’DISK’后,再重新duplicate即可。

RMAN> CONFIGURE CHANNEL DEVICE TYPE ‘DISK’;

6、开启备库,并启用日志实时应用
##打开备库
SYS@slave>alter database open;

##备库启用日志实时应用
SYS@slave>alter database recover managed standby database using current logfile disconnect from session;

7、检查备库
#查看备库运行模式
select open_mode,database_role from v$database;

#检查进程状态
SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;

#查看当前延迟情况
SELECT name, value, datum_time, time_computed FROM V$DATAGUARD_STATS WHERE name like ‘apply lag’;

#查询表记录,确认数据是否实时同步
select max(t.create_time) from txs_pre_order t

–data guard删除,并重建完成–

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » oracle data guard重建