首页 > 数据库 >Oracle 11g dg switchover切换操作流程

Oracle 11g dg switchover切换操作流程

时间:2024-07-10 21:42:36浏览次数:9  
标签:switchover SWITCHOVER 11g name DATABASE dg status SQL col

主库切换为物理备库

  1. 查看主库的状态

--获取/确认主库的状态信息以及保护模式

SQL> set linesize 720
SQL> col name for a10
SQL> col open_mode for a10
SQL> col database_role for a14
SQL> col switchover_status for a16
SQL> col force_logging for a8
SQL> col guard_status for a8
SQL> select name
  2        ,open_mode
  3        ,database_role
  4        ,protection_mode
  5        ,protection_level
  6        ,switchover_status 
  7        ,force_logging
  8        ,dataguard_broker
  9        ,guard_status
 10  from v$database;

NAME       OPEN_MODE  DATABASE_ROLE  PROTECTION_MODE      PROTECTION_LEVEL     SWITCHOVER_STATU FORCE_LO DATAGUAR GUARD_ST
---------- ---------- -------------- -------------------- -------------------- ---------------- -------- -------- --------
GSP        READ WRITE PRIMARY        MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE  TO STANDBY       YES      DISABLED NONE

注意事项,检查SWITCHOVER_STATUS字段,如果值为"SESSION ACTIVE"或者"TO STANDBY", 则主数据库角色可以切换为备库角色。 如果字段SWITCHOVER_STATUS是其它值的情况下,则不能切换,具体参考文档dg_parameter_summary.md。这里略过。

  1. 主库切换到备库
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

如果上一步的SWITCH_STATUS字段值为"TO STANDBY",则 WITH SESSION SHUTDOWN 可以省略。如果SWITCHOVER_STATUS字段值为"SESSION ACTIVE" 的话,则必须加上[WITH SESSION SHUTDOWN]。

在执行上面命名前,在SecureCRT或Putty中打开另外一个窗口,观察告警日志的输出信息,以便观察详细输出信息。

$ tail -60f alert_<ORACLE_SID>.log
  1. 数据库启动到MOUNT状态
SQL> SELECT STATUS FROM V$INSTANCE;
SQL> STARTUP MOUNT;

备库切换为主库

  1. 查看备库的状态
SQL> set linesize 720
SQL> col name for a10
SQL> col open_mode for a10
SQL> col database_role for a14
SQL> col switchover_status for a16
SQL> col force_logging for a8
SQL> col guard_status for a8
SQL> select name
  2        ,open_mode
  3        ,database_role
  4        ,protection_mode
  5        ,protection_level
  6        ,switchover_status 
  7        ,force_logging
  8        ,dataguard_broker
  9        ,guard_status
 10  from v$database;

NAME       OPEN_MODE  DATABASE_ROLE  PROTECTION_MODE      PROTECTION_LEVEL     SWITCHOVER_STATU FORCE_LO DATAGUAR GUARD_ST
---------- ---------- -------------- -------------------- -------------------- ---------------- -------- -------- --------
GSP        READ ONLY  PHYSICAL STAND MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE  TO PRIMARY       YES      DISABLED NONE
           WITH APPLY BY

需要检查SWITCH_STATUS字段的值,如果值为"SESSION ACTIVE"或"TO PRIMARY",则备库可以切换为主库。

  1. 切换到主库
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

注意:如果上一步的SWITCH_STATUS参数值为"TO PRIMARY",则 WITH SESSION SHUTDOWN 可以省略。

  1. 将数据库OPEN
SQL> ALTER DATABASE OPEN ;
SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;

新的备库开启日志应用

SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

其实,这里的方法也适用于Oracle 12/19c多租户环境,如果是多租户环境,则可以按下面命令实施。

SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MOUNTED
         3 GSPPROD                        MOUNTED
SQL> ALTER DATABASE OPEN;

Database altered.

SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 GSPPROD                        MOUNTED
SQL> ALTER PLUGGABLE DATABASE ALL OPEN;

Pluggable database altered.

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

Database altered.

检查主备的状态

主备库执行:

set linesize 720
col name for a10
col open_mode for a20
col database_role for a16
col switchover_status for a12 heading "SWITCHOVER |STATUS"
col force_logging for a8
col dataguard_broker for a8 heading "DATAGUARD|BROKER"
col guard_status for a8
select name
      ,open_mode
      ,database_role
      ,protection_mode
      ,protection_level
      ,switchover_status 
      ,force_logging
      ,dataguard_broker
      ,guard_status
from v$database;

备库执行SQL,检查同步状态

set linesize 720;
col name for a24;
col source_db_unique_name for a16;
col value for a16;
col unit for a20;
col time_computed for a19;
col datum_time for a19;
select source_db_unique_name
     , name
     , value
     , unit
     , time_computed 
     , datum_time
from v$dataguard_stats;

最好还做一下数据同步的验证,例如在主库创建一个表,插入几条数据,验证数据库是否同步到测试环境。

SQL> create table test(id number, name varchar2(16));

Table created.

SQL> insert into test
  2  select 1001,'kerry1' from dual union all
  3  select 1002,'kerry2' from dual;

2 rows created.

SQL> commit;

Commit complete.

SQL> 

总结

这里的操作步骤是在参数配置正确的情况下的操作步骤,无需去验证参数是否正确。如果有些参数配置不正确,那么在切换过程中可能会遇到各种问题。

标签:switchover,SWITCHOVER,11g,name,DATABASE,dg,status,SQL,col
From: https://www.cnblogs.com/kerrycode/p/18295075

相关文章

  • CDGA|数据治理:如何建立健全数据伦理和隐私保护机制?
    随着数字化时代的到来,数据已成为推动社会进步和企业发展的重要资源。然而,随之而来的数据伦理和隐私保护问题也日益凸显。建立健全的数据治理体系,特别是强化数据伦理和隐私保护机制,已成为当务之急。数据治理的重要性数据治理是指对数据资产进行管理和控制的一系列活动和过程......
  • CDGA|数据治理:构建高质量数据要素供给体系的核心在于畅通流通渠道
    随着数字化时代的到来,数据已经成为驱动经济社会发展的核心要素。数据治理作为确保数据质量、保障数据安全、促进数据价值实现的重要手段,其重要性日益凸显。在数据治理的众多环节中,构建高质量数据要素供给体系尤为关键,而该体系的核心则在于畅通高质量数据要素的流通渠道。高质......
  • CDGA|数据治理:突破“采集难、应用难”的困境
    随着数字化时代的来临,数据已成为企业最宝贵的资产之一。然而,如何有效地采集和应用这些数据,却成为众多企业面临的一大挑战。数据治理作为一种全面的数据管理框架,为解决数据采集难、应用难等问题提供了有效途径。数据采集难的挑战数据采集是数据治理的首要环节,但往往面临着数......
  • go并发模式 or-do-channel + bridge
    packagemainimport("context""fmt")//orDonefuncorDone(ctxcontext.Context,value<-chanint)<-chanint{ordoneStream:=make(chanint)gofunc(){deferclose(ordoneStream)for{......
  • Qt:10.显示类控件(QLabel-显示文本或图像的控件、QLCDNumber -显示数字的特殊控件、QPr
    目录一、QLabel-显示文本或图像的控件:1.1QLabel介绍:1.2设置文本格式——textFormat属性:1.3设置图片——pixmap属性:1.4自动缩放——scaledContents属性:拓展:resizeEvent方法:1.5内容对齐方式——alignment属性:1.6自动换行——wordWrap属性:1.7 文本缩进——indent属性......
  • 全网最全EdgeMesh Q&A手册
    https://zhuanlan.zhihu.com/p/585749690   全网最全EdgeMeshQ&A手册转载请注明出处本人信息如下,有任何问题请联系我:github链接:Poorunga-Overview邮箱:[email protected]前言重要的事情1说三遍:定位问题前先看edgemesh-agent日志!定位问题前先看edgemesh-agent日志!定位......
  • 【论文阅读笔记】【OCR-End2End】 Bridging the Gap Between End-to-End and Two-Step
    BridgeTextSpottingCVPR2024读论文思考的问题论文试图解决什么问题?问题:如何在保证模块化的前提下,更好地解决两阶段场景文本检测方法中的误差累积问题?背景:端到端的场景文本检测识别模型在新场景应用、更换检测器等情况下需要花费大量的时间训练两阶段模型虽然......
  • windows版Oracle11g安装记录
    一、下载Oracle 11g数据库安装包已上传至博客园文件中二、安装Oracle11g下载下来是下图这样的两个压缩包:1、解压这两个压缩包到同一个文件夹(切记路径文件不可有中文、空格和不规则字符。):2、将解压好的win64_11gR2_database_2of2\database\stage\Components下的所有文件拷......
  • "No Directionality widget found." 在使用cupertino的时候出现了这个问题
    在使用cupertino的时候出现了这个问题,不过使用其他组件库也是类似的原代码:import'package:flutter/cupertino.dart';voidmain()=>runApp(constCupertinoTestRoute());classCupertinoTestRouteextendsStatelessWidget{constCupertinoTestRoute({Key?key}):s......
  • 前端学习-flutter学习-003-Widget 简介
    学习链接什么是widget描述UI元素的配置信息Widget类本身是一个抽象类,其中最核心的就是定义了createElement()接口,在Flutter开发中,我们一般都不用直接继承Widget类来实现一个新组件,相反,我们通常会通过继承StatelessWidget或StatefulWidget来间接继承widget类来实现。Stateless......