oracle取消dataguard,【DataGuard】Oracle DataGuard 数据保护模式切换

Oracle 11g DataGuard 数据保护模式切换

Data Guard 提供三种数据保护模式:最大保护(Maximum Protection),最高可用(Maximum Availability)和 最高性能(Maximum Performance)。

如果按照对数据的保护程度或者说主从库数据的同步性 由低到高排序,三种保护模式的顺序应该是:最高性能、最高可用、最大保护 。

本文通过实验模拟三种数据保护模式进行相互切换六个场景,对比保护模式的升级、切换过程。

【实验图例】

7df4e63ae3504fe6a3a1ef74e87a6f03.png

【实验环境】

操作系统:Red Hat Enterprise Linux Server release 5.4

数据库:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0

【主库、物理备库结构信息】

13c9813534ddd05a0f5dfa5bbb468cfd.png

【实验过程】

①、最高性能 升级 最高可用

(1)查看数据库当前保护模式:最高性能模式

select

database_role,protection_mode,protection_level from v$database;主库 Primary :

47899058c96c29b27999695dc499e3fb.png

物理备库 Physical Standby

38b07e5871c47f2c0bead6cc8265a62a.png

查看日志传输方式

当前在最大性能模式下,日志传输方式为ARCH ASYNC,arch进程异步传输归档的方式。

7155e2bc01f421c1fa66fdf51c78ac47.png

(2)修改主库日志传输模式

要升级为最高通过修改初始化参数文件中远程归档参数,讲日志传输模式改为LGWR SYNC AFIRM,即lgwr进程同步传输redo日志的方式。

vim $ORACLE_HOME/dbs/initBJ.ora

2c271d2acfb1ce4420f3eec45f344e78.png

主库正常关库后开库。

shutdown immediate;

startup;

(3)备库添加standby logfilegroup

首先查看当前日志组个数、大小、文件位置

select sequence#,group#,bytes/1024/1024 MB from v$log;

1342f8edcfd9c62d8c114a612664a1f3.png

select member from v$logfile;

144c7c8b2ff6029c600d2d60374d1335.png

备库要添加4个standby 日志组,比普通日志组多一个。

alter database add standby logfile group 4 '/u02/oradata/sh/redo04.std'

size 50m;

alter database add standby logfile group 5

'/u02/oradata/sh/redo05.std' size 50m;

alter database add standby logfile group 6

'/u02/oradata/sh/redo06.std' size 50m;

alter database add standby logfile group 7 '/u02/oradata/sh/redo07.std'

size 50m;

d6472f9b734fe626c61a3271395c80f9.png

添加完成后查看,standby logfile group 已经添加

b930cbc4bc11f53ef07052f51c321f76.png

(4)切换数据保护模式为最高可用

alter database set standby database

to maximize availability;

dff8ed04d2997f95cb77485650c7122b.png

查看当前主、备库数据保护模式,已经是最高可用模式。

select

database_role,protection_mode,protection_level from v$database;

fe05b33c4bb6f664715c85ef3b3753da.png

2789cce1b9e5c65f1b9485eb5b59efc7.png

②、最高可用 升级 最大保护

(1)查看当前数据库保护模式:最高可用模式

select database_role,protection_mode,protection_level from

v$database;

b7e4951d42ab6189ff2100505420d0ee.png

(2)设置数据库保护模式为最大保护

alter database set standby database

to maximize protection;

查看数据库当前保护模式,已经升级成功:最大保护模式

select

database_role,protection_mode,protection_level from v$database;

485cb4e3bb17ec0d0d621425a608cfdd.png

③、最大保护 转 最高可用 (降级)

查询当前保护模式状态:最大保护模式

设置保护模式为最高可用

再次查询,protection_level 已成功切换为:最高可用模式。

select

database_role,open_mode,protection_mode,protection_level from v$database;

alter database set standby database to maximize availability;

select

database_role,open_mode,protection_mode,protection_level from v$database;

59e6d2e2c1486423f163163a592a1282.png

④、最高可用 转 最高性能 (降级)

查询当前保护模式状态:最高可用模式

设置保护模式为最高性能

再次查询,已成功切换为:最高性能模式。

select database_role,protection_mode,protection_level from

v$database;

alter database set standby database to maximize performance;

select database_role,protection_mode,protection_level from

v$database;

7b5cb013acee85a0d0a1e3aadbc43e61.png

⑤、最高性能 升级 最大保护

查询当前数据库保护模式:最高性能模式

select

database_role,open_mode,protection_mode,protection_level from v$database;

12eb7f8f1e0a011dfcb1031433d6d52f.png

设置数据保护模式为最大保护报错,【ORA-01126】:database must be mounted in this instance and not open in any instance;

要求在mounted状态操作,且任何实例都不能处于open状态。

alter database set standby database to maximize protection;

9be94bec4a96e7d9b772733986fa88b4.png

正常关库,把库起到mount状态

shutdown immediate;

startup mount;

e28590550e1a3d0687e1eb905f825a95.png

在mount状态,设置数据库保护模式,可以切换,因处于mount状态,当先保护模式显示unprotected.

select

database_role,protection_mode,protection_level from v$database;

alter database

open;

b03b4a927fab815ee77d1175d1e9a1d6.png

open状态后再次查看,已成功升级为最大保护模式

80cf87d429efbd3ff70fc69b3b71c6d3.png

⑥、最大保护 转 最高性能 (降级)

查看当前数据库保护模式:最大保护模式

设置数据库保护模式为最高性能

查看已经设置成功,protection_level 已变成最高性能模式。

select database_role,protection_mode,protection_level from

v$database;

alter database set standby database to maximize performance;

select database_role,protection_mode,protection_level from

v$database;

81a44764597d72fdcf33b2f13996e6d8.png

【实验总结】

1、最高性能模式既可以使用ARCH方式传递日志,也可以使用LGWR方式传递,在升级到更高级别保护模式时,需使用LGWR方式,且需要在备库创建standby日志组。

2、三种保护模式进行切换时,最高性能升级到最大保护模式(⑤),需先把数据库重启到mounted状态才能操作。其他情况(①②③④⑥)相互切换时,可以直接进行。

根据实验结论,在生产环境下如果需要从最高性能模式升级为最大保护模式,可先从最高性能模式升级最高可用模式,再由最高可用模式升级为最大保护模式。

如下图,通过①②分步升级的方式代替⑤直接升级,避免了重启到mounted状态对生产环境下业务造成的影响。

da93dad5a42006dca310b6796648fc7d.png

吕星昊

2014.8.9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值