-
2020-12-21 07:29:54
Oracle dataguard 正常切换和应急切换
oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换模拟主库出现问题无法还原,备库脱离dataguard接管主库对外提供服务)
1)Oracle dataguard环境搭建
续上节环境:
pridb 172.25.56.149
stydb 172.25.56.150
2)正常主备切换(switchover)
主库pridb:
select switchover_status from v$database;(查询当前状态)
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
alter database commit to switchover to physical standby with session shutdown;(切换至standby模式)
重新启动数据库至mount状态;
shutdown immediate
startup mount
select switchover_status from v$database;(再检查状态)
SWITCHOVER_STATUS
--------------------
TO PRIMARY
alter database recover managed standby databasedisconnect;(开启standby应用恢复模式)
检查状态
select open_mode,database_role from v$database;
OPEN_MODE DATABASE_ROLE
---------- ----------------
MOUNTED PHYSICAL STANDBY
备库stydb:
select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
alter database commit to switchover to primary;
重新启动数据库open
shutdown immediate
startup
select switchover_status
from v$database;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
select
open_mode,database_role from v$database;
OPEN_MODE
DATABASE_ROLE
---------- ----------------
OPEN PRIMARY
至此原主库切换至备库,原备库切换至主库了
同步测试:
pridb(new):
select sequence#,applied from v$archived_log;
stydb(new):
select sequence#,applied from v$archived_log;
PS:图片偷懒了,不过测试原理是一样的,只需要保证2边sequence序列号一致且最新的app返回YES了,就说明备库接收到应用且恢复了。
3)应急切换
(注:模拟主库由于故障无法正常switchover,需要执行failover,强制备库->pridb并接管业务)
1.备库:
由于是failover,所以理解主库这时候已经无法正常使用,只需备库切换至pridb
停止应用恢复模式
alter database recover managed standby database finish;
转换standbydb为primary db
alter database commit to switchover to primary;
重启数据库,恢复正常业务
shutdown immediate
startup
select open_mode,database_role from v$database;
OPEN_MODE DATABASE_ROLE
---------- ----------------
OPEN PRIMARY
PS:failover将破坏dataguard模式,需要重新配置dataguard,听说可以不用重新配置,不过本人未实验成功,有方法的可以大家一起沟通下.
更多相关内容 -
Oracle DataGuard手动切换步骤【数据库维护方案】
2020-12-21 07:30:08数据库维护背景:DataGuard主备切换分两种:一种是数据库正常的情况下的切换,这种方式为:switchovery,一般用于主机维护或灾备测试,属于无损切换,不会丢失数据;另外一种方式属于数据库服务器灾难情况下的切换,...数据库维护背景:
DataGuard主备切换分两种:一种是数据库正常的情况下的切换,这种方式为:switchovery,一般用于主机维护或灾备测试,属于无损切换,不会丢失数据;另外一种方式属于数据库服务器灾难情况下的切换,这种情况下一般主库已经启动不起来了,为failover,有可能会丢失数据,并且切换后原primary数据库也不再是该dataguard配置的一部分了。
对于整个dataguard的搭建,请参考实战OracleDataGuard不停机的配置,只要按照该文档操作,保证没有问题;
DG环境信息:
主机信息db_namedb_unique_namerole
浙江从orclorclPRIMARY
orclorclbakSTANDBY
切换步骤:
一、主库的操作
1、主数据库的状态检查
脚本:SQL> select switchover_status from v$database;
说明:如果该列值为"TO STANDBY"则表示primary 数据库支持转换为standby 角色,否则的话你就需要重新检查一下Data Guard 配置,比如看看LOG_ARCHIVE_DEST_n 之类参数值是否正确有效等等。
2、首先将primary 转换为standby 的角色
SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
确认状态:
select switchover_status from v$database;
说明:PRIMARY进行转换完毕后,查看状态会变成RECOVERY NEEDED;
3、重启动到mount --原primary 数据库操作
SQL> shutdown immediate
ORA-01507: 未装载数据库
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动
二、备库切换成主库的操作
完成以上操作后,就可以进行以下备库的操作
1、检查备库的状态
SQL> select switchover_status from v$database;
2、确认没有问题后,可以进行切换转换standby 到primary 角色
SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
3、完成转换,打开新的primary 数据库
SQL> alter database open;
4、查看当前系统的状态
脚本:select name,open_mode,database_role,protection_mode,SWITCHOVER_STATUS
From v$database;
三、原主库切换成备库
当前的备库是mount状态了,运行以下语句
1、执行日志的运用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
2、取消日志的运用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
3、打开数据库
SQL> ALTER DATABASE OPEN;
4、在open状态下执行日志的即时运用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
顺带说说failover切换:
旧备库操作:
ALTER DATABASE RECOVER managed standby database finish;
新主库操作:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
alter database open;
-
实战dataguard主从切换-阿里云开发者社区
2020-12-21 07:29:57前言:众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据;另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动不起来了,为failover...前言:
众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据;另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动不起来了,为failover,有可能会丢失数据,并且切换后原primary 数据库也不再是该data guard 配置的一部分了。
本文先简单的介绍在正常情况下运行的系统切换测试;
整个dataguard的搭建,请参考实战ORACLE DataGuard不停机的配置,只要按照该文档操作,保证没有问题;
环境信息:
hostname
db_name
db_unique_name
role
dg2
orcl
orcldg2
PRIMARY
dg1
orcl
orcldg1
STANDBY
切换步骤:
一、主库的操作
1、主数据库的状态检查
脚本:SQL> select switchover_status from v$database;
说明:如果该列值为"TO STANDBY"则表示primary 数据库支持转换为standby 角色,否则的话你就需要重新检查一下Data Guard 配置,比如看看LOG_ARCHIVE_DEST_n 之类参数值是否正确有效等等。
2、首先将primary 转换为standby 的角色
脚本:SQL> alter database commit to switchover to physical standby;
说明:PRIMARY进行转换完毕后,查看状态会变成RECOVERY NEEDED;
3、重启动到mount --原primary 数据库操作
SQL> shutdown immediate
ORA-01507: 未装载数据库
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动
二、备库切换成主库的操作
完成以上操作后,变可以进行以下备库的操作
1、检查备库的状态
脚本:脚本:SQL> select switchover_status from v$database;
2、确认没有问题后,可以进行切换转换standby 到primary 角色
脚本:SQL> alter database commit to switchover to primary;
3、完成转换,打开新的primary 数据库
SQL> alter database open;
4、查看当前系统的状态
脚本:select name,open_mode,database_role,protection_mode,SWITCHOVER_STATUS From v$database;
三、原主库切换成备库
当前的备库是mount状态了,运行以下语句
1、执行日志的运用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
2、取消日志的运用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
3、打开数据库
SQL> ALTER DATABASE OPEN;
4、在open状态下执行日志的即时运用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
四、测试
1、在dg1上面插入一个表test,并插入数值1
2、在dg2上面检查
大功告成了,数据马上传送到dg2了;
-
实战dataguard主从切换
2020-12-21 07:30:03前言:众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据;另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动不起来了,为failover...前言:
众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据;另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动不起来了,为failover,有可能会丢失数据,并且切换后原primary 数据库也不再是该data guard 配置的一部分了。
本文先简单的介绍在正常情况下运行的系统切换测试;
整个dataguard的搭建,请参考实战ORACLE DataGuard不停机的配置,只要按照该文档操作,保证没有问题;
环境信息:
hostnamedb_namedb_unique_namerole
dg2orclorcldg2PRIMARY
dg1orclorcldg1STANDBY
切换步骤:
一、主库的操作
1、主数据库的状态检查
脚本:SQL> select switchover_status from v$database;
说明:如果该列值为"TO STANDBY"则表示primary 数据库支持转换为standby 角色,否则的话你就需要重新检查一下Data Guard 配置,比如看看LOG_ARCHIVE_DEST_n 之类参数值是否正确有效等等。
2、首先将primary 转换为standby 的角色
脚本:SQL> alter database commit to switchover to physical standby;
说明:PRIMARY进行转换完毕后,查看状态会变成RECOVERY NEEDED;
3、重启动到mount --原primary 数据库操作
SQL> shutdown immediate
ORA-01507: 未装载数据库
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动
二、备库切换成主库的操作
完成以上操作后,变可以进行以下备库的操作
1、检查备库的状态
脚本:脚本:SQL> select switchover_status from v$database;
2、确认没有问题后,可以进行切换转换standby 到primary 角色
脚本:SQL> alter database commit to switchover to primary;
3、完成转换,打开新的primary 数据库
SQL> alter database open;
4、查看当前系统的状态
脚本:select name,open_mode,database_role,protection_mode,SWITCHOVER_STATUS From v$database;
三、原主库切换成备库
当前的备库是mount状态了,运行以下语句
1、执行日志的运用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
2、取消日志的运用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
3、打开数据库
SQL> ALTER DATABASE OPEN;
4、在open状态下执行日志的即时运用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
四、测试
1、在dg1上面插入一个表test,并插入数值1
2、在dg2上面检查
大功告成了,数据马上传送到dg2了;
-
dataGuard client 自动切换
2021-01-12 22:59:36使用dataguard作为HA方案,要解决的一个问题在于:后台数据库发生了切换,client连接如何做到自动切到新的primary数据库上?如果做通用的方案,需要客户端自己提供自动重连的能力,这点大多数java的occi的连接池都有... -
ORACLE dataguard 切换
2020-12-21 07:30:01昨天总部巡检,要求对OracleData Guard 做一个switchover的切换演示。 以前都是在虚拟机上做这种切换的,没有在生产库上做过。所以还是有些紧张。不过做DBA 一定要给自己留一条后路: 备份。 先shutdown,做冷备,在... -
Oracle DataGuard切换步骤
2020-12-21 07:29:53ADG或者DG的切换步骤:1. 可以切换的情况,主库查询SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS--------------------TO STANDBY2.如果主库是上面的状态,将主库切换至备用模式SQL> ... -
DataGuard角色切换
2020-12-21 07:30:00Step 1 Verify that the primary database can be ...验证主库能够切换到备用角色。SELECT SWITCHOStep 1 Verify that the primary database can be switched to the standby role.验证主库能够切换到备用角色。SELE... -
Oracle Dataguard的强制切换
2021-05-06 05:10:29【前言】Dataguard的从库一般情况下都是出于数据的抽取和查询的作用的,但是万一在主库发生故障的情况下就需要切换到备库了。而这种故障的切换往往又是灾难性的情况:比如主库的服务器根本就起不来了,没有办法进行... -
DATAGUARD失败切换
2019-02-24 13:57:05如果主库出现故障无法修复的话,就需要在备库上做failover,使得应用可以继续运行。在备库做失败切换的一般步骤是:1、如果可能,从主库手工拷贝并注册ARCHIVED LOG到备库上,直到备库的V$ARCHIVE_GAP记录为空... -
oracle dataguard主从切换
2021-05-01 06:49:03前言:众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据;另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动不起来了,为failover... -
Oracle dataguard切换实施步骤
2020-12-21 07:30:06Oracle dataguard切换实施步骤主备库的切换主要在两种情况下切换,Switchover和Failover,这两种切换都需要手工执行完成,不建议自动执行。主库端 192.168.411.20备库端 192.168.411.221一是Switchover(计划中的切换... -
dataguard 切换保护模式
2020-12-21 07:29:581、首先查看当前的保护... PROTECTION_MODE PROTECTION_LEVEL -------------------- -------------------- MAXIMUM AVAILABILITY RESYNCHRONIZATION Standby数据库shutdown后,primary数据库保护级别切换为待同步。 -
dataguard配合flashback实现主备任意切换(failover和switchover)
2020-12-21 07:29:58我这里使用oracle dataguard结合flashback模拟实现客户需求(也可以在failover之后通过重新搭建dg实现类似需求,具体需要看客户的实际场景:数据量,带宽,恢复时间,技术能力等)正常dg同步的主备环境这里ora11g主机是... -
DATAGUARD的单实例搭建、切换、检查 文档
2021-01-12 23:00:32摘 要搭建data guard环境,利用RMAN DUPLICATE命令创建physical standby。 创建备库之前需要有备库的参数文件;...当dataguard创建成功后,在计划需求下手工的switchover,或者在主库故障发生的情况下手工的执行f... -
Dataguard中pdb的迁移和故障切换
2020-12-15 15:54:45这就需要用到dg broker所带来的新功能,从12.1版本开始,通过dg broker中migrate pluggable database命令能很方便的对pdb进行迁移操作,方便的同时得需要满足一些条件才可以实现,数据库的版本、补丁、COMPATIBLE... -
使用Oracle Dataguard实现从单机到RAC转换
2021-05-01 11:33:15使用Oracle Dataguard实现从单机到RAC转换由于原有单实例服务器不能满足需求,需要把数据库从把单机实例迁移到RAC上.迁移的方式有很多种,但是主要可以分为逻辑迁移和物理迁移.逻辑迁移使用的技术有expdp,... -
DataGuard主备库切换步骤
2020-12-21 07:29:54确认切换成功: select database_role,open_mode from v$database; 检查同步: select process,sequence#,status from v$managed_standby; alter system switch logfile; select max(sequence#) from v$archived_... -
DataGuard部署及主从切换
2021-01-12 23:00:27主库:vsgpdb备库:dgdb1、确认主库处于归档模式SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /gp/archOldest online log sequence ... -
物理DataGuard客户端无缝切换--客户端TAF 配置
2019-02-25 22:33:12物理 DG 客户端无缝切换 -- 客户端 TAF 配置 项目客户一直想实现DataGuard的主备切换的自动化,即主库故障后自动切换... -
Dataguard的强制切换
2017-03-29 17:22:10【前言】Dataguard的从库一般情况下都是出于数据的抽取和查询的作用的,但是万一在主库发生故障的情况下就需要切换到备库了。而这种故障的切换往往又是灾难性的情况:比如主库的服务器根本就起不来了,没有办法进行... -
DataGuard切换-switchover
2016-02-16 11:17:30理论上是不需要停止主库监听的,但是实际上如果切换时数据库繁忙,还有大量会话连接操作数据库, 在执行切换操作的时候需要等待oracle执行session shutdown,有时会很慢,这里建议直接停止监听, 还可以通过查 ps -... -
Oracle DataGuard
2021-07-16 22:09:55它是直接应用REDO实现同步的。主要目的是灾备恢复。 逻辑STANDBY则不是这样,在逻辑STANDBY中,逻辑信息是相同的,但物理组织和数据结构可以不同,它和主库保持同步的方法是将接收的REDO转换成SQL语句,然后在... -
Dataguard 的 taf 实现
2022-03-16 17:22:06【DATAGUARD】物理dg配置客户端无缝切换 (八.3)--客户端TAF 配置_ITPUB博客 DataGuard 11g 之客户端TAF 配置_常飞梦的博客-CSDN博客 -
oracle11g dataguard
2021-09-18 10:36:17修改主库参数 修改在线日志文件大小,防止在复制的时候日志文件频繁切换 alter database add logfile group 4 '/home/oracle/database/oradata/orcl/redo04.log' size 1024M; alter database add logfile group 5 '... -
Oracle 11g DataGuard容灾实战视频教程
2021-06-11 06:44:05它在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库快速切换与灾难性恢复。本套视频课程实验环境:Oracle 11g+Linux6。本套课程结合了作者多年工作经验,生产实施、运维人员可参考。 -
不停机物理Dataguard和switchover切换
2019-01-03 12:46:37不管经历什么,都不想放弃,当认真做一件事的时候也给了你面对的勇气... 主库不能停机,通过rman的duplicate命令实现在线创建物理备库。 角色 db_name db_unique_name 主机 网络连接字符串 主库 orcl orcl 192.... -
Oracle 11gR2 RAC到单节点DataGuard部署文档
2022-07-01 16:33:14实现RAC环境,同步至DataGuard单节点上,实现数据高可用。 环境: RAC:两节点 Cenos7.9 Oracle11.2.0.4 DataGuard:单节点 Cenos7.9 Oracle11.2.0.4