最大性能模式DATAGUARD 搭建 及SWITCH-阿里云开发者社区

开发者社区> 数据库> 正文

最大性能模式DATAGUARD 搭建 及SWITCH

简介: 原创 转载请注明出处 一、目标: 建立ORACLE DATAGUARD最大性能模式,能够在主库出现故障或者某些突发事件的情况下,进行平滑的切换,现将以团险的生产环境为列进行描述,主要描述搭建过程和切换过程。

原创 转载请注明出处

一、目标:

建立ORACLE DATAGUARD最大性能模式,能够在主库出现故障或者某些突发事件的情况下,进行平滑的切换,现将以团险的生产环境为列进行描述,主要描述搭建过程和切换过程。

 

二、规划:
主库:

IP192.168.8.19

端口:1522

DB_NAMEGBIMSPRO

DB_UNIQUE_NAMEGBIMSSH

TNSNAMEGBIMSCQ

备库:

IP192.168.31.130

端口:1521

DB_NAMEGBIMSPRO

DB_UNIQUE_NAMEGBIMSCQ

TNSNAMEGBIMSSH

 

三、配置

配置图

 

主库

1、  /oradata目录下新建目录oragims用来存在新数据库的数据文件,控制文件等文件。

2、  准备主库的参数DB_NAME,用DBCA以主库的DB_NAME参数来建立数据库,建立初始化实例。

3、  创建PFILEshutdown 数据库

4、  进行参数设置

主要设置的参数如下:

DB_UNIQUE_NAME:用来区分在DG环境中不同的数据库

LOG_ARCHIVE_CONFIG:用来说明DG环境中所有的数据库

LOG_ARCHIVE_DEST_1:一般用来设置为主库本地归档和备库接收远程归档的位置

LOG_ARCHIVE_DEST_2:一般用来设置为进行主库到备库传输的方式(主库必须)

LOG_ARCHIVE_DEST_STATE_n:用来指定LOG_ARCHIVE_DEST_n的状态

STANDBY_FILE_MANAGEMENT:设置为AUTO用来指定当主库增加数据文件的时候备库也同时增加。

ARCHIVE_LAG_TARGET:用来指定日志必须在指定的秒数切换。(主库必须)

FAL_SERVER:用来指定出现GAP的时候重哪里取归档日志。(备库可选)

FAL_CLENT:用来制动把GAP发送到哪里。(备库可选)

所以这里设置如下:

*.DB_UNIQUE_NAME='gbimssh'

*.log_archive_config='DG_CONFIG=(gbimssh,gbimscq)'

*.log_archive_dest_1='location=/home/oracle/archive_log VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=gbimssh'

*.log_archive_dest_2='service=gbimscq  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=gbimscq'

*.log_archive_dest_state_1='enable'

*.log_archive_dest_state_2='enable'

*.STANDBY_FILE_MANAGEMENT='AUTO'

*.FAL_SERVER=gbimscq

*.FAL_CLIENT=gbimssh

5、  启动主库并且使用ALTER DATABASE FORCE LOGGING来强制归档

6、  使用RMAN 进行全备份

7、  使用ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/boston.ctl';来创建备控制文件

备库

8、  /oradata目录下新建目录oragims用来存在新数据库的数据文件,控制文件等文件。

9、  准备备库的参数DB_NAME,用DBCA以备库的DB_NAME参数建立数据库,建立初始化实例。

10、                      创建PFILEshutdown 数据库

11、                      删除备库中所有的数据文件控制文件

12、                      通过FTP传递RMAN备份集和备控制文件到备库中,目录要和主库相同。

13、                      修改PFILE,为备库配置参数

设置如下:

*.DB_UNIQUE_NAME='gbimscq'

*.log_archive_config='DG_CONFIG=(gbimssh,gbimscq)'

*.log_archive_dest_1='location=/home/oracle/archive_log VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=gbimscq'

*.log_archive_dest_2='service=gbimssh  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=gbimssh'

*.log_archive_dest_state_1='enable'

*.log_archive_dest_state_2='enable'

*.STANDBY_FILE_MANAGEMENT='AUTO'

*.FAL_SERVER=gbimssh

*.FAL_CLIENT=gbimscq

14、                      复制备控制文件为3个,满足initfile中的设置。

15、                      使用INITFILE启动备库到nomount阶段

16、                      使用RMAN TARGET / 来进行恢复数据库使用语句restore database

17、                      配置TNSNAME主库到备库为gbimscq,备库到主库为gbimssh

18、                      重启主备库,主库使用STARTUP 并且使用ALTER DATABASE FORCE LOGGING 来强制归档,备库使用STARTUP MOUNT MOUNT 阶段

19、                      使用ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;来启动日志应用。

验证配置成功:

20、                      在备库查看V$MANAGED_STANDBY视图来确定各个进程。

21、                      在主库查看V$ARCHIVED_LOG来查看归档日志是否应用。

22、                      在备库查看V$ARCHIVE_GAP是否有GAP

23、                      在主库查看V$DATAGUARD_CONFIG来查看所有的库信息

如何启动备库到OPEN状态然后恢复为STANDBY日志应用状态

24、                      首先在备库停止日志应用

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

此时查看备库V$MANAGED_STANDBY发现MRP0日志应用进程已经消失。

25、                      然后可以使用语句打开备库如下

     ALTER DATABASE OPEN;

26、                      关闭所有的会话运行如下语句来进行日志应用

     ALTER DATABASE RECOVER MANAGED STANDBY DATABASE

     DISCONNECT FROM SESSION;

        如果出现不能应用,可以使用SHUTDOWN IMMEDIATE来关闭备库,启动到mount状态,然后再进行日志应用。

 

四、SWITCH

如果参数设置合理我们的STANDBY是可以进行平滑切换的,进行SWITCH的步骤如下:

1、  在主库查看V$DATABASE中的 SWITCHOVER_STATUS字段。

2、  转换主库角色到备库角色使用语句

 ALTER DATABASE COMMIT TO SWITCHOVER TO

 PHYSICAL STANDBY WITH SESSION SHUTDOWN WAIT;

3、  关闭数据库并且启动到MOUNT阶段

 SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

4、在备库查看V$DATABASE中的 SWITCHOVER_STATUS字段,看是否为TO_PRIMARY

5、在备库执行ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY

   来进行角色切换

6、关闭备库,启动备库

   SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP;

7、使用强制归档选项ALTER DATABASE FORCE LOGGING

8、在主库开启日志应用

   ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; 

 

 

 

 

 

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章