首頁 資料庫 mysql教程 关于Oracle Data Guard的角色切换

关于Oracle Data Guard的角色切换

Jun 07, 2016 pm 05:28 PM

Oracle数据库通过其 Data Guard技术通过网络将数据实时异地的Oracle数据库中,实现其数据的异地安全机制。在异地建立一样的环境,

1.概述
 
Oracle数据库通过其 Data Guard技术通过网络将数据实时异地的Oracle数据库中,实现其数据的异地安全机制。
 
它的实现过程是一般是这样:
 
首先,在异地建立一样的环境,包括主机操作系统,数据库版本和数据文件存储方式,先模拟建个库,,后在此库基础上创建physical standby。
 
其次,在主库和备库节点上修改一下init.ora,listener.ora和tnsnames.ora文件配置,及主库的v$database的protection_mode修改为MAXIMUMAVAILABILITY(最大可用)。
 
再次,在主库上备份一下控制文件,当然是for standby方式。
 
最后,在备库上创建一下standby logfile,启动到recover managed standbydatabase 状态;并在主库上将指向该备库的log_archive_dest_state_*做一下defer和enable,即激活一下。
 
这样,整个过程就此完成。
 
好吧,这不是重点。
 
重点是,在DataGuard环境搭建完成后备库能切换吗?如何切换呢?
 
2.主备库相互切换
 
其实,OracleData Guard的切换有两种,其专业术语称为switchover和failover。
 
正常切换switchover的操作步骤简单明了,如下:
 
第一步,关掉主库上的监听,再将主库上的所有连接也关掉。可以直接kill -9 local=no的oracle进程,我就是这么干的。
 
第二步,在主库上将数据库角色设置为PHYSICAL STANDBY,切换状态设置为TO PRIMARY。
 
操作的SQL为:alter database commit to switchover to physical standby;
 
结果检查:
 
SQL>select database_role,switchover_status from v$database;
 
 
 
DATABASE_ROLE    SWITCHOVER_STATUS
 
------------------------------------
 
PHYSICALSTANDBY TO PRIMARY
 
主库已经变成一个standby库了。但该库的切换状态设置是TO PRIMARY,如果你这个时候反悔,就可以再切换回去。
 
切换操作完成后,数据库实例需要重启,init.ora文件需要更换,实例设置为实时恢复状态。
 
操作的SQL为:
 
startupnomount force;
 
alterdatabase mount standby database;
 
alterdatabase recover managed standby database using current logfile disconnect fromsession;
 
第三步,在备库上将数据库角色设置为PRIMARY。
 
操作的SQL为:alter database commit to switchover to primary;
 
结果检查:
 
先检查数据库角色和切换状态,决定备库能不能切换。
 
SQL>select database_role,switchover_status from v$database;
 
 
 
DATABASE_ROLE    SWITCHOVER_STATUS
 
------------------------------------
 
PHYSICALSTANDBY TO PRIMARY
 
 
 
SQL>alter database commit to switchover to primary;
 
Databasealtered.
 
切换操作完成后,数据库实例需要重启,init.ora文件需要更换。
 
SQL>conn / as sysdba
 
Connected.
 
SQL>startup open force;
 
ORACLEinstance started.
 
Databasemounted.
 
Databaseopened.
 
SQL>select database_role,switchover_status from v$database;
 
DATABASE_ROLE    SWITCHOVER_STATUS
 
------------------------------------
 
PRIMARY          TO STANDBY
 
 
 
通过这三步,切换操作就完成了。这个切换操作可以用来做数据迁移。比以前使用RMAN的backup/restore简单多了。更重要的是,它还可以再切换回去。
 
这三步操作,看上去很简单,但是涉及到了主库角色转换的问题。如果在主库的角色转换后,备库因某些原因如硬件不能转换为主库了,又该怎么办?
 
没有了主库,对于任何应用系统都是灾难啊。
 
好吧,我承认,这才是我想说的重点。

linux

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

減少在Docker中使用MySQL內存的使用 減少在Docker中使用MySQL內存的使用 Mar 04, 2025 pm 03:52 PM

減少在Docker中使用MySQL內存的使用

如何使用Alter Table語句在MySQL中更改表? 如何使用Alter Table語句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

如何使用Alter Table語句在MySQL中更改表?

mysql無法打開共享庫怎麼解決 mysql無法打開共享庫怎麼解決 Mar 04, 2025 pm 04:01 PM

mysql無法打開共享庫怎麼解決

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) 在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) Mar 04, 2025 pm 03:54 PM

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)

什麼是 SQLite?全面概述 什麼是 SQLite?全面概述 Mar 04, 2025 pm 03:55 PM

什麼是 SQLite?全面概述

在MacOS上運行多個MySQL版本:逐步指南 在MacOS上運行多個MySQL版本:逐步指南 Mar 04, 2025 pm 03:49 PM

在MacOS上運行多個MySQL版本:逐步指南

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? 哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? Mar 21, 2025 pm 06:28 PM

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼?

如何為MySQL連接配置SSL/TLS加密? 如何為MySQL連接配置SSL/TLS加密? Mar 18, 2025 pm 12:01 PM

如何為MySQL連接配置SSL/TLS加密?

See all articles