Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1113852
  • 博文数量: 350
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 5668
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-23 17:53
文章分类

全部博文(350)

文章存档

2013年(350)

分类: Oracle

2013-04-25 10:28:19

关于有三模同学的光荣事迹大家应该都听说了,有不认识的请自觉重温"名词先混个脸熟"篇,下面让三思就有三模同学的高超本领为大家做个展示。

为了便于大家更好的理解,我们先画一个表,表中描述了不同保护模式下LOG_ARCHIVE_DEST_n参数应该设置属性

最大保护

最高可能用

最高性能

REDO写进程

LGWR

LGWR

LGWR或ARCH

网络传输模式

SYNC

SYNC

LGWR进程时SYNC或ASYNC,ARCH进程时SYNC

磁盘写操作

AFFIRM

AFFIRM

AFFIRM或NOAFFIRM

是否需要standby redologs

YES

YES

可没有但推荐有

提示:

上面中的各项需求都是满足该保护模式的最低需求,这些需求都是据其特性而定的,同时你也一定要理解,这些需求仅只是保证你完成data guard保护模式的设置,如果你真正理解其特性的需求所希望满足的原因,你还需要做不少其它必要的工作。比如对于最高可用性而言,其根本目地是为了在某一台甚至多台主或备库瘫痪时,仍能够在极短时间内恢复服务,这就不仅需要你将最高可用性保护模式的参数配置正确,还需要你拥有足够多的standby数据库。听明白了没?啥,木有?555555555,你在打击俺语言描述的能力~~~

另外再强调一遍:最大保护和最高可用性都要求standby数据库配置standby redo logs(当然如果考虑角色切换的话,主库肯定也是需要配置的),关于standby redo logs的故事你可以参考第二部分的第一章1.3。

下面我们进入实践将一个data guard配置从最高性能模式改为最高可用性模式:

1、首先查看当前的保护模式   ---primary数据库操作

SQL> select protection_mode,protection_level from v$database;

PROTECTION_MODE      PROTECTION_LEVEL

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

MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

2、修改初始化参数    --primary数据库操作

SQL> alter system set log_archive_dest_2='SERVICE=jsspdg

  2  OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

  3  DB_UNIQUE_NAME=jsspdg';

系统已更改。

3、设置新的数据保护模式并重启数据库    --primary数据库操作

语句非常简单,如下:

SQL> alter database set standby database to maximize availability;

数据库已更改。

提示:maximize后可跟{PROTECTION | AVAILABILITY | PERFORMANCE},分别对应最大保护,最高可用性及最高性能。

Down掉数据库,重新启动

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area  167772160 bytes

Fixed Size                  1289484 bytes

Variable Size             121635572 bytes

Database Buffers           37748736 bytes

Redo Buffers                7098368 bytes

数据库装载完毕。

数据库已经打开。

4、看一下当前的保护模式    --primary数据库操作

SQL> select protection_mode,protection_level from v$database;

PROTECTION_MODE      PROTECTION_LEVEL

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

MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

5、修改standby初始化参数设置(主要考虑角色切换,如果只测试的话本步可跳过)   ---standby数据库操作

SQL> alter system set log_archive_dest_2='SERVICE=jssweb OPTIONAL LGWR SYNC AFFIRM

  2  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jssweb';

系统已更改。

查看当前的保护模式

SQL> select instance_name from v$instance;

INSTANCE_NAME

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

jsspdg

SQL> select protection_mode,protection_level from v$database;

PROTECTION_MODE      PROTECTION_LEVEL

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

MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

配置成功,正面顺便再测试一下。

6、停掉standby数据库,再查看primary数据库状态

SQL> select protection_mode,protection_level from v$database;

PROTECTION_MODE      PROTECTION_LEVEL

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

MAXIMUM AVAILABILITY RESYNCHRONIZATION

Standby数据库shutdown后,primary数据库保护级别切换为待同步。

阅读(435) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~