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. Linux下通过vi修改只读文件

    打开一个只读文件 $ vi /etc/crontab 此时会进入crontab的编辑界面,通过按键 ESC 可以进入命令模式,按键 I 进入插入模式 但是!如果此时没有权限进行修改的话,虽然可以插入编 ...

  2. Linux上文件恢复工具

    文件恢复工具extundelete官网:http://extundelete.sourceforge.net/ 使用方法,在页面里找到download,下载源码安装包:extundelete-0.2. ...

  3. 新建项目找不到android studio:appcompat v7:27.+包。

    1.我们在build.gradle(project)中添加maven中的google库: allprojects { repositories { jcenter() maven { url &quo ...

  4. JavaScript instanceof 运算符

    instanceof运算符简介 在 JavaScript 中 判断一个变量的类型常常会用 typeof 运算符 判断一个实例是否属于某种类型会使用instanceof 与 typeof 方法不同的是, ...

  5. json对象转对象

    方式1:var obj = JSON.parse(jsonObject); 方式2:var obj = eval("("+jsonObject+")");

  6. javascript中的自定义属性

    标签的自定义属性: 在开发中,有时需要在标签上添加一些自定义属性用来存储数据或状态. 设置了自定义属性的标签,就是在这个标签上添加了这个属性,浏览器中的html结构中可以看到. 使用点语法(如oWra ...

  7. ubuntu16.04安装anaconda、环境配置

    anaconda默认3.7降级到3.6 conda install python=3.6 anaconda安装后找不到conda命令: 执行测试命令 conda info -e conda: comm ...

  8. Python 的第一个小程序

    F盘   新建文本文档 hello.txt 内容为: print("hello world! hello 2018!"); 打开CMD cd c:\                 ...

  9. using Newtonsoft.Json;

    using Newtonsoft.Json;    //数组转义为json  string result = JsonConvert.SerializeObject(list1);   //josn转 ...

  10. Android四大组件之Service --- 如何启动和停止Service?

    启动和停止方法主要是通过Intent来实现 以上一篇中的ServiceTest项目为例来启动和停止MyService这个服务 首先修改activity_main.xml中的代码,如下所示:<Li ...