DG切换迁移Switch over切换文档

本篇文档,整体结构:
1.切换前检查确认
2.DG切换角色操作
3.切换后检查确认

目录:
一、切换前检查确认
1.数据库版本
2.DG架构,IP信息及切换角色前后
3.DG切换方式,switch over or fail over
4.DG迁移是否需要修改vip and scan or service_name ........(本质考虑是切换后应用的连接方式)
5.DG连通性,是否正常,主库switch_status is to standby database
6.DG相关参数,及切换后准备参数修改脚本
7.DG备库的数据文件路径
8.检查DG备库的口令文件,参数文件,sqlnet.ora配置文件是否正常
9.备库监听配置文件,切换后tnsnames.ora配置提前配置
10.crontab操作系统定时任务是否迁移

二、DG切换角色操作
1.观察主备延迟确认连通性OK
2.原主库切换角色被备库
3.将指定的备库切换为新主库
4.如果存在VIP修改,进行相关操作
5.如果存在crontab,可以进行迁移或者注释解除

三、切换后检查确认
1.新主库修改远程归档参数,传输归档至新的备库
2.新备库修改相关参数,接受并应用新的主库远程归档参数
3.确认DG连通性

一、切换前检查确认
1.数据库版本
SQL>sqlplus / as sysdba

2.DG架构,IP信息及切换角色前后
$cat /etc/hosts
SQL> show parameter log_archive_config
SQL> show parameter archive
$tnsping tnsnames_name
SQL> select dbid,name, database_role,open_mode,SWITCHOVER_STATUS,PROTECTION_MODE,FORCE_LOGGING from v$database;

3.DG切换方式,switch over or fail over
switch over

4.DG迁移是否需要修改vip and scan or service_name ........(本质考虑是切换后应用的连接方式)
否,应用修改连接IP,service_name也无需修改,应用程序修改连接数据库方式

5.DG连通性,是否正常,主库switch_status is to standby database
primary
SQL> select thread#,sequence# from v$log where status='CURRENT';
standby
SQL> select DEST_ID,THREAD#,max(SEQUENCE#) from v$archived_log where APPLIED='YES' group by DEST_ID,THREAD#;
primary
SQL> alter system archive log current;
standby
SQL> select DEST_ID,THREAD#,max(SEQUENCE#) from v$archived_log where APPLIED='YES' group by DEST_ID,THREAD#;
SQL> select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby;
SQL> select name from v$archived_log where (thread#,sequence#) in (select THREAD#,max(SEQUENCE#) from v$archived_log where dest_id=1 group by thread#);

6.DG相关参数,及切换后准备参数修改脚本
SQL> show parameter archive
log_archive_config
log_archive_dest_1 ......
log_archive_dest_state_1 ......
SQL> show parameter fal
fal_client
fal_server
SQL> show parameter convert
db_file_name_convert
log_file_name_convert
SQL> show parameter manage
standby_file_management【AUTO】
SQL> show parameter pass
remote_login_passwordfile【EXCLUSIVE】

7.主备文件路径
SQL> select name from v$datafile union select name from v$datafile;
SQL> select member from v$logfile;

8.检查DG备库的口令文件,参数文件,sqlnet.ora配置文件是否正常
--sqlnet.ora 检测,与主库一致,无需修改
--[oracle@cjptdb2 admin]$ cat sqlnet.ora
-#SQLNET.ALLOWED_LOGON_VERSION=8
-SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
-SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
口令文件主库scp
参数文件,切换后为新的主库RAC,需要关注RAC参数:
---*.cluster_database=true
---*.compatible='12.2.0'
---xxx1.instance_number=1
---xxx2.instance_number=2
---xxx1.thread=1
---xxx2.thread=2
---xxx1.undo_tablespace='UNDOTBS1'
---xxx2.undo_tablespace='UNDOTBS2'

9.备库监听配置文件,切换后tnsnames.ora配置提前配置
提前准备修改

10.crontab操作系统定时任务是否迁移
$crontab -l

二、DG切换角色操作
1.观察主备延迟确认连通性OK
SQL> select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag');
SQL> select database_role,switchover_status from v$database;
SQL>alter system checkpoint global;

2.原主库切换角色被备库
1) TO STANDBY 状态主库切换到备库:
SQL>alter database commit to switchover to physical standby;

2) SESSION ACTIVE 状态主库切换到备库:
SQL>alter database commit to switchover to physical standby with session shutdown;

3.将指定的备库切换为新主库
备库确认是否为可切换状态(TO PRIMARY 或 SESSION ACTIVE状态可切换):
select database_role,switchover_status from v$database;
1) TO PRIMARY 状态备库切换到主库:
alter database commit to switchover to primmary;
alter database open;
2) SESSIONN ACTIVE 状态备库切换到主库:
alter database commit to switchover to primary with session shutdown;
alter database open;

4.如果存在VIP修改,进行相关操作
5.如果存在crontab,可以进行迁移或者注释解除

三、切换后检查确认
1.新主库修改远程归档参数,传输归档至新的备库
SQL>alter system set log_archive_dest_2='SERVICE=cjptdb1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=cjptdb';
检查归档线程状态
log_archive_dest_state_2 enable

2.新备库修改相关参数,接受并应用新的主库远程归档参数
SQL>alter system set db_file_name_convert='+DATA/DATAFILE/','/u01/oradata/','+DATA/TEMPFILE/','/u01/oradata/' scope=spfile;
SQL>alter system set log_file_name_convert='CJPTDG','CJPTDB' scope=spfile;

观察告警日志、备库 v$archived_log 视图、主库 archive log list信息,确定日志能在备库应用。
SQL>alter database recover managed standby database disconnect from session;

3.确认DG连通性
SQL>select * from v$archive_gap;
SQL>select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag');
SQL>select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby;
SQL>set linesize 200
SQL>col dest_name for a40
SQL>select DEST_NAME , STATUS , RECOVERY_MODE from v$archive_dest_status;
SQL>select dest_id,error from v$archive_dest;

primary
SQL> select thread#,sequence# from v$log where status='CURRENT';
standby
SQL> select DEST_ID,THREAD#,max(SEQUENCE#) from v$archived_log where APPLIED='YES' group by DEST_ID,THREAD#;
primary
SQL> alter system archive log current;
standby
SQL> select DEST_ID,THREAD#,max(SEQUENCE#) from v$archived_log where APPLIED='YES' group by DEST_ID,THREAD#;
SQL> select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby;
SQL> select name from v$archived_log where (thread#,sequence#) in (select THREAD#,max(SEQUENCE#) from v$archived_log where dest_id=1 group by thread#);

DG Switch over的更多相关文章

  1. ORACLE Physical Standby DG 之switch over

    DG架构图如下: 计划,切换之后的架构图: DG切换: 主备切换:这里所有的数据库数据文件.日志文件的路径是一致的 [旧主库]主库primarydb切换为备库standby3主库检查switchove ...

  2. DG gap sequence修复一例

    环境:Oracle 11.2.0.4 DG 故障现象: 客户在备库告警日志中发现GAP sequence提示信息: Mon Nov 21 09:53:29 2016 Media Recovery Wa ...

  3. oracle DG 主备切换语句整理

    今日花了一下午时间进行了Oracle DataGuard的切换练习,参考了网上好多文章,最后将一些语句进行摘录,以备以后查询使用.之后有时间会带来Oracle DG的搭建和切换全过程文章. DataG ...

  4. Deploy 11.2.0.3 RAC+DG on Windows 2008 R2 Step by Step

    环境规划: 节点1: tc1 192.168.56.101 内存:2G 节点2: tc2 192.168.56.102 内存:2G 物理备库:tcdg192.168.56.108内存:1.5G 操作系 ...

  5. 试DG周围环境

    试DG周围环境 周围环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g 11.2.0.1 RedHat Enterpri ...

  6. 【DG】[三思笔记]一步一步学DataGuard

    [DG][三思笔记]一步一步学DataGuard 它有无数个名字,有人叫它dg,有人叫它数据卫士,有人叫它data guard,在oracle的各项特性中它有着举足轻理的地位,它就是(掌声)..... ...

  7. 【DG】Oracle_Data_Guard官方直译

    [DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍   Oracle Data Guard概念和管理10g版本2   Oracle Data Guard ...

  8. ARCH和LGWR进程同步DG日志的区别

    ARCH和LGWR进程同步DG日志的区别 我在做Standby RAC实验时,起初使用的是ARCH传输,后来将其改为LGWR传输(实际是LGWR分出的小工进程LNS): --之前的设置 alter s ...

  9. Oracle DG测试failover和后续恢复报告

    Oracle DG测试failover和后续恢复报告 一.概述 二.验证过程: 2.1 A库异常关闭 2.2 B库进行failover切换为新主库 2.3 要求C库成为新主库的备库 2.4 要求A库成 ...

随机推荐

  1. angular学习笔记(3)

    一.angular的核心 1.组件 2.指令 3.服务 4.依赖注入

  2. Spring Boot Actuator [监控与管理]

    1. 如何添加 2. actuator 的原生端点(API) 2.1 应用类配置 2.1.1 http://localhost:8080/actuator/conditions 2.1.2 http: ...

  3. Linux中文件夹访问权限不足

    经常操作Linux服务器,远程访问会遇到403问题,本篇讲述nginx下文件权限的修改. 1.命令修改该文件夹的权限 chmod -R 755 /usr/local/....   文件夹的路径 2.修 ...

  4. Python OS模块常用

    python 读写.创建 文件 第二个:目录操作-增删改查 第三个:判断 第四个:PATH 第四个:os.mknod 创建文件(不是目录) import os os.chdir("/&quo ...

  5. laravel使用 面向对象的方式绑定多对多的关系

    创建model文件,并且一起创建migration文件: php   artisan  make:model Habit  -m 创建多对多的中间表的方法: php artisan make:migr ...

  6. Angular2 使用CLI创建新项目

    1.安装node.js: 2. npm install -g @angular/cli 3.ng new projectName 4.ng serve PS:如果要使用moduleId,需先在src目 ...

  7. Tomcat并发优化和缓存优化

    Tomcat并发优化 1.调整连接器connector的并发处理能力 在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中 1.参数说明 max ...

  8. Android Studio修改apk打包生成名称

    在app的build.gradle文件的android{}括号里添加: android.applicationVariants.all { variant -> variant.outputs. ...

  9. SpringBoot配置ActiveMQ

    1.添加依赖 <!-- activeMQ --> <dependency> <groupId>org.springframework.boot</groupI ...

  10. python中文件读写

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...