物理dataguard 正常切换 脚色转换,switchover_status 状态改变:

正常切换

切换前:
主库:

SQL> select DATABASE_ROLE from v$database;

DATABASE_ROLE
----------------
PRIMARY

SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;

OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
---------- -------------------- -------------------- ------------------
READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBY

SQL> SELECT COUNT(*) FROM V$SESSION WHERE USERNAME IS NOT NULL;

COUNT(*)
----------
1

在切换前,杀掉所有的数据库连接 观察SWITCHOVER_STATUS,如果是 TO STANDBY,则可以直接切换
如果SESSIONS ACTIVE ,则用

备用库 :

SQL> select DATABASE_ROLE from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY

SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;

OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
---------- -------------------- -------------------- ------------------
MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE NOT ALLOWED

说明:

主库需要注意事项
A 如果switchover_status为TO_STANDBY说明可以转换
直接转换
alter database commit to switchover to physical standby;
B 如果switchover_status为SESSIONS ACTIVE 则关闭会话
SQL>alter database commit to switchover to physical standby with session shutdown;

在备库中操作,查看备库
SQL> select switchover_status from v$database;

A 如果switchover_status为TO_PRIMARY 说明标记恢复可以直接转换为primary库
SQL>alter database commit to switchover to primary

B 如果switchover_status为SESSION ACTIVE 就应该断开活动会话
SQL>alter database commit to switchover to primary with session shutdown;

C 如果switchover_status为NOT ALLOWED 说明切换标记还没收到,此时不能
执行转换。

切换中 :

备用库
SQL> select DATABASE_ROLE from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY

SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;

OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
---------- -------------------- -------------------- ------------------
MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE SESSIONS ACTIVE

切换后备用的状态,模式:

SQL> select DATABASE_ROLE from v$database;

DATABASE_ROLE
----------------
PRIMARY

SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;

OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
---------- -------------------- -------------------- ------------------
READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBY

2. 检查环境:

确认主库和从库间网络连接通畅;

确认没有活动的会话连接在数据库中;

PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;

确保STANDBY数据库处于ARCHIVELOG模式;

如果设置了REDO应用的延迟,那么将这个设置去掉;

确保配置了主库和从库的初始化参数,使得切换完成后,DATA GUARD机制可以顺利的运行。

如果是最大保护模式,先变成最大性能模式:

3. 切换的顺序: 先从主库到备用,再从备库到主库

主切备:

SQL> select DATABASE_ROLE from v$database;

DATABASE_ROLE
----------------
PRIMARY

SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;

OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
---------- -------------------- -------------------- ------------------
READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBY

SQL>
SQL>
SQL> alter database commit to switchover to physical standby ;

Database altered.

SQL> shutdown immediate;
ORA-01507: database not mounted

ORACLE instance shut down.
SQL> startup nomount ;
ORACLE instance started.

Total System Global Area 3242987696 bytes
Fixed Size 733360 bytes
Variable Size 1174405120 bytes
Database Buffers 2063597568 bytes
Redo Buffers 4251648 bytes
SQL> alter database mount standby database;

Database altered.

SQL> alter database recover managed standby database disconnect from session;

Database altered.

SQL> select DATABASE_ROLE from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY

SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;

OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
---------- -------------------- -------------------- ------------------
MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO PRIMARY

备切主
SQL> select DATABASE_ROLE from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY

SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;

OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
---------- -------------------- -------------------- ------------------
MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO PRIMARY

SQL> alter database commit to switchover to primary;

Database altered.

SQL> SQL> SQL>
SQL>
SQL>
SQL> shutdown immediate;
ORA-01507: database not mounted

ORACLE instance shut down.
SQL> startup ;
ORACLE instance started.

Total System Global Area 3242987696 bytes
Fixed Size 733360 bytes
Variable Size 1174405120 bytes
Database Buffers 2063597568 bytes
Redo Buffers 4251648 bytes
Database mounted.
Database opened.

修改主 备库 的 tnsnames.ora

主库SESSIONS ACTIVE是正常primary状态下的结果。

DataGuard:PhysicalStandby Failover

接physical standby switchover

primary db :db2

standby db :db1

一般情况下failover都是表示primary数据库瘫痪,最起码也是起不来了,因此这种类型的切换基本上不需要primary数据库做什么操作。所以下列步骤中如果有提到primary和standby执行的,只是建议你如果primary还可以用,那就执行一下,即使不去执行,对failover来说也没有关系

1.检查归档文件是否连续,是否有gap

在standby库执行

SQL> select THREAD#,LOW_SEQUENCE#,HIGH_SEQUENCE# from v$archive_gap;

2.如果步骤1查询出来纪录,则在primary库上执行,否则跳过此步骤

在主库上执行语句,按步骤1查询出来的纪录找出归档文件

 SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN XX AND XX;

  --如果primary存在,拷贝相应的归档到STANDBY数据库,并注册.

  SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'xxx';

3.检查归档文件是否完整

分别在primary/standby执行下列语句:

  SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;

  把相差的归档复制到待转换的standby服务器,并手工register

4.开始做failover

察看standby进程状态

SQL> select process,client_process,sequence#,status from v$managed_standby;

PROCESS  CLIENT_P SEQUENCE# STATUS

--------- -------- ---------- ------------

ARCH     ARCH            30 CLOSING

ARCH     ARCH             0 CONNECTED

RFS      LGWR            31 IDLE

RFS      ARCH             0 IDLE

RFS      N/A              0 IDLE

MRP0     N/A             31 APPLYING_LOG

SQL> alter database recover managed standby database finish force ;

FORCE关键字将会停止当前活动的RFS进程,以便立刻执行failover。

  或

  SQL> alter database recover managed standby database finish skip standby logfile;

SQL> alter database commit to switchover to primary;

SQL> shutdown immediate

SQL> startup

SQL> select database_role,protection_mode,protection_level,open_mode from v$database;

DATABASE_ROLE   PROTECTION_MODE     PROTECTION_LEVEL    OPEN_MODE

---------------- -------------------- -------------------- ----------

PRIMARY       MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE

Failover切换成功

switch_status not allowed等物理dataguard 正常切换 脚色转换相关推荐

  1. 物理dataguard 正常切换 脚色转换,switchover_status 状态改变

    正常切换 切换前: 主库: SQL> select DATABASE_ROLE from v$database; DATABASE_ROLE ---------------- PRIMARY S ...

  2. 物理dataguard 正常切换 脚色转换

    物理dataguard 正常切换 脚色转换,switchover_status 状态改变: [@more@] 正常切换 切换前: 主库: SQL> select DATABASE_ROLE fr ...

  3. Oracle dataguard 正常切换和应急切换

    Oracle dataguard 正常切换和应急切换 oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换 ...

  4. vue动态发布到线上_vue在线动态切换主题色方案

    主要原理是利用webpack插件webpack-theme-color-replacer提取相关颜色css然后根据配置动态生成替换的css 具体实现步骤如下: 1.添加webpack插件,新建文件we ...

  5. webpack插件实现自动抽取css中的主题色样式,并动态切换主题色(element-ui)

    项目项目中用了element-ui,有切换主题色的需要.但官方的方式,有几个问题: 1.需要下载整个element-ui的样式css,并替换其中的css样式颜色.文件较大,下载慢且影响性能. 2.只能 ...

  6. vue在线动态切换主题色方案

    主要原理是利用webpack插件webpack-theme-color-replacer提取相关颜色css然后根据配置动态生成替换的css,具体实现步骤如下: 1.添加webpack插件,新建文件we ...

  7. vue动态切换css文件_vue在线动态切换主题色方案

    主要原理是利用webpack插件webpack-theme-color-replacer提取相关颜色css然后根据配置动态生成替换的css 具体实现步骤如下: 1.添加webpack插件,新建文件we ...

  8. 一对一直播app源码,Aandroid动态切换主题色

    一对一直播app源码,Aandroid动态切换主题色实现的相关代码 点击按钮变量存储切换状态: override fun onClick(v: View?) {when (v?.id) {R.id.b ...

  9. oracle 共享硬盘主从,oracle dataguard主从切换

    前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...

最新文章

  1. 白盒测试之基本路径覆盖测试
  2. 黑客声称盗取微软GitHub账号500GB数据,网友:这些最终都会开源的
  3. 详细说说Transformer (超详细图解,一图胜千言)
  4. 【贪心】【codeforces】651A Joysticks
  5. android地图 demo,Android地图控件之多地图展示
  6. 美团数据平台Kerberos优化实战
  7. 深信服云计算BU专家组组长王佳玮:全融合时代的企业云新架构
  8. 以一定概率执行某段代码(Python实现)
  9. 快速定位iOS线上BUG在哪个控制器崩溃
  10. 进展-Silverlight5、 windows phone 7、pc 三栖引擎,2D核心已完成
  11. python运维开发实战
  12. Linux 镜像文件下载
  13. 如何安装仿宋GB2312字体
  14. SQLmap————10、sqlmap详细命令
  15. 服务器审计资质证书,利用ACS服务器实现用户的认证、授权和审计
  16. FX:{6630f2d7-bd52-4072-bfa7-863f3d0c5da0}
  17. OpenCV简单实现PhotoShop图层混合
  18. 腾讯云运维工程师认证TCA原题(含解析)
  19. php lumen timestamp,一次 lumen 调优的记录
  20. DBeaver与excel

热门文章

  1. rhythmbox的电台
  2. Lab5 Cache Lab
  3. 【图像加密】基于matlab GUI Logistic+Tent+Kent+Henon图像加密与解密【含Matlab源码 1745期】
  4. 免费音频录制及处理软件 Audacity
  5. 2023-5-16第十六天
  6. CentOS7+Apache+PHP7.2+Mariadb环境下安装Snipe-IT资产管理系统
  7. LeetCode题解(1846):减小和重新排列数组后的最大元素(Python)
  8. C盘重装还能恢复以前文件嘛,重装C盘数据备份清单
  9. Redis删除key
  10. 符号(void *)何解?符号(void **)又何解??