單機Linux平臺Oracle 10g DataGuard Logical Standby 搭建例項
作業系統:linux redhat 5
Oracle: 10.2.0.1
主庫:orcl
備庫:stby
一. 邏輯Standby建立過程
1 建立物理Standby
單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(1):http://space.itpub.net/81227/viewspace-701181
單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(2):http://space.itpub.net/81227/viewspace-701198
單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(3):http://space.itpub.net/81227/viewspace-701231
單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(4):http://space.itpub.net/81227/viewspace-701293
單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(5):http://space.itpub.net/81227/viewspace-702254
單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(6):http://space.itpub.net/81227/viewspace-702263
單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(7):http://space.itpub.net/81227/viewspace-702264
單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(8):http://space.itpub.net/81227/viewspace-702270
單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(9):http://space.itpub.net/81227/viewspace-702272
單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(10):http://space.itpub.net/81227/viewspace-702273
2 Primary資料庫生成資料字典
執行下列過程,生成LogMiner字典資訊:
SQL> EXECUTE DBMS_LOGSTDBY.BUILD;
注意:在Primary生成資料字典前,一定要確保待轉換的物理Standby資料庫已經停止REDO應用。如果已經啟用了REDO應用,執行下列語句停止REDO應用:
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
控制檔案中記錄了日誌檔案的應用狀態,正常情況下一個日誌檔案只會被應用一次,如果Primary生成的資料字典資訊被物理Standby資料庫應用了,等該物理Standby轉換成邏輯Standby資料庫時(不應用資料字典不代表就不能執行轉換喲)就不會再應用這些檔案,自然也沒有Primary資料庫物件的後設資料,這可能會導致這部分物件的修改不能被邏輯Standby正常應用。
我們操作的根本目的是為了讓邏輯Standby能夠應用到這部分資料字典資訊,只要能夠實現這一點,是否暫停REDO應用或什麼時間暫停REDO應用就無所謂了。這也我們理解另外一個問題,如果Primary生成LogMiner字典資訊時,待轉換的物理Standby資料庫沒有暫停REDO應用怎麼辦?好辦,馬上暫停REDO應用,然後Primary資料庫重新生成一下LogMiner字典資訊就是。
3 轉換物理Standby為邏輯Standby
執行下列語句,轉換物理Standby為邏輯Standby:
SQL> SHOW PARAMETER DB_NAME
NAME TYPE VALUE
---------- ----------- ------------------------------
db_name string orcl
SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY LGDG;
執行完該語句之後,關閉資料庫並重新啟動到MOUNT狀態:
SQL> SHUTDOWN IMMEDIATE
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> STARTUP MOUNT;
為什麼要重啟?因為上述操作涉及邏輯Standby資料庫更名,包括DBID、INCARNATION等均已被重新初始化。
再次檢視DB_NAME引數和資料庫角色:
SQL> SHOW PARAMETER DB_NAME;
NAME TYPE VALUE
-------------- ----------- ------------------------------
db_name string stby
SQL> SELECT DATABASE_ROLE FROM V$DATABASE;
DATABASE_ROLE
----------------
LOGICAL STANDBY
現在DB_NAME和資料庫的角色都已經被修改。
4 調整邏輯Standby資料庫初始化引數
設定重做日誌檔案路徑,將本地生成的歸檔檔案和Primary資料庫傳送來的歸檔檔案分開,存放到不同目錄內,注意歸檔檔案路徑不要衝突,修改引數如下:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/software/app/oracle/oradata/arch VALID_FOR=(ONLINE_LOGFILES, ALL_ROLES) DB_UNIQUE_NAME=stby';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=/home/oracle/software/app/oracle/oradata/arch/stby VALID_FOR=(STANDBY_LOGFILES, STANDBY_ROLE) DB_UNIQUE_NAME=stby';
5 開啟邏輯Standby
由於邏輯Standby與Primary資料庫事務並不一致,因此第一次開啟時必須指定RESETLOGS子句,執行語句如下:
SQL> ALTER DATABASE OPEN RESETLOGS;
然後執行下列SQL命令開始應用REDO資料:
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY;
如果要啟用實時應用,建議首先建立Standby Redologs,例如,為該邏輯Standby建立幾組Standby Redologs:
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/u01/app/oracle/oradata/orcl/redo04.log' SIZE 50m;
重新執行啟動REDO應用的命令,附加APPLY IMMEDIATE子句,以開啟實時應用(由於當前REDO應用已經啟動,因此我們首先停止REDO應用):
SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
6 驗證環境
所有配置完成,接下來嘗試在Primary資料庫端執行修改操作,看看是否能夠分別在邏輯Standby和物理Standby端應用。
首先在Primary資料庫端執行下列語句,向表插入一條新記錄並提交:
SQL> insert into scott.dept values(1,'dave','dmm');
SQL> commit;
SQL> alter system switch logfile;
接下來看看邏輯Standby的同步情況:
SQL> select * from scott.dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
1 dave dmm
提示: 細心觀察重做日誌,發現邏輯Standby有一點設計得很好,從Primary資料庫接收到的重做日誌檔案檔案,應用過之後就會自動刪除,節省了磁碟空間。(10G無此特性,可能是11G的新特性)。
OK,至此邏輯Standby建立成功.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/81227/viewspace-706435/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【DG】在Linux平臺上搭建單例項的dataguard--duplicateLinux單例
- 【DG】在Linux平臺上搭建單例項的dataguard--rman還原方式Linux單例
- Oracle DG建立Logical Standby DatabaseOracleDatabase
- dataguard 搭建 oracle_sid不同 2節點 primary+standbyOracle
- dataguard 搭建 oracle_sid相同 2節點 primary+standbyOracle
- Oracle 單機配置DataGuardOracle
- 單例項Primary快速搭建Standby RAC參考手冊(19.16 ADG)單例
- oracle資料庫跨平臺(AIX)從RAC恢復至(linux)下的單例項Oracle資料庫AILinux單例
- Oracle dataguard報錯:Error 1017 received logging on to the standbyOracleError
- Oracle 19C CBD Active DataGuard Standby passwd file 注意事項 ORA-01017Oracle
- [20181113]Logical Standby建立2.txt
- ORACLE-LINUX環境字元介面單例項安裝OracleLinux字元單例
- Oracle 11.2 DataGuard RAC To RAC搭建Oracle
- 搭建ELK日誌平臺(單機)
- 【DG】Oracle11g異構平臺之Linux To Windows DataGuard安裝配置--duplicateOracleLinuxWindows
- 搭建windows到linux的oracle 12c physical standby備庫WindowsLinuxOracle
- 搭建自己的直播平臺,實現exe單例模式單例模式
- 4 Creating a Logical Standby Database 建立邏輯備庫Database
- Linux平臺Oracle開機自啟動設定LinuxOracle
- oracle之 單例項監聽修改埠Oracle單例
- linux監控平臺搭建Linux
- DATAGUARD手記(PRIMARY+2STANDBY)(二)
- DATAGUARD手記(PRIMARY+2STANDBY)(一)
- oracle 10g在linux下的安裝及簡單命令Oracle 10gLinux
- 跨平臺級聯dataguard配置
- 【DATAGUARD】Oracle21c Dataguard建立注意事項及主要引數介紹Oracle
- Oracle 12C RAC的單機Standby returning error ORA-16191OracleError
- 從nub備份恢復(同平臺)恢復RAC至單例項單例
- Oracle 11g RAC到單例項OGG同步Oracle單例
- Oracle Far Sync例項Oracle
- 4.1. Oracle例項Oracle
- 【Dataguard】DataGuard運維注意事項運維
- 【DATAGUARD】Oracle Dataguard nologging 塊修復Oracle
- DataGuard---->物理StandBy的角色切換之switchover
- standby_file_management為manual造成dataguard延遲
- 搭建交易所平臺要注意的事項 | 交易所平臺如何搭建
- oracle資料庫與oracle例項Oracle資料庫
- Oracle的快照standbyOracle
- Oracle 11G資料庫單例項安裝Oracle資料庫單例