精华内容
下载资源
问答
  • dataguard如何实现切换
    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,听说可以不用重新配置,不过本人未实验成功,有方法的可以大家一起沟通下.

    更多相关内容
  • 数据库维护背景: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一般的切换分成两种,一种是系统正常的情况下的切换这种方式为: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作为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:53
    ADG或者DG的切换步骤:1. 可以切换的情况,主库查询SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS--------------------TO STANDBY2.如果主库是上面的状态,将主库切换至备用模式SQL> ...
  • DataGuard角色切换

    2020-12-21 07:30:00
    Step 1 Verify that the primary database can be ...验证主库能够切换到备用角色。SELECT SWITCHOStep 1 Verify that the primary database can be switched to the standby role.验证主库能够切换到备用角色。SELE...
  • 【前言】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切换实施步骤主备库的切换主要在两种情况下切换,Switchover和Failover,这两种切换都需要手工执行完成,不建议自动执行。主库端 192.168.411.20备库端 192.168.411.221一是Switchover(计划中的切换...
  • dataguard 切换保护模式

    2020-12-21 07:29:58
    1、首先查看当前的保护... PROTECTION_MODE PROTECTION_LEVEL -------------------- -------------------- MAXIMUM AVAILABILITY RESYNCHRONIZATION Standby数据库shutdown后,primary数据库保护级别切换为待同步。
  • 我这里使用oracle dataguard结合flashback模拟实现客户需求(也可以在failover之后通过重新搭建dg实现类似需求,具体需要看客户的实际场景:数据量,带宽,恢复时间,技术能力等)正常dg同步的主备环境这里ora11g主机是...
  • 摘 要搭建data guard环境,利用RMAN DUPLICATE命令创建physical standby。 创建备库之前需要有备库的参数文件;...当dataguard创建成功后,在计划需求下手工的switchover,或者在主库故障发生的情况下手工的执行f...
  • 这就需要用到dg broker所带来的新功能,从12.1版本开始,通过dg broker中migrate pluggable database命令能很方便的对pdb进行迁移操作,方便的同时得需要满足一些条件才可以实现,数据库的版本、补丁、COMPATIBLE...
  • 使用Oracle Dataguard实现从单机到RAC转换由于原有单实例服务器不能满足需求,需要把数据库从把单机实例迁移到RAC上.迁移的方式有很多种,但是主要可以分为逻辑迁移和物理迁移.逻辑迁移使用的技术有expdp,...
  • 确认切换成功: 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_...
  • 主库:vsgpdb备库:dgdb1、确认主库处于归档模式SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /gp/archOldest online log sequence ...
  • 物理 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+Linux6。本套课程结合了作者多年工作经验,生产实施、运维人员可参考。
  • 不管经历什么,都不想放弃,当认真做一件事的时候也给了你面对的勇气... 主库不能停机,通过rman的duplicate命令实现在线创建物理备库。 角色 db_name db_unique_name 主机 网络连接字符串 主库 orcl orcl 192....
  • 实现RAC环境,同步至DataGuard单节点上,实现数据高可用。 环境: RAC:两节点 Cenos7.9 Oracle11.2.0.4 DataGuard:单节点 Cenos7.9 Oracle11.2.0.4

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,316
精华内容 926
热门标签
关键字:

dataguard如何实现切换