ITPub博客

首页 > 数据库 > Oracle > Oracle数据库(DataGuard)迁移方案(下)

Oracle数据库(DataGuard)迁移方案(下)

原创 Oracle 作者:龙山游龙 时间:2023-04-19 18:31:30 0 删除 编辑

第一部分 主备数据库切换 

1.1  检查D G 同步情况

检查DG同步进程状态:

SQL> select  process, status,sequence#,block#,blocks, delay_mins from v$managed_standby;

检查DG日志同步延时情况:

SQL> select thread#,max(sequence#) from gv$archived_log group by thread#;

SQL> select thread#,max(sequence#) from gv$archived_log where applied='YES' group by thread#;

 

1.2  关闭主备库 2 节点

SQL> shutdown immediate;

 

1.3  源端生产库主切从

SQL> select name,database_role,switchover_status from v$database;

SQL> alter database commit to switchover to physical standby with session shutdown;

 

1.4  目标D G 库从切主

SQL> select name,database_role,switchover_status from v$database;

SQL> alter database commit to switchover to primary;

SQL> alter database open;

如果是switchover_status 列时"NOT ALLOWED"表示归档还没有应用完成,可以等待一段时间;如果日志全部应用了再查看角色转换状态;如果角色转换状态是TO PRIMARY,那么表示可以进行角色转换。执行从转主的命令,命令执行成功后,数据库的状态会变为mount。

 

1.5  目标端启动2节点

Shell> su – oracle

Shell> sqlplus / as sysdba

SQL> startup

 

1.6  新主新备重新同步

在节点1上开启MRP

SQL> startup

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

在节点2直接启动

SQL> startup

 

1.7  检查D G 同步情况

检查DG同步进程状态:

SQL> select  process, status,sequence#,block#,blocks, delay_mins from v$managed_standby;

检查DG日志同步延时情况:

SQL> select thread#,max(sequence#) from gv$archived_log group by thread#;

SQL> select thread#,max(sequence#) from gv$archived_log where applied='YES' group by thread#;


第二部分 RAC集群IP修改

第2部分 

2.1  修改R AC 两节点/ etc/ hosts

1节点:

Vi /etc/hosts

192.168.17.101 racdb1

192.168.17.13 racdb1-vip

10.253.253.101 racdb1-priv

192.168.17.102 racdb2

192.168.17.14 racdb2-vip

10.253.253.102 racdb2-priv

192.168.17.15 orcl-scan

2节点:

Vi /etc/hosts

192.168.17.101 racdb1

192.168.17.13 racdb1-vip

10.253.253.101 racdb1-priv

192.168.17.102 racdb2

192.168.17.14 racdb2-vip

10.253.253.102 racdb2-priv

192.168.17.15 orcl-scan

2.2  先停SCAN监听,再停SCAN VIP

[grid@racdb2 ~]$/u01/app/12.2/grid/bin/srvctl stop scan_listener

[grid@racdb2 ~]$/u01/app/12.2/grid/bin/srvctl stop scan

[grid@racdb2 ~]$/u01/app/12.2/grid/bin/srvctl status scan

 

2.3  先停本地监听,再停本地VIP

[grid@racdb2 ~]$ srvctl stop listener

[grid@racdb2 ~]$ srvctl stop vip -n racdb1

[grid@racdb2 ~]$ srvctl stop vip -n racdb2

 

2.4  修改R AC 两节点 PUBLIC   IP

[root@racdb1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=192.168.17.101

GATEWAY=192.168.17.254

[root@racdb1 ~]# ifdown eth0

[root@racdb1 ~]# ifup eth0

[root@racdb1 ~]# ip a

 

[root@racdb2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=192.168.17.102

GATEWAY=192.168.17.254

[root@racdb2 ~]# ifdown eth0

[root@racdb2 ~]# ifup eth0

[root@racdb2 ~]# ip a

 

2.5  修改R AC 集群 PUBLIC 注册信息

[root@racdb1 ~]# /u01/app/12.2/grid/bin/oifcfg delif -global eth0

[root@racdb1 ~]# /u01/app/12.2/grid/bin/oifcfg setif -global eth0/192.168.17.0:public

 

2.6  修改R AC 两节点V IP

[root@racdb1 ~]# /u01/app/12.2/grid/bin/srvctl modify nodeapps -n racdb1 -A 192.168.17.13/255.255.255.0/eth0

[root@racdb1 ~]# /u01/app/12.2/grid/bin/srvctl modify nodeapps -n racdb2 -A 192.168.17.14/255.255.255.0/eth0

 

[root@racdb1 ~]# /u01/app/12.2/grid/bin/srvctl config vip -n racdb1

VIP exists: /racdb1-vip/192.168.17.13/192.168.0.0/255.255.255.0/eth0, hosting node racdb1

[root@racdb1 ~]# /u01/app/12.2/grid/bin/srvctl config vip -n racdb2

VIP exists: /racdb2-vip/192.168.17.14/192.168.0.0/255.255.255.0/eth0, hosting node racdb2

 

2.7  修改R AC 集群 SCAN VIP

[root@racdb1 ~]# /u01/app/12.2/grid/bin/srvctl modify scan -n 192.168.17.15

 

2.8  先启本地VIP,再启本地监听

[root@racdb1 ~]# /u01/app/12.2/grid/bin/srvctl start vip -n racdb1

[root@racdb1 ~]# /u01/app/12.2/grid/bin/srvctl start vip -n racdb2

[root@racdb1 ~]# /u01/app/12.2/grid/bin/srvctl start listener

 

2.9  先启SCAN VIP,再启SCAN监听

[root@racdb1 ~]#/u01/app/12.2/grid/bin/srvctl start scan

[root@racdb1 ~]#/u01/app/12.2/grid/bin/srvctl start scan_listener

 

第三部分 迁移失败回退方案

第3部分 

3.1  关闭目标端数据库或主机

SQL> shutdown immediate

或者

Shell> shutdown -h now

 

3.2  启动老生产数据库和监听

Shell> sqlplus / as sysdba

SQL> alter database activate standby database;

注:由于老生产库环境处于备库角色,因此在极端情况下,可以直接强制打开,恢复业务。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30310891/viewspace-2946969/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
传统商业、开源和国产据库领域十从业经验,TB级高并发数据库的管理经验。对于数据库内部原理、体系结构,数据页/块结构原理有着深刻认识;对于数据库新特性、分布式高可用架构和性能调优有着丰富的的实战经验。擅长故障诊断以及数据库异常打开及数据灾难挽救。

注册时间:2015-06-28

  • 博文量
    178
  • 访问量
    334654