oracle dg库switchover主备切换
switchover 切换:主库与备库数据同步正常情况下的切换,主要用于 主备维护、切换演练等; failover 切换:主库与备库在数据未同步情况下的强制切换,主要用 于主库宕机、故障情况下切换; 一、switchover切换 主库与备库数据同步,且正常运行,将主库与备库的角色互换; 切换前,务必检查当前主库与备库的归档是否是同步的,确认同步后再执行切换 switchover切换 主库操作 第1步、主库停止监听 lsnrctlstop (理论上是不需要停止主库监听的,但是实际上如果切换时数据库繁忙,还有大量会话连接操作数据库,在执行切换操作的时候需要等待oracle执行sessionshutdown,有时会很慢,这里建议直接停止监听,停止后,还可以通过查ps-ef|grep"LOCAL=NO",查看进行,LOCAL=NO是客户端连接进程,并kill-9杀掉这些没有释放的连接,再执行下面的切换) ps-ef|grep"LOCAL=NO" | grep -v grep | awk '{print $2}' | xargs kill -9 第2步、主库执行切换 主库状态角色确认 selectswitchover_statusfromv$database; 查询结果分两种情况: 第一种情况 SQL>selectswitchover_statusfromv$database; SWITCHOVER_STATUS -------------------- SESSIONSACTIVE 如果查询结果是SESSIONSACTIVE:执行下面的: SQL>alterdatabasecommittoswitchovertophysicalstandbyw ithsessionshutdown; 第二种情况 SQL>selectswitchover_statusfromv$database; SWITCHOVER_STATUS -------------------- TOSTANDBY 如果查询结果是:TOSTANDBY执行下面的: SQL>alterdatabasecommittoswitchovertophysicalstandby; 第3步、关闭主库 SQL>shutdownimmediate ORA-01507:databasenotmounted ORACLEinstanceshutdown. 第4步、主库启动到mount状态 SQL>startupmount ORACLEinstancestarted. TotalSystemGlobalArea9646899200bytes FixedSize2087000bytes VariableSize822085544bytes DatabaseBuffers8808038400bytes RedoBuffers14688256bytes Databasemounted. 第5步、主库确定切换后的状态 SQL>selectopen_mode,database_role,switchover_statusfromv$database; OPEN_MODEDATABASE_ROLESWITCHOVER_STATUS ---------------------------------------------------------- ------------------------ MOUNTEDPHYSICALSTANDBYSESSIONSACTIVE 数据库角色变成了PHYSICALSTANDBY(物理备库),完成了主库的角色转换; 第6步、主库启动监听 lsnrctlstart switchover切换备库操作 备库执行切换为主库模式 第1步、备库状态角色确认 SQL>selectswitchover_statusfromv$database; 第一种情况 SQL>selectswitchover_statusfromv$database; SWITCHOVER_STATUS -------------------- TOPRIMARY 如果状态为TOPRIMARY则执行下面的语句: SQL>alterdatabasecommittoswitchovertoprimary; 第二种情况 SQL>selectswitchover_statusfromv$database; SWITCHOVER_STATUS --------------------------------- SESSIONSACTIVE 如果状态是SESSIONSACTIVE则执行下面的语句: alterdatabasecommittoswitchovertoprimarywithsessionshutdown; 第2步、备库打开 alterdatabaSEOpen; 第3步、备库状态角色确认 SQL>selectopen_mode,switchover_statusfromv$database; OPEN_MODEDATABASE_ROLESWITCHOVER_STATUS ---------------------------------------------------------- -------------------------- READWRITEPRIMARY SESSIONSACTIVE 第4步、原主库启动同步 在原主库上执行: SQL>ALTER DATABASE OPEN; SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; switchover切换完成; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |