Oracle Data Guard 之 浅析Switchover与Failover
什么是Oracle Data Guard
Oracle Data Guard是Oracle数据库提供的一种灾难恢复解决方案。它可以将主数据库的数据自动同步到备库,实现数据的实时复制。并且在主库故障或者计划停机的情况下,可以将备库切换为主库,实现数据库的无缝切换。
Switchover和Failover有什么区别
Switchover是一种计划内的主备切换,它是在主库正常运行的情况下通过Data Guard进行切换。在Switchover过程中,不会丢失任何数据,并且可以保证切换的流畅性。
Failover是一种突发情况下的主备切换,它是在主库不能正常运行的情况下启动的。在Failover过程中,主库可能会丢失一些数据,并且切换的过程也可能会比Switchover更长。
如何进行Switchover
进行Switchover的前提是主库和备库之间的网络连接正常,当需要进行Switchover时,可以执行以下步骤:
-
在主库上使用ALTER DATABASE命令将主库转换成备库:
ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION SHUTDOWN;
-
在备库上执行以下命令将备库转换成主库:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
-
在主库上启动数据库:
STARTUP
-
在备库上启动数据库:
STARTUP
-
启动Data Guard Broker:
DGMGRL
-
在Broker的交互界面输入以下命令,将主从切换完成:
SWITCHOVER TO '<备库名>' ;
如何进行Failover
在进行Failover之前,需要确保主库不能正常运行。当需要进行Failover时,可以执行以下步骤:
-
在备库上启动数据库:
STARTUP
-
启动Data Guard Broker:
DGMGRL
-
在Broker的交互界面输入以下命令,将备库转换成主库:
FAILOVER TO '<备库名>' ;
-
确认切换完成之后,对主库进行修复。
示例说明1
假设我们的主备库名分别为'primary'和'standby'。
进行Switchover的命令如下:
--在主库上
ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION SHUTDOWN;
--在备库上
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
进行Failover的命令如下:
--在备库上
STARTUP;
DGMGRL
FAILOVER TO 'primary';
示例说明2
假设我们的主备库名分别为'prod'和'dev'。
进行Switchover的命令如下:
--在主库上
ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION SHUTDOWN;
--在备库上
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
进行Failover的命令如下:
--在备库上
STARTUP;
DGMGRL
FAILOVER TO 'prod';
以上就是Oracle Data Guard中Switchover和Failover的详细攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:[Oracle] Data Guard 之 浅析Switchover与Failover - Python技术站