搭建ORACLE DataGuard(使用RMAN備份)

來源:互聯網
上載者:User

標籤:dataguard   dg   rman備份   oracle   

搭建ORACLE DataGuard(使用RMAN備份)


作業系統:windows 2008

資料庫:11.1.0.6


一、資訊收集

1.配置資訊收集

說明  主機名稱   IP地址      db_name   sid   DB_UNIQUE_NAME  Service_name

主庫   dg1  192.168.0.11     orcl    orcl    orcldg1       orcldg1

備庫   dg2  192.168.0.22     orcl    orcl    orcldg2       orcldg2


2.主庫資訊收集

2.1查看資料庫版本資訊

SQL> SELECT * FROM V$VERSION;


2.2查看資料庫狀態

SQL> SELECT NAME,OPEN_MODE,DATABASE_ROLE,FORCE_LOGGING,LOG_MODE,FLASHBACK_ON FROM V$DATABASE;

SQL> SHOW PARAMETER NAME;



二、準備工作

1.備庫安裝oracle資料庫軟體,不建立資料庫,保證兩個資料庫的安裝路徑一致;

備庫設定環境變數:

ORACLE_HOME 為D:\app\Administrator\product\11.1.0.6\db_1

ORACLE_SID  為orcl


2.備庫使用ORACLE"配置和移植工具"中的Net Configuration Assistant建立監聽;


3.主備庫建立目錄

CMD> MD D:\app\Administrator\product\11.1.0.6\archive\arch

CMD> MD D:\app\Administrator\database\dg



三、搭建DATAGUARD

1.配置主備庫的listener.ora 和tnsnames.ora 檔案


1.1修改listener.ora檔案

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = D:\app\Administrator\product\11.1.0.6\db_1)

      (PROGRAM = extproc)

    )


####主備庫都新增內容

  (SID_DESC =

      (GLOBAL_DBNAME = orcl)

      (ORACLE_HOME =  D:\app\Administrator\product\11.1.0.6\db_1)

      (SID_NAME = orcl)  

    )

#####

  )


LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))

    )

  )


ADR_BASE_LISTENER = D:\app\Administrator



1.2修改tnsnames.ora 檔案

主備庫都新增如下內容

ORCLDG1 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcldg1)

    )

  )

 

ORCLDG2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.22)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcldg2)

    )

  )



1.3重啟主備庫的監聽

CMD>lsnrctl stop

CMD>lsnrctl start


1.4檢查SQL*Net配置

在主要資料庫和備用資料庫中使用以下命令檢查SQL*Net配置

CMD>tnsping ORCLDG1

CMD>tnsping ORCLDG2


1.5測試遠程登入

CMD>sqlplus sys/[email protected] as sysdba

CMD>sqlplus sys/[email protected] as sysdba



2.修改主庫參數

SQL> ALTER SYSTEM SET INSTANCE_NAME=‘orcl‘ SCOPE=SPFILE; --可不配,使用預設設定


SQL> ALTER SYSTEM SET DB_UNIQUE_NAME=‘orcldg1‘ SCOPE=SPFILE;


SQL> ALTER SYSTEM SET LOCAL_LISTENER=‘orcldg1‘ SCOPE=SPFILE; --配TNS Name,也可不配使用預設設定


SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(orcldg1,orcldg2)‘ SCOPE=SPFILE; --這裡是db_unique_name!如果db_unique_name一致的話,這個參數不需要配


SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1=‘LOCATION=D:\app\Administrator\product\11.1.0.6\archive\arch LGWR VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcldg1‘ SCOPE=SPFILE;


SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=‘SERVICE=orcldg2 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg2‘ SCOPE=SPFILE;


SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=‘ENABLE‘ SCOPE=SPFILE;


SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=‘DEFER‘ SCOPE=SPFILE;--延遲同步


SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=‘AUTO‘ SCOPE=SPFILE;


SQL> ALTER SYSTEM SET FAL_CLIENT=‘orcldg1‘ SCOPE=SPFILE; --配主庫TNS Name


SQL> ALTER SYSTEM SET FAL_SERVER=orcldg2; SCOPE=SPFILE;--配備庫TNS Name


SQL> ALTER SYSTEM SET DB_FILE_NAME_CONVERT=‘D:\app\Administrator\database\dg‘,‘D:\app\Administrator\database\dg\‘ SCOPE=SPFILE;


SQL> ALTER SYSTEM SET LOG_FILE_NAME_CONVERT=‘D:\app\Administrator\database\dg‘,‘D:\app\Administrator\database\dg\‘ SCOPE=SPFILE;


SQL> ALTER SYSTEM SET STANDBY_ARCHIVE_DEST=‘D:\app\Administrator\product\11.1.0.6\archive\arch‘ SCOPE=SPFILE; --配的路徑跟LOG_ARCHIVE_DEST_1一致,也可不配,使用預設設定


SQL> ALTER SYSTEM SET LOG_ARCHIVE_FORMAT=‘ARC_%T_%S_%R.arc‘ SCOPE=SPFILE; --可不配,使用預設設定


SQL> ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=5 SCOPE=SPFILE; --可不配,使用預設設定


注:

1)在DataGuar備庫,沒有特殊情況一定要將standby_file_management參數設為AUTO,並且設定db_file_name_convert和log_file_name_convert的值。

若standby_file_management=MANUAL,即使主備庫資料檔案路徑一致,主庫添加資料檔案,備庫也不會自動添加,必須手動完成。

若standby_file_management=AUTO,主庫添加資料檔案,備庫會根據db_file_name_convert參數自動將資料檔案建立到正確路徑。

2)db_file_name_convert和log_file_name_convert是用來線上轉化資料和standby記錄檔的位置。主要用在物理standby資料庫和rman資料庫複寫和TSPITR的操作。

它們的作用是:主庫備庫路徑不相同的情況,備庫會根據這兩個參數將資料檔案和redo檔案建立到正確位置。

3)db_file_name_convert和log_file_name_convert指定時都必須是目錄,不能為檔案,否則啟動資料庫時會有ORA-01678的錯誤。


3.主庫啟用FORCE LOGGING模式

SQL> ALTER DATABASE FORCE LOGGING;


4.開啟歸檔模式

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

SQL> ALTER DATABASE ARCHIVELOG;

SQL> ALTER DATABASE OPEN;


5.主庫做全備份,並傳輸備份組到備庫的相同位置

CMD> RMAN TARGET /

RUN

{

 ALLOCATE CHANNEL C0 DEVICE TYPE DISK;

 ALLOCATE CHANNEL C1 DEVICE TYPE DISK;

 ALLOCATE CHANNEL C2 DEVICE TYPE DISK;

 ALLOCATE CHANNEL C3 DEVICE TYPE DISK;

 CONFIGURE CONTROLFILE AUTOBACKUP ON;

 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘D:\backup\%F‘;

 BACKUP DATABASE FORMAT ‘D:\backup\ora11g_full_db_%d_%T_%u.bak‘;

 BACKUP ARCHIVELOG ALL FORMAT ‘D:\backup\ora11g_arc_%s_%p_%t.bak‘;

 }

如果主庫備份盤空間不足可以使用壓縮備份,但耗時稍長;

壓縮備份:

將上面指令碼中BACKUP DATABASE FORMAT 修改為BACKUP AS COMPRESSED DATABASE FORMAT即可

備份時間較長,在備份過程中可以繼續下面的配置.


6.拷貝主庫的密碼檔案到備庫相應位置

密碼檔案預設位置:D:\app\Administrator\product\11.1.0.6\db_1\database\PWDorcl.ora

如果不存在按如下方法可以產生該檔案

CMD> ORAPWD FILE=‘$ORACLE_HOME/dbs/PWD%ORACLE_SID%‘ PASSWORD=xxxx ENTRIES=10 FORCE=Y


7.產生備庫PFILE檔案

7.1在主庫產生備庫PFILE檔案:

SQL> CREATE PFILE=‘D:\app\Administrator\product\11.1.0.6\db_1\dbs\init2.ora‘ FROM SPFILE;


7.2將產生的init2.ora拷貝到備庫相應位置


7.3修改init2.ora檔案

注意:修改以下下參數(和配置主庫時修改的參數項一樣,值要具體而定)

#DG CONFIG

*.log_archive_config=‘dg_config=(orcldg1,orcldg2)‘

*.log_archive_dest_1=‘LOCATION=D:\app\Administrator\product\11.1.0.6\archive\arch LGWR VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcldg2‘

*.log_archive_dest_2=‘SERVICE=orcldg1 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg1‘

*.standby_file_management=‘AUTO‘

*.log_archive_dest_state_1=‘ENABLE‘

*.log_archive_dest_state_2=‘ENABLE‘

*.fal_server=orcldg1

*.db_unique_name=orcldg2


8.啟動備庫監聽

CMD> lsnrctl start


9.進行備庫的恢複

注意:

1)這裡雖然是恢複備庫,但是需要在主庫上執行RMAN命令;

2)恢複時請將備分產生後主庫上產生的歸檔記錄檔拷貝到備庫相應位置,這樣在備庫恢複時會將這些差異的資料一同恢複到備庫。

CMD> RMAN TARGET /

RMAN> CONNECT AUXILIARY sys/[email protected]

RMAN> DUPLICATE TARGET DATABASE FOR STANDBY NOFILENAMECHECK;


10.恢複備庫完畢後將主庫的LOG_ARCHIVE_DEST_STATE_2設定為ENABLE

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=‘ENABLE‘;


11.主備庫添加standby redo log

11.1查看重做日誌資訊

查看日誌群組成員

SQL> SELECT MEMBER FROM V$LOGFILE;

查看日誌大小

SQL> SELECT GROUP,BYTES/1024*1024*1024,MEMBERS FROM V$LOG;

查看standby redo log

SQL> SELECT GROUP#, BYTES FROM V$STANDBY_LOG;


11.2新增standby redo log

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ‘D:\app\Administrator\database\dg\stdredo04.log‘ SIZE 50M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ‘D:\app\Administrator\database\dg\stdredo05.log‘ SIZE 50M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ‘D:\app\Administrator\database\dg\stdredo06.log‘ SIZE 50M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ‘D:\app\Administrator\database\dg\stdredo07.log‘ SIZE 50M;

注:

Standby redo log的組數參考公式:(online redo log組數 + 1) * 資料庫線程數;單機線程數為1,RAC一般為2。

Standby redo log的群組成員數和大小也盡量和online redo log一樣。


12.備庫啟用

啟動備庫到(備用狀態的)mount模式

SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

設定備庫為應用日誌狀態

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

取消備庫自動回復

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

啟動備庫到readonly模式

SQL> ALTER DATABASE OPEN;

設定備庫為時時應用日誌狀態

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;



參考:

blog.chinaunix.net/uid-23284114-id-4142519.html

blog.itpub.net/25105315/viewspace-710330/

blog.csdn.net/hj402555749/article/details/17654769

blog.itpub.net/12679300/viewspace-1127775/

blog.csdn.net/yuzhenhuan01/article/details/6450565

blog.chinaunix.net/uid-15108676-id-4134935.html

本文出自 “4699096” 部落格,請務必保留此出處http://4709096.blog.51cto.com/4699096/1761537

搭建ORACLE DataGuard(使用RMAN備份)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.