技术建议和方案。

 要求failover后不重建备库,并能够把failover的数据库重新切换回备库
主库为newtest,备库为snewtest
备库上已经开启了闪回

得到一个参考的SCN

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
4491930

查看闪回数据库特性是打开的。

SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------------------------
YES

然后我们在备库上开始failover

DGMGRL> failover to snewtest;
Performing failover NOW, please wait...
Failover succeeded, new primary is "snewtest"

操作很快完成,我们查看备库此时的状态和角色

SQL> select open_mode,database_role    from v$database;

OPEN_MODE            DATABASE_ROLE
-------------------- ----------------
READ WRITE PRIMARY

当然这个步骤可以做一些读写操作之类的.

然后我们开始计划切回备库。

SQL> shutdown immediate

SQL> startup mount

闪回数据库到指定的SCN,

SQL> flashback database to scn 4491930;
Flashback complete.

切换这个新主库为备库

SQL> alter database convert to physical standby;
Database altered.

需要重启备库

SQL> shutdown immediate
SQL> startup mount

最关键的步骤,重新配置DG Broker

主库上删除DG Broker配置

SQL> alter system set dg_broker_start = false;

System altered.

SQL> !ps -ef |grep dmon
oracle 24648 24644 0 00:13 pts/3 00:00:00 /bin/bash -c ps -ef |grep dmon
oracle 24650 24648 0 00:13 pts/3 00:00:00 grep dmon [oracle@localhost ~]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ ll
total 10048
-rw-r-----. 1 oracle dba 8192 Mar 30 00:07 dr1newtest.dat
-rw-r-----. 1 oracle dba 8192 Mar 30 00:07 dr2newtest.dat
-rw-rw----. 1 oracle dba 1544 Mar 12 00:02 hc_DBUA1321268.dat
-rw-rw----. 1 oracle dba 1544 Mar 27 21:10 hc_newtest.dat
-rw-r--r--. 1 oracle dba 982 Mar 21 23:12 initnewtest.ora
-rw-r--r--. 1 oracle dba 2851 May 15 2009 init.ora
-rw-r-----. 1 oracle dba 24 Jan 31 20:16 lkNEWTEST
-rw-r-----. 1 oracle dba 1536 Jan 31 20:18 orapwnewtest
-rw-r-----. 1 oracle dba 10240000 Mar 27 23:53 snapcf_newtest.f
-rw-r-----. 1 oracle dba 3584 Mar 30 00:12 spfilenewtest.ora
[oracle@localhost dbs]$ rm -rf dr*newtest.dat
[oracle@localhost dbs]$ ll
total 10032
-rw-rw----. 1 oracle dba 1544 Mar 12 00:02 hc_DBUA1321268.dat
-rw-rw----. 1 oracle dba 1544 Mar 27 21:10 hc_newtest.dat
-rw-r--r--. 1 oracle dba 982 Mar 21 23:12 initnewtest.ora
-rw-r--r--. 1 oracle dba 2851 May 15 2009 init.ora
-rw-r-----. 1 oracle dba 24 Jan 31 20:16 lkNEWTEST
-rw-r-----. 1 oracle dba 1536 Jan 31 20:18 orapwnewtest
-rw-r-----. 1 oracle dba 10240000 Mar 27 23:53 snapcf_newtest.f
-rw-r-----. 1 oracle dba 3584 Mar 30 00:12 spfilenewtest.ora

备库上删除DG Broker配置

SQL>  alter system set dg_broker_start = false;

System altered.

SQL> !ps -ef |grep dmon
oracle 15200 15198 0 00:15 pts/2 00:00:00 /bin/bash -c ps -ef |grep dmon
oracle 15202 15200 0 00:15 pts/2 00:00:00 grep dmon SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@localhost backup_stage]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ ll
total 10064
-rw-r-----. 1 oracle dba 20480 Mar 30 00:13 dr1snewtest.dat
-rw-r-----. 1 oracle dba 20480 Mar 30 00:08 dr2snewtest.dat
-rw-rw----. 1 oracle dba 1544 Mar 30 00:12 hc_newtest.dat
-rw-r--r--. 1 oracle dba 1062 Mar 21 23:30 initnewtest.ora
-rw-r-----. 1 oracle dba 24 Mar 21 23:38 lkSNEWTEST
-rw-r-----. 1 oracle dba 1536 Mar 27 23:34 orapwnewtest
-rw-r-----. 1 oracle dba 10240000 Mar 29 06:45 snapcf_newtest.f
-rw-r-----. 1 oracle dba 4608 Mar 30 00:15 spfilenewtest.ora
[oracle@localhost dbs]$ rm -rf dr*snewtest.dat
[oracle@localhost dbs]$ ll
total 10024
-rw-rw----. 1 oracle dba 1544 Mar 30 00:12 hc_newtest.dat
-rw-r--r--. 1 oracle dba 1062 Mar 21 23:30 initnewtest.ora
-rw-r-----. 1 oracle dba 24 Mar 21 23:38 lkSNEWTEST
-rw-r-----. 1 oracle dba 1536 Mar 27 23:34 orapwnewtest
-rw-r-----. 1 oracle dba 10240000 Mar 29 06:45 snapcf_newtest.f
-rw-r-----. 1 oracle dba 4608 Mar 30 00:15 spfilenewtest.ora

主库上重新配置 DG Broker

SQL> alter system set dg_broker_start =true;

System altered.

[oracle@localhost dbs]$ dgmgrl /
DGMGRL for Linux: Version 11.2.0.4.0 - 64bit Production Copyright (c) 2000, 2009, Oracle. All rights reserved. Welcome to DGMGRL, type "help" for information.
Connected.
DGMGRL> create configuration dg_newtest as primary database is newtest connect identifier is newtest;
Configuration "dg_newtest" created with primary database "newtest"
DGMGRL> show configuration; Configuration - dg_newtest Protection Mode: MaxPerformance
Databases:
newtest - Primary database Fast-Start Failover: DISABLED Configuration Status:
DISABLED DGMGRL> enable configuration ;
Enabled.
DGMGRL> show configuration; Configuration - dg_newtest Protection Mode: MaxPerformance
Databases:
newtest - Primary database Fast-Start Failover: DISABLED Configuration Status:
SUCCESS DGMGRL> add database snewtest as connect identifier is snewtest maintained as physical;
Database "snewtest" added
DGMGRL> enable database snewtest;
Enabled.
DGMGRL> show configuration; Configuration - dg_newtest Protection Mode: MaxPerformance
Databases:
newtest - Primary database
snewtest - Physical standby database
Error: ORA-16525: the Data Guard broker is not yet available Fast-Start Failover: DISABLED Configuration Status:
ERROR

此时提示备库的 Data Guard broker不可用

配置备库的DG Broker

SQL> alter system set dg_broker_start = true;

System altered.

在主库上再次查看dg broke 的状态

DGMGRL> show configuration

Configuration - dg_newtest

  Protection Mode: MaxPerformance
Databases:
newtest - Primary database
snewtest - Physical standby database
Error: ORA-16613: initialization in progress for database Fast-Start Failover: DISABLED Configuration Status:
ERROR

此时是初始化状态

open 备库

SQL> alter database open;

Database altered.

在主库上再次查看dg broke 的状态

DGMGRL> show configuration

Configuration - dg_newtest

  Protection Mode: MaxPerformance
Databases:
newtest - Primary database
snewtest - Physical standby database Fast-Start Failover: DISABLED Configuration Status:
SUCCESS

查看备库的状态

 SQL> select open_mode,database_role    from v$database;

OPEN_MODE            DATABASE_ROLE
-------------------- ----------------
READ ONLY WITH APPLY PHYSICAL STANDBY

Oracle11gr2_ADG管理之在备库上模拟failover的过程实战的更多相关文章

  1. Oracle 19c Data Guard DML Redirection ADG备库上执行DML重定向(未来更好的进行读写分离)

    资料来自官方网站: https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/managing-oracle-data-g ...

  2. oracle 利用flashback将备库激活为read wirte(10g 及上)

    oracle 利用flashback将备库激活为read wirte(10g 及上) 环境: OS: CENTOS 6.5 X64 DB: ORACLE 10.2.0.5 主库操作: SQL> ...

  3. Oracle11gr2_ADG管理之switchover补充

    之前演示的switchver总是提示下面的错误,并且需要人工干预: Oracle11gr2_ADG管理之switchover实战 DGMGRL> switchover to snewtest; ...

  4. 【转载】mysql主键的缺少导致备库hang

    最近线上频繁的出现slave延时的情况,经排查发现为用户在删除数据的时候,由于表主键的主键的缺少,同时删除条件没有索引,或或者删除的条件过滤性极差,导致slave出现hang住,严重的影响了生产环境的 ...

  5. mysql主键的缺少导致备库hang

    最近线上频繁的出现slave延时的情况,经排查发现为用户在删除数据的时候,由于表主键的主键的缺少,同时删除条件没有索引,或或者删除的条件过滤性极差,导致slave出现hang住,严重的影响了生产环境的 ...

  6. 备份一篇SVN的文章, 从搭建到主备库

    来源: http://h2ofly.blog.51cto.com/6834926/1539141 [svn简介]            svn用于版本管理数据,它采用了分支管理系统.在它出现之前存在C ...

  7. Oracle11gr2_ADG管理之跳归档恢复dg实战

    模拟故障 关闭备库 SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut dow ...

  8. Oracle备库TNS连接失败的分析

    今天在测试12c的temp_undo的时候,准备在备库上测试一下,突然发现备库使用TNS连接竟然失败. 抛出的错误如下: $ sqlplus sys/oracle@testdb as sysdba S ...

  9. ORACLE 11g 用Duplicate恢复Data Guard 备库详细过程

    1.先查找备库控制文件路径 先在备库上找出控制文件的路径,通过和主库一样,不过为了以防万一,还是check为好. SQL>  select name from v$controlfile; NA ...

随机推荐

  1. android 和主线程有关的小问题

    1.在android 中 HTTP请求被不允许在主线程中执行,否则会抛出异常.如果请求时间过长,阻塞UI线程是一个非常差的体验之前,刚开始开发遇到这个问题,每次app运行到最后,发送网络请求就自己崩溃 ...

  2. 关于matlab中定点数overflow的处理办法

    定点数overflow的处理有两种办法:1,saturate,也就是说如果超过定点的最大值就取最大值,例如最大值是6结果是8,那么就取6:2,wrap,就是循环,如下图所示

  3. altium常用快捷键记录

    选中一个网络的点和线ctrl+h: 翻转器件的层 鼠标拖动+L: 镜像器件 鼠标拖动+x: 查看单一层shift+s: 隐藏/查看某些器件ctrl+d:

  4. hoverfly api 模拟框架了解

    What is Hoverfly? Hoverfly is a lightweight, open source API simulation tool. Using Hoverfly, you ca ...

  5. 基于openresty 的几个开发框架

    1. kong    api  gateway     Github:   https://github.com/Mashape/kong 2.  Lapis   web 开发框架   Github: ...

  6. 【转】理解 pkg-config 工具

    原文网址:http://www.chenjunlu.com/2011/03/understanding-pkg-config-tool/ 你在 Unix 或 Linux 下开发过软件吗?写完一个程序, ...

  7. 7.Python使用pandans遇到的坑

    1.开始入门Pandas,然后跟着网上的例子,编写以下代码: import pandas as pd import datetime import pandas.io.data as web star ...

  8. 解决ueditor中没法动态配置imageurlprefix的方法

    [建议使用右边文章中的方法,本篇文章没有真正的解决问题](新)解决php版本ueditor中动态配置图片URL前缀(imageurlprefix)的方法 修改背景,由于后台图片是上传到挂载的静态资源磁 ...

  9. golang里面检测对象是否实现了接口的方法

    写法有点怪异,记一下吧 _, implemented := this.delegate.(IGenTcpServerDelegate) if implemented { this.delegate.G ...

  10. Zookeeper--分布式锁和消息队列

    在java并发包中提供了若干锁的实现,它们是用于单个java虚拟机进程中的:而分布式锁能够在一组进程之间提供互斥机制,保证在任何时刻只有一个进程可以持有锁. 分布式环境中多个进程的锁则可以使用Zook ...