最大性能模式DATAGUARD 搭建 及SWITCH

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 原创 转载请注明出处 一、目标: 建立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; 

 

 

 

 

 

 

 

 

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
DATA GUARD 最大可用性模式优缺点2
在上面的描述种我们可以知道有最大可用性模式有以下几个优点: 1、数据是不会丢失的,最大性能模式可能出现数据丢失 2、在备库出现问题时候,不会影响到主库,最大保护模式如果备库宕机,主库也变为不可用,从而影响了业务的正常运行。
994 0
|
SQL 安全 Java
SQLite切换日志模式优化
SQLite是一款轻型的数据库,SQLite 是一款轻量级数据库,是一个 关系型数据库管理系统,它包含在一个相对小的 C 库中,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它能够支持 Windows/Linux/Unix/Android/iOS 等等主流的操作系统,占用资源非常的低,因此在移动端也SQLIte有多种日志模式(具体见背景知识),在项目的开发迭代中,会遇见原本就版本app使用的SQLite日志模式是旧版默认的rpllback journal,当用户设备存在待恢复的.journal文件,新版本app的SQLite又需要将日志模式切换至wal时有很广泛的应用。
610 0
|
运维 Oracle 安全
Oracle运维笔记之DG主备切换后的细节修改
Oracle运维笔记之DG主备切换后的细节修改
1019 0
Oracle运维笔记之DG主备切换后的细节修改
|
SQL 监控 Go
MSSQL-最佳实践-数据库恢复模式与备份的关系
--- title: MSSQL-最佳实践-数据库恢复模式与备份的关系 author: 风移 --- # 摘要 在SQL Server备份专题分享中,前三期我们分享了三种常见的数据库备份、备份策略的制定以及如何查找备份链。本期我们将分享数据库的三种恢复模式与备份之间的关系,SQL Server的三种数据库恢复模式包括: 简单恢复模式(Simple) 完全恢复模式(Full)
10292 0