Oracle DG Linux平台邏輯Standby的建立執行個體

來源:互聯網
上載者:User

oracle,平台,linux,資料庫,archive,sql

作業系統:linux redhat 4.7

Oracle: 10.2.0.1

主庫:orcl_pd

備庫:LGDG

一、邏輯Standby建立過程

1、建立物理Standby

具體的參考:

Oracle Data Guard Linux 平台 Physical Standby 搭建執行個體

簡單的做如下幾點提示:

(1)初始化參數配置

初始化參數的修改並不僅僅只是在待建立的Standby資料庫端建立,當前的Primary資料庫甚至同一個Data Guard配置中的其他Standby資料庫的初始化參數都有可能需要進行修改。

對於Primary資料庫,至少需要新增一個LOG_ARCHIVE_DEST_n參數,以發送REDO資料到新的Standby端,同時其他一些與Standby環境相關的參數也會涉及調整,如LOG_ARCHIVE_CONFIG及FAL_*等參數。

而對於現有的Standby資料庫(如果有的話),主要是基於角色轉換的考慮,有必要對一些參數提前進行設定,設定的參數對當前功能不會有任何影響或促進,如果確定不進行角色轉換,那麼同一個Data Guard配置中的其他Standby資料庫初始化參數也可以不做任何調整。

(2)監聽和NetService配置

建議用Net Manager 工具來配置,這樣不容易出現錯誤。

(3)建立密鑰檔案

必須確保在同一個Data Guard環境中,所有資料庫的SYS使用者擁有相同密碼,建議從其他伺服器複製密鑰檔案到本地,然後按照密鑰檔案名稱的格式修改檔案名稱即可。

注意Windows平台和Linux/UNIX平台下,密鑰檔案名稱的命名格式並不相同,Windows平台下密鑰檔案名稱格式為PWD[sid].ora,而Linux/UNIX平台下密鑰檔案名稱格式為orapw[sid],注意檔案名稱的大小寫喲。

2、Primary資料庫產生資料字典

執行下列過程,產生LogMiner字典資訊:

SQL> EXECUTE DBMS_LOGSTDBY.BUILD;

PL/SQL procedure successfully completed.

注意:在Primary產生資料字典前,一定要確保待轉換的物理Standby資料庫已經停止REDO應用。如果已經啟用了REDO應用,執行下列語句停止REDO應用:

SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

控制檔案中記錄了記錄檔的應用狀態,正常情況下一個記錄檔只會被應用一次,如果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;

Database altered.

執行完該語句之後,關閉資料庫並重新啟動到MOUNT狀態:

SQL> SHUTDOWN IMMEDIATE

ORA-01507: database not mounted

ORACLE instance shut down.

SQL>  STARTUP MOUNT;

ORACLE instance started.

Total System Global Area  167772160 bytes

Fixed Size                  1218316 bytes

Variable Size              79694068 bytes

Database Buffers           83886080 bytes

Redo Buffers                2973696 bytes

Database mounted.

為什麼要重啟?因為上述操作涉及邏輯Standby資料庫更名,包括DBID、INCARNATION等均已被重新初始化。

再次查看DB_NAME參數和資料庫角色:

SQL> SHOW PARAMETER DB_NAME;

NAME               TYPE        VALUE

-------------------------- ----------- ------------------------------

db_name             string      LGDG

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=/u01/archive VALID_FOR=(ONLINE_LOGFILES, ALL_ROLES) DB_UNIQUE_NAME=LGDG';    # LGDG 是在tnsnames.ora 中配置的

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='LOCATION=/u01/std

VALID_FOR=(STANDBY_LOGFILES, STANDBY_ROLE) DB_UNIQUE_NAME=LGDG';

System altered.

5、開啟邏輯Standby

由於邏輯Standby與Primary資料庫事務並不一致,因此第一次開啟時必須指定RESETLOGS子句,執行語句如下:

SQL> ALTER DATABASE OPEN RESETLOGS;

Database altered.

然後執行下列SQL命令開始應用REDO資料:

SQL> ALTER DATABASE START LOGICAL STANDBY APPLY ;

Database altered.

如果要啟用即時應用,建議首先建立Standby Redologs,例如,為該邏輯Standby建立幾組Standby Redologs:

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/u01/app/oracle/oradata/orcl/redo04.log' SIZE 50m;

Database altered.

重新執行啟動REDO應用的命令,附加APPLY IMMEDIATE子句,以開啟即時應用(由於當前REDO應用已經啟動,因此我們首先停止REDO應用):

SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;

Database altered.

SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;

Database altered.

6、驗證環境

所有配置完成,接下來嘗試在Primary資料庫端執行修改操作,看看是否能夠分別在邏輯Standby和物理Standby端應用。

首先在Primary資料庫端執行下列語句,向tmp1表插入一條新記錄並提交:

SQL> insert into scott.dept values(1,'dave','dmm');

1 row created.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

接下來看看邏輯Standby的同步情況:

SQL> select * from scott.dept;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.