概述
今天有朋友问了一个问题:switchover和failover之间的区别,有点懵逼,居然把这忘记了,这里总结下两者之间的一些区别。
![762befdc5c2151b2b1c9d7f7dfdd58dc.png](https://i-blog.csdnimg.cn/blog_migrate/0429d2a7322259d7f3a02d719c94df7d.jpeg)
DG架构
DG切换时注意点:
1、确认主库和从库间网络连接通畅;
2、确认没有活动的会话连接在数据库中;
3、primary数据库处于打开状态,standby数据库处于mount状态;
4、确保standby数据库处于归档模式;
5、如果设置了redo应用的延迟,去掉这个设置;
6、确保配置了主库和从库的初始化参数,切换完成后,DG机制可以顺利运行。
DG切换两条核心命令:
1、主库切换为备库:
alter database commit to switchover to physical standby;
![409d43adcfee973668a93f7dabe6e2a7.png](https://i-blog.csdnimg.cn/blog_migrate/8b947c71ca3cdc13adb6ca6a1e5a2ae9.jpeg)
2、备库切换为主库:
alter database commit to switchover to primary;
![7a0fcf593444988fc5317b74363d7e52.png](https://i-blog.csdnimg.cn/blog_migrate/b781f9ff371a0c9600e2f89e59303565.jpeg)
这里大家可以看到我是用switchover来做DG切换的,那switchover和failover之间有什么区别点呢?
--》区别:
1、Switchover
Swithchover通常都是人为的有计划的进行角色互换,比如升级等。它通常都是无损的,即不会有数据丢失。其执行主要分为两个阶段:
1)Primary转为Standby
2)Standby(之一)转为Primary
2、Failover
Failover是指由于Primary故障无法短时间恢复,Standby不得不充当Primay的角色,如果处于最高性能模式,这种切换很有可能导致数据丢失。
后面找个时间再演示下DG搭建和切换的实验,感兴趣的朋友可以关注下!!
![65bb5f130fb891423413221fe35f6369.gif](https://i-blog.csdnimg.cn/blog_migrate/a5911f3a28f6fc261f15a62f7c3e6c7b.gif)