Oracle的快照standby
眾所周知,Oracle的standby資料庫有三種模式:物理standby資料庫、邏輯standby資料庫和快照standby資料庫。在這裡主要講述快照standby資料庫的特點,資料庫版本為11gR2。
一、快照standby資料庫的特點
快照standby資料庫有如下特點:
1、能在讀寫模式開啟,是完全可更新的standby資料庫
2、從主資料庫接收相關日誌,但不應用
3、當轉換為物理standby資料庫時,首先會拋棄所有之前的更新,然後應用接收到的redo資料
4、不能作為switchver或者failover的目標。在執行角色轉換之前,必須首先轉換為物理standby資料庫
5、在最大保護Data Guard配置中,快照standby資料庫不能是唯一的standby資料庫。
注意:使用Flashback Database技術的任何操作都是不可逆的,Flashback Database將阻止一個快照standby轉換為物理standby
二、快照standby資料庫的搭建
1、物理standby資料庫搭建
快照standby資料庫由物理standby資料庫轉換而來。因此首先搭建物理standby資料庫,過程略。
2、將物理standby資料庫轉換為快照standby資料庫
1)主庫上檢視目的地的資料庫模式、恢復模式和保護模式
SQL> select dest_id,database_mode,recovery_mode,protection_mode from v$archive_dest_status where dest_id = 2;
DEST_ID DATABASE_MODE RECOVERY_MODE PROTECTION_MODE
---------- --------------- ----------------------- --------------------
2 OPEN_READ-ONLY MANAGED REAL TIME APPLY MAXIMUM PERFORMANCE
可看到standby資料庫以只讀方式開啟,在最高可用性級別實時應用redo
2)停止物理standby資料庫的Redo Apply
SQL> alter database recover managed standby database cancel;
Database altered.
3)如果物理standby資料庫是RAC,則只保留一個例項,其他關閉。本環境中物理standby資料庫是單例項。
4)確保閃回恢復區被配置
SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /opt/app/oracle/fast_recovery_area
db_recovery_file_dest_size big integer 4182M
否則在轉換時會報錯:
ORA-38784: Cannot create restore point 'SNAPSHOT_STANDBY_REQUIRED_10/24/2018 10:41:21'.
ORA-38786: Recovery area is not enabled.
5)將物理standby資料庫轉換為快照standby資料庫
備庫上執行:
SQL> alter database convert to snapshot standby;
Database altered.
可看到資料庫建立了一個還原點:
SQL> select name,storage_size from v$restore_point;
NAME STORAGE_SIZE
----------------------------------------------- ------------
SNAPSHOT_STANDBY_REQUIRED_10/24/2018 10:43:28 1073741824
此時資料庫處於mounted狀態:
SQL> select name,
2 database_role,
3 switchover_status,
4 open_mode,
5 protection_mode
6 from v$database;
NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE
-------------------- -------------------- ------------------------------ -------------------- --------------------
BDDEV2 SNAPSHOT STANDBY NOT ALLOWED MOUNTED MAXIMUM PERFORMANCE
6)開啟備庫
SQL> select name,
2 database_role,
3 switchover_status,
4 open_mode,
5 protection_mode
6 from v$database;
此時備庫已轉換完成:
NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE
-------------------- -------------------- ------------------------------ -------------------- --------------------
BDDEV2 SNAPSHOT STANDBY NOT ALLOWED READ WRITE MAXIMUM PERFORMANCE
三、快照standby轉換為物理standby
1.將備庫重啟到mount模式
SQL> startup force mount
ORACLE instance started.
2.備庫執行語句,轉換為物理standby
SQL> alter database convert to physical standby;
Database altered.
轉換後資料庫被解除安裝,需要重啟
3.重啟資料庫
SQL> startup force;
ORACLE instance started.
4.恢復redo應用
SQL> alter database recover managed standby database using current logfile disconnect;
Database altered.
SQL> select name,
2 database_role,
3 switchover_status,
4 open_mode,
5 protection_mode
6 from v$database;
NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE
-------------------- -------------------- ------------------------------ -------------------- --------------------
BDDEV2 PHYSICAL STANDBY RECOVERY NEEDED READ ONLY MAXIMUM PERFORMANCE
四、快照standby資料庫測試
1.測試是否可讀寫
1)對錶scott.tb_test進行更新:
SQL> delete from scott.tb_test where object_id = 20;
1 row deleted.
2)刪除表scott.tb_test:
SQL> drop table scott.tb_test purge;
Table dropped.
此時表scott.tb_test在備庫中已經不存在了,但在主庫中還存在
3)建立新表
SQL> create table scott.tb_test2(id int);
Table created.
2.測試是否能接收日誌且不應用
主庫:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /opt/app/oracle/archivelog/
Oldest online log sequence 77
Next log sequence to archive 79
Current log sequence 79
可看到主庫當前日誌序號為79
備庫:
SQL> SELECT PROCESS,
2 PID,
3 STATUS,
4 SEQUENCE#,
5 DELAY_MINS
6 FROM V$MANAGED_STANDBY;
PROCESS PID STATUS SEQUENCE# DELAY_MINS
------------------------------ ---------- -------------------- ---------- ----------
ARCH 25422 CLOSING 78 0
ARCH 25425 CONNECTED 0 0
ARCH 25427 CLOSING 76 0
ARCH 25429 CLOSING 77 0
RFS 26020 IDLE 0 0
RFS 26023 IDLE 0 0
RFS 26026 IDLE 79 0
可看到備庫RFS程式正在接收的redo序號也為79,因此備庫此時可以接收日誌;備庫中MRP程式沒有啟動,因此可斷定此時日誌沒有應用
3.將快照standby轉換為物理standby,看scott.tb_test是否能恢復
按照三中的步驟,將快照standby轉換為物理standby,此時檢視備庫中是否有scott.tb_test:
SQL> select count(1) from scott.tb_test;
COUNT(1)
----------
86415
檢視之前在備庫建的表scott.tb_test2還是否存在:
SQL> desc scott.tb_test2
ERROR:
ORA-04043: object scott.tb_test2 does not exist
綜上,說明快照standby轉換到物理standby時,會拋棄在快照standby狀態時所做的更改。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31544156/viewspace-2217333/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle DG Standby Database型別OracleDatabase型別
- Oracle DG建立Physical Standby DatabaseOracleDatabase
- Oracle DG建立Logical Standby DatabaseOracleDatabase
- Oracle dataguard報錯:Error 1017 received logging on to the standbyOracleError
- 【ASK_ORACLE】Oracle Data Guard(四)快照備庫的概念和優勢Oracle
- Oracle 12.2 How to Generate AWRs in Active Data Guard Standby DatabasesOracleDatabase
- Oracle 12.2 使用Database Link優化Standby Database WorkloadOracleDatabase優化
- Oracle 12.2 physical standby備庫收集AWR報告Oracle
- Oracle RAC+DG 調整redo/standby log fileOracle
- 搭建windows到linux的oracle 12c physical standby備庫WindowsLinuxOracle
- oracle awr快照點不記錄問題Oracle
- Oracle AWR無法生成快照(ORA-32701)Oracle
- 在Oracle DG Standby庫上啟用flashback database功能OracleDatabase
- Oracle 12C RAC的單機Standby returning error ORA-16191OracleError
- Oracle11g生成手動的快照報告報錯Oracle
- Oracle standby的ORA-01578 ORA-01110 ORA-26040 坑爹的NOLOGGINGOracle
- 【mos 1265700.1】Oracle Patch Assurance - Data Guard Standby-First Patch ApplyOracleAPP
- dataguard 搭建 oracle_sid相同 2節點 primary+standbyOracle
- dataguard 搭建 oracle_sid不同 2節點 primary+standbyOracle
- [20230425]注意snapshot standby與activate standby的區別.txt
- Convert a Physical Standby Database into a Snapshot Standby DatabaseDatabase
- Oracle 11.2.0.4 awr過期快照無法自動清理Oracle
- Oracle 18C新特性之PDB snapshot(快照) CarouselOracle
- oracle12.2 adg ORA-46952: standby database format mismatch for password fileOracleDatabaseORM
- Oracle 19C Data Guard基礎運維-01安裝物理standbyOracle運維
- Oracle 19c透過recover standby database from service修復GAP案例OracleDatabase
- Oracle 12c DG備庫啟動報錯standby database requires recoveryOracleDatabaseUI
- Oracle 19c standby 建立資料檔案報錯ORA-01111Oracle
- Oracle 18C,19C standby CHECKPOINT_CHANGE# 不更新問題Oracle
- 快照是什麼?揭祕儲存快照的實現
- Oracle 19C CBD Active DataGuard Standby passwd file 注意事項 ORA-01017Oracle
- LVM : 快照LVM
- 2 新增standby masterAST
- Oracle 18C新特性之PDB snapshot Carousel--PDB快照輪播Oracle
- Flink增量快照的實現
- 阿里雲 快照阿里
- Maven 快照(SNAPSHOT)Maven
- Performing a Failover to a Physical Standby DatabaseORMAIDatabase