RAC環境LOGICAL STANDBY的SWITCHOVER切換
介紹一下RAC環境下LOGICAL STANDBY資料庫的SWITCHOVER切換。
PRIMARY資料庫和STANDBY資料庫採用的都是RAC 11.1.0.6 for Solaris10 sparc,共享儲存PRIMARY資料庫採用VOLUMN CLUSTER MANAGER,而STANDBY資料庫使用ASM。
在部署之前,首先檢查目前的PRIMARY資料庫是否滿足切換後邏輯STANDBY的角色,發現目前PRIMARY資料庫還沒有建立STANDBY LOGFILE,因此首先建立PRIMARY資料庫的STANDBY LOGFILE:
root@newtrade1 # cd /dev/vx/rdsk/datavg
root@newtrade1 # vxassist -g datavg make rac11g_standby_redo1_1_1_1g 1025m user=oracle group=oinstall mode=660
root@newtrade1 # vxassist -g datavg make rac11g_standby_redo1_2_1_1g 1025m user=oracle group=oinstall mode=660
root@newtrade1 # vxassist -g datavg make rac11g_standby_redo1_3_1_1g 1025m user=oracle group=oinstall mode=660
root@newtrade1 # vxassist -g datavg make rac11g_standby_redo2_1_1_1g 1025m user=oracle group=oinstall mode=660
root@newtrade1 # vxassist -g datavg make rac11g_standby_redo2_2_1_1g 1025m user=oracle group=oinstall mode=660
root@newtrade1 # vxassist -g datavg make rac11g_standby_redo2_3_1_1g 1025m user=oracle group=oinstall mode=660
root@newtrade1 # su - oracle
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 9月 18 14:45:14 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> alter database add standby logfile group 5 '/dev/vx/rdsk/datavg/rac11g_standby_redo1_1_1_1g' size 1g;
資料庫已更改。
SQL> alter database add standby logfile group 6 '/dev/vx/rdsk/datavg/rac11g_standby_redo1_2_1_1g' size 1g;
資料庫已更改。
SQL> alter database add standby logfile group 7 '/dev/vx/rdsk/datavg/rac11g_standby_redo1_3_1_1g' size 1g;
資料庫已更改。
SQL> alter database add standby logfile group 8 '/dev/vx/rdsk/datavg/rac11g_standby_redo2_1_1_1g' size 1g;
資料庫已更改。
SQL> alter database add standby logfile group 9 '/dev/vx/rdsk/datavg/rac11g_standby_redo2_2_1_1g' size 1g;
資料庫已更改。
SQL> alter database add standby logfile group 10 '/dev/vx/rdsk/datavg/rac11g_standby_redo2_3_1_1g' size 1g;
資料庫已更改。
下面準備實施SWITCHOVER切換。
首先檢查主庫的狀態:
SQL> select name,
2 open_mode,
3 database_role,
4 guard_status,
5 db_unique_name,
6 primary_db_unique_name
7 from v$database;
NAME OPEN_MODE DATABASE_ROLE GUARD_S DB_UNIQUE_NAME PRIMARY_DB_UNIQUE_NAME
--------- ---------- ---------------- ------- ------------------------------ ------------------------------
RAC11G READ WRITE PRIMARY NONE rac11g rac11g_s
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
SQL> select inst_id,
2 username,
3 program,
4 module
5 from gv$session
6 where username is not null;
INST_ID USERNAME PROGRAM MODULE
---------- ---------- ------------------------------ ------------------------------
1 SYS sqlplus@newtrade1 (TNS V1-V3) sqlplus@newtrade1 (TNS V1-V3)
1 SYS racgimon@newtrade1 (TNS V1-V3) racgimon@newtrade1 (TNS V1-V3)
1 SYS oracle@newtrade1 (PZ99) sqlplus@newtrade1 (TNS V1-V3)
1 SYS racgimon@newtrade1 (TNS V1-V3) racgimon@newtrade1 (TNS V1-V3)
2 SYS oracle@newtrade2 (PZ99) sqlplus@newtrade1 (TNS V1-V3)
2 SYS racgimon@newtrade2 (TNS V1-V3) racgimon@newtrade2 (TNS V1-V3)
已選擇6行。
雖然SWITCHOVER的狀態為SESSION ACTIVE,但是剩下的會話已經沒有其它使用者的會話了,需要注意的是,目前例項2仍然啟動,在執行SWITCHOVER的時候,應該只保留一個例項:
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
rac11g2
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
檢查STANDBY資料庫狀態,確保LOGICAL STANDBY資料庫開啟,且處於應用SQL的狀態:
SQL> select instance_name, status from gv$instance;
INSTANCE_NAME STATUS
---------------- ------------
rac11g1 OPEN
rac11g2 OPEN
SQL> select name,
2 open_mode,
3 database_role,
4 guard_status,
5 db_unique_name,
6 primary_db_unique_name
7 from v$database;
NAME OPEN_MODE DATABASE_ROLE GUARD_S DB_UNIQUE_NAME PRIMARY_DB_UNIQUE_NAME
--------- ---------- ---------------- ------- --------------- -------------------------
RAC11G_L READ WRITE LOGICAL STANDBY ALL rac11g_s rac11g
SQL> select * from v$logstdby_state;
PRIMARY_DBID SESSION_ID REALTIME_APPLY STATE
------------ ---------- --------------- ------------------------------
1712482917 1 Y IDLE
關閉例項2:
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
rac11g2
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
下面回到PRIMARY資料庫,準備切換:
SQL> alter database prepare to switchover to logical standby;
資料庫已更改。
SQL> select name, switchover_status from v$database;
NAME SWITCHOVER_STATUS
--------- --------------------
RAC11G PREPARING SWITCHOVER
在STANDBY庫進行準備切換:
SQL> alter database prepare to switchover to primary;
Database altered.
SQL> select name, switchover_status from v$database;
NAME SWITCHOVER_STATUS
--------- --------------------
RAC11G_L PREPARING SWITCHOVER
再次檢查主庫,switchover_status應該變成TO LOGICAL STANDBY:
SQL> select name, switchover_status from v$database;
NAME SWITCHOVER_STATUS
--------- --------------------
RAC11G TO LOGICAL STANDBY
將主庫切換為LOGICAL STANDBY資料庫:
SQL> alter database commit to switchover to logical standby;
資料庫已更改。
檢查邏輯STANDBY資料庫的狀態是否為TO PRIMARY:
SQL> select name, switchover_status from v$database;
NAME SWITCHOVER_STATUS
--------- --------------------
RAC11G_L TO PRIMARY
下面可以將STANDBY資料庫切換為PRIMARY資料庫:
SQL> alter database commit to switchover to primary;
Database altered.
最後開啟新邏輯STANDBY資料庫的SQL應用即可:
SQL> alter database start logical standby apply immediate;
資料庫已更改。
檢查邏輯STANDBY執行情況:
SQL> select * from v$logstdby_state;
PRIMARY_DBID SESSION_ID REALTIME_APPLY STATE
------------ ---------- --------------- ------------------------------
3515162368 1 Y IDLE
下面可以將主庫和STANDBY資料庫的第二例項啟動:
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 1.7108E+10 bytes
Fixed Size 2101632 bytes
Variable Size 3478638208 bytes
Database Buffers 1.3623E+10 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> select instance_name, status from gv$instance;
INSTANCE_NAME STATUS
---------------- ------------
rac11g2 OPEN
rac11g1 OPEN
SQL> select name,
2 open_mode,
3 database_role,
4 guard_status,
5 db_unique_name,
6 primary_db_unique_name
7 from v$database;
NAME OPEN_MODE DATABASE_ROLE GUARD_S DB_UNIQUE_NAME PRIMARY_DB_UNIQUE_NAME
--------- ---------- ---------------- ------- --------------- -------------------------
RAC11G_L READ WRITE PRIMARY NONE rac11g_s rac11g
新STANDBY資料庫開啟第二例項後:
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 1.7108E+10 bytes
Fixed Size 2101632 bytes
Variable Size 4149726848 bytes
Database Buffers 1.2952E+10 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> select instance_name, status from gv$instance;
INSTANCE_NAME STATUS
---------------- ------------
rac11g2 OPEN
rac11g1 OPEN
SQL> select name,
2 open_mode,
3 database_role,
4 guard_status,
5 db_unique_name,
6 primary_db_unique_name
7 from v$database;
NAME OPEN_MODE DATABASE_ROLE GUARD_S DB_UNIQUE_NAME PRIMARY_DB_UNIQUE_NAME
--------- ---------- ---------------- ------- --------------- -------------------------
RAC11G READ WRITE LOGICAL STANDBY ALL rac11g rac11g_s
至此,RAC環境的LOGICAL STANDBY的SWICHOVER切換完成。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-615920/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DataGuard---->物理StandBy的角色切換之switchover
- 含有replication環境的sqlserver切換到standbySQLServer
- pycharm切換conda環境PyCharm
- Oracle DG建立Logical Standby DatabaseOracleDatabase
- openGauss主備切換之switchover與failoverAI
- 【DG】Data Guard主備庫Switchover切換
- jenkins動態切換環境Jenkins
- [20181113]Logical Standby建立2.txt
- Oracle 11g dg switchover切換操作流程Oracle
- jupyter notebook中 切換不同的Python環境Python
- RAC的VIP切換測試
- MySQL高可用之MHA切換測試(switchover & failover)MySqlAI
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- window環境下安裝和切換兩個python環境Python
- Homestead 環境中 PHP 版本快速切換PHP
- vue 構建環境切換指令碼Vue指令碼
- Mac環境下WingIDE切換python版本MacIDEPython
- 【Linux】gnome桌面環境切換KDE PlasmaLinuxASM
- app 測試環境切換問題APP
- webpack介面環境切換的配置-超簡單Web
- Pytest 如何使用切換被測試環境
- (全)Python 的虛擬環境構建和jupyter notebook 中虛擬環境切換Python
- Oracle RAC DG手動切換Oracle
- RAC環境修改spfile的位置
- RAC+單例項DG的切換單例
- 4 Creating a Logical Standby Database 建立邏輯備庫Database
- Physical Standby Switchover_status Showing Not Allowed. (Doc ID 1392763.1)
- Nacos 解決 laravel 多環境下配置切換Laravel
- 使用maven的profile切換專案各環境的引數Maven
- oracle 19c使用dgmgrl來執行switchover和failover切換OracleAI
- 深圳java培訓:SpringBoot的yml配置及多環境切換JavaSpring Boot
- 關於使用springboot的application.yml切換dev配置環境Spring BootAPPdev
- yml檔案中使用profile配置切換多環境
- Oracle RAC 環境下的連線管理Oracle
- KingbaseES RAC部署案例之---SAN環境構建RAC
- [小白工具書]一行命令切換本地Python環境Python
- 一鍵快速切換開發環境以及多渠道打包開發環境
- ORACLE 12C DATAGUARD環境搭建和主從切換Oracle
- 【原創】vs2022配置切換多個ollvm環境LVM