單機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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(6)LinuxOracle
- 單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(5)LinuxOracle
- 單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(4)LinuxOracle
- 單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(3)LinuxOracle
- 單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(2)LinuxOracle
- 單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(10)LinuxOracle 10g
- 單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(9)LinuxOracle 10g
- 單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(8)LinuxOracle 10g
- 單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(7)LinuxOracle 10g
- 單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(6)LinuxOracle 10g
- 單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(5)LinuxOracle 10g
- 單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(4)LinuxOracle 10g
- 單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(3)LinuxOracle 10g
- 單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(2)LinuxOracle 10g
- 單機Linux平臺Oracle 10g DataGuard Physical Standby 搭建例項(1)LinuxOracle 10g
- 單機Linux平臺Oracle 11g DataGuard Physical Standby 搭建例項(7)LinuxOracle
- 單機Linux平臺Oracle 11g DataGuard Physical Standby 搭建例項(6)LinuxOracle
- 單機Linux平臺Oracle 11g DataGuard Physical Standby 搭建例項(5)LinuxOracle
- 單機Linux平臺Oracle 11g DataGuard Physical Standby 搭建例項(4)LinuxOracle
- 單機Linux平臺Oracle 11g DataGuard Physical Standby 搭建例項(3)LinuxOracle
- 單機Linux平臺Oracle 11g DataGuard Physical Standby 搭建例項(2)LinuxOracle
- 單機Linux平臺Oracle 11g DataGuard Physical Standby 搭建例項(1)LinuxOracle
- Oracle 10G windows 平臺 DataGuard 例項Oracle 10gWindows
- Oracle Data Guard Linux 平臺 Physical Standby 搭建例項OracleLinux
- Oracle Data Guard Linux 平臺 Physical Standby 搭建例項-3OracleLinux
- Oracle Data Guard Linux 平臺 Physical Standby 搭建例項 -2OracleLinux
- Oracle Data Guard Linux 平臺 Physical Standby 搭建例項 -1OracleLinux
- 配置 Oracle 10g 單例項物理dataguard和邏輯standbyOracle 10g單例
- 【DG】在Linux平臺上搭建單例項的dataguard--duplicateLinux單例
- oracle實驗記錄 (oracle 10G dataguard(11)建立logical standby)Oracle
- Oracle11g 搭建單例項DataGuardOracle單例
- 【DG】在Linux平臺上搭建單例項的dataguard--rman還原方式Linux單例
- DataGuard:Logical Standby Switchover
- Create Logical Standby For Oracle 10GOracle 10g
- DataGuard:Logical Standby FailoverAI
- oracle 10g logical standby db creationOracle 10g
- 配置 Oracle 10g RAC primary + RAC logical standbyOracle 10g
- 在Oracle 10g下單機Physical StandbyOracle 10g