oracle主备切换参考

主备正常切换操作参考:RAC两节点->单机

(rac和单机的操作区别:就是关闭其它节点,剩一个节点操作即可) 

1.主库准备

检查状态

SQL> select inst_id,database_role,OPEN_MODE from  gv$database;

   INST_ID DATABASE_ROLE    OPEN_MODE

---------- ---------------- --------------------

         2 PRIMARY          READ WRITE

         1 PRIMARY          READ WRITE

停掉一个实例:

[oracle@tyzfdb02 ~]$ srvctl stop instance -d tyzfdb -i tyzfdb2

SQL> select inst_id,database_role,OPEN_MODE from  gv$database;

   INST_ID DATABASE_ROLE    OPEN_MODE

---------- ---------------- --------------------

         1 PRIMARY          READ WRITE

2.备库准备

SQL> select inst_id,database_role,OPEN_MODE from  gv$database;

   INST_ID DATABASE_ROLE    OPEN_MODE

---------- ---------------- --------------------

         1 PHYSICAL STANDBY READ ONLY WITH APPLY

--取消备库日志应用: --可选

--SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

--继续应用日志: --可选

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

3.主库切换日志:

主库切换日志,观察备库alert是否正常同步

--主库

SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

4.备库确认同步正常

[oracle@adg trace]$ tail -f alert_tyzfdb.log

Tue Jun 25 15:35:27 2013

Media Recovery Waiting for thread 2 sequence 1630 (in transit)

Recovery of Online Redo Log: Thread 2 Group 72 Seq 1630 Reading mem 0

  Mem# 0: +DATA/tyzfdb_adg/onlinelog/group_72.1575.818724653

Tue Jun 25 15:35:30 2013

Archived Log entry 4890 added for thread 2 sequence 1629 ID 0x3545ffea dest 1:

上述信息Recovery of Online表示主备日志传输应用正常

5.主库切换

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

--------------------

TO STANDBY

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

6.备库切换

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

--------------------

TO PRIMARY

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

SQL> ALTER DATABASE OPEN;

SQL> select inst_id,database_role,OPEN_MODE from  gv$database;

7.继续处理主库变成备库:

SQL> shutdown immediate

ORA-01092: ORACLE instance terminated. Disconnection forced

SQL> exit

[oracle@tyzfdb01 ogg]$ sqlplus / as sysdba

SQL> startup mount

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

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE cancel;

SQL> alter database open;

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

8.主库启动节点2

[oracle@tyzfdb01 ~]$ srvctl start instance -d tyzfdb -i tyzfdb2

9.相关参考:

Performing Role Transitions Using Old Syntax
11G RAC TO 11G RAC ADG SWITCHOVER
19c ADG Switchover 切换测试 - AlfredZhao - 博客园
一条命令进行19C ADG主备切换 - 墨天轮

19c adg参考:

环境未配置DG Broker,手工切换ADG,19c也要比11g时代的切换更简单。
使用自己的测试环境,具体可参见: 
单实例Primary快速搭建Standby RAC参考手册(19.16 ADG)

1.主库demo切换到RAC环境demorac:

在主库demo执行命令:

SQL>

alter database switchover to demorac verify;

alter database switchover to demorac;

执行命令之后,原主库demo将会关闭,原备库demorac会重新启动到mount状态,且变成新主库角色;

此时需要手工在新主库demorac上执行命令:

SQL>

alter database open;

打开数据库。

然后手工将原主库demo进行startup,承担新备库角色,并开启实时应用:

SQL>

startup

recover managed standby database disconnect;

注意:19c ADG 在未配置DG Broker的情况下,也很简单实现了主备角色互换,只需手工处理下开库的动作。
此外,与11g ADG不同,现在MRP进程默认就是开启实时应用(前提是准备工作做好),也就是说:

备库MRP实时开启默认无需指定 using current logfile 关键字。
默认即是,如果不想实时,指定 
using archived logfile 关键字。

2.主库demorac切换回单实例环境demo:

主要就是指向的db_unique_name更改,其他操作都一样。

在主库demorac执行命令:

SQL>

alter database switchover to demo verify;

alter database switchover to demo;

执行命令之后,原主库demorac将会关闭,原备库demo会重新启动到mount状态,且变成新主库角色;

此时需要手工在新主库demo上执行命令:

SQL>

alter database open;

打开数据库。

然后手工将原主库demorac进行startup,承担新备库角色,并开启实时应用:

[oracle@db01rac1 ~]$

srvctl start database -d demorac

SQL>recover managed standby database disconnect;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/83549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

端到端自动驾驶系统实战指南:从Comma.ai架构到PyTorch部署

引言:端到端自动驾驶的技术革命 在自动驾驶技术演进历程中,端到端(End-to-End)架构正引领新一轮技术革命。不同于传统分模块处理感知、规划、控制的方案,端到端系统通过深度神经网络直接建立传感器原始数据到车辆控制…

使用 Kotlin 和 Jetpack Compose 开发 Wear OS 应用的完整指南

环境配置与项目搭建 1. Gradle 依赖配置 // build.gradle (Module) android {buildFeatures {compose true}composeOptions {kotlinCompilerExtensionVersion "1.5.3"} }dependencies {def wear_compose_version "1.2.0"implementation "androidx.…

应用层协议简介:以 HTTP 和 MQTT 为例

文章目录 应用层协议简介:什么是应用层协议?为什么需要应用层协议?什么是应用层协议?为什么需要应用层协议? HTTP 协议详解HTTP 协议特点HTTP 工作的基本原理HTTP 请求与响应示例为什么 Web 应用基于 HTTP 请求&#x…

Kafka快速安装与使用

引言 这篇文章是一篇Ubuntu(Linux)环境下的Kafka安装与使用教程,通过本文,你可以非常快速搭建一个kafka的小单元进行日常开发与调测。 安装步骤 下载与解压安装 首先我们需要下载一下Kafka,这里笔者采用wget指令: wget https:…

PD 分离推理的加速大招,百度智能云网络基础设施和通信组件的优化实践

为了适应 PD 分离式推理部署架构,百度智能云从物理网络层面的「4us 端到端低时延」HPN 集群建设,到网络流量层面的设备配置和管理,再到通信组件和算子层面的优化,显著提升了上层推理服务的整体性能。 百度智能云在大规模 PD 分离…

flutter Stream 有哪两种订阅模式。

Flutter 中的 Stream 有两种订阅模式: ​单订阅模式 (Single Subscription)​​ 只能有一个订阅者(listen 只能调用一次),后续调用会抛出异常。数据仅在订阅后开始传递,适用于点对点通信场景(如文件读取流…

Python爬虫实战:研究JavaScript 环境补全逆向解密

1. 引言 1.1 研究背景与意义 随着互联网的快速发展,大量有价值的数据被发布在各种网站上。然而,为了保护数据安全和商业利益,许多网站采用了 JavaScript 加密技术对敏感数据进行保护。这些加密技术使得传统的爬虫技术难以直接获取和解析数据,给数据采集工作带来了巨大挑战…

[system-design] ByteByteGo_Note Summary

目录 通信协议 REST API 与 GraphQL gRPC 如何工作? 什么是Webhook? 如何提高应用程序接口的性能? HTTP 1.0 -> HTTP 1.1 -> HTTP 2.0 -> HTTP 3.0 (QUIC) SOAP vs REST vs GraphQL vs RPC 代码优先与应用程序接口优先 HTT…

Linux中的进程

进程控制 fork 函数 fork 函数从已存在的进程中创建新的进程,已存在进程为父进程,新创建进程为子进程 fork 的常规用法 一个父进程希望复制自己,使父子进程同时执行不同的代码段。例如,父进程等待客户端请求,生成子…

EDR与XDR如何选择适合您的网络安全解决方案

1. 什么是EDR? 端点检测与响应(EDR) 专注于保护端点设备(如电脑、服务器、移动设备)。通过在端点安装代理软件,EDR实时监控设备活动,检测威胁并快速响应。 EDR核心功能 实时监控:…

AGI大模型(21):混合检索之混合搜索

为了执行混合搜索,我们结合了 BM25 和密集检索的结果。每种方法的分数均经过标准化和加权以获得最佳总体结果 1 代码 先编写 BM25搜索的代码,再编写密集检索的代码,最后进行混合。 from rank_bm25 import BM25Okapi from nltk.tokenize import word_tokenize import jieb…

2025最新的软件测试面试大全(含答案+文档)

一、软件测试基础面试题 1、阐述软件生命周期都有哪些阶段? 常见的软件生命周期模型有哪些? 软件生命周期是指一个计算机软件从功能确定设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直到停止该软件的使用的全过程(从酝酿到…

C++.神经网络与深度学习(二次修改)

神经网络与深度学习 1. 神经网络基础1.1 神经元模型与激活函数1.2 神经网络结构与前向传播2.1 损失函数与优化算法均方误差损失函数交叉熵损失函数梯度下降优化算法2.2 反向传播与梯度计算神经元的反向传播3.1 神经元类设计与实现神经元类代码实现代码思路3.2 神经网络类构建神…

FPGA图像处理(六)------ 图像腐蚀and图像膨胀

默认迭代次数为1,只进行一次腐蚀、膨胀 一、图像腐蚀 1.相关定义 2.图像腐蚀效果图 3.fpga实现 彩色图像灰度化,灰度图像二值化,图像缓存生成滤波模块(3*3),图像腐蚀算法 timescale 1ns / 1ps // // Des…

中国版Cursor:CodeBuddy腾讯云代码助手使用体验

我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴” 1.CodeBuddy简介 腾讯云代码助手CodeBuddy,这个是一款编程插件,我们可以在各个编程…

Go语言 GORM框架 使用指南

在 Go 语言社区中,数据库交互一直是开发者们关注的重点领域,不同开发者基于自身的需求和偏好,形成了两种主要的技术选型流派。一部分开发者钟情于像sqlx这类简洁的库,尽管其功能并非一应俱全,但它赋予开发者对 SQL 语句…

从零开始学习three.js(18):一文详解three.js中的着色器Shader

在WebGL和Three.js的3D图形渲染中,着色器(Shader) 是实现复杂视觉效果的核心工具。通过编写自定义的着色器代码,开发者可以直接操作GPU,实现从基础颜色渲染到动态光照、粒子效果等高级图形技术。本文将深入解析Three.j…

Python函数库调用实战:以数据分析为例

一、引言 Python之所以在编程领域广受欢迎,很大程度上得益于其丰富且强大的函数库。这些函数库涵盖了从数据分析、科学计算到Web开发、机器学习等众多领域,极大地提高了开发效率。本文将以数据分析为例,介绍如何调用Python的一些常用函数库。…

shell脚本之条件判断,循环控制,exit详解

if条件语句的语法及案例 一、基本语法结构 1. 单条件判断 if [ 条件 ]; then命令1命令2... fi2. 双分支(if-else) if [ 条件 ]; then条件为真时执行的命令 else条件为假时执行的命令 fi3. 多分支(if-elif-else) if [ 条件1 ]…

现代 Web 自动化测试框架对比:Playwright 与 Selenium 的深度剖析

现代 Web 自动化测试框架对比:Playwright 与 Selenium 的深度剖析 摘要:本文对 Playwright 与 Selenium 在开发适配性、使用难度、场景适用性及性能表现等方面进行了全面深入的对比分析。通过详细的技术实现细节阐述与实测数据支撑,为开发者…