【DataGuard】手工冷備搭建 Oracle 11g DataGuard 物理備庫

海星星hktk發表於2014-08-31

手工冷備搭建 Oracle 11g DataGuard 物理備庫

本文透過手工冷備+pfile檔案的方式,搭建oracle11g dataguard 物理備庫。在搭建前的規劃中,特意將主庫的資料庫名和服務名、備庫的檔案存放位置等等做了差異處理。
在進行初始化引數檔案的配置時,也進行了最小化處理。這樣能夠更好的理解DataGuard搭建所需要的的日誌傳輸、應用所需引數配置。


【實驗環境】

作業系統:Red Hat Enterprise Linux Server release 5.4
資料庫:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0

【DG主庫、物理備庫結構資訊】




【搭建過程】

1、主庫上 強記日誌

alter database force logging;

所有都記日誌,nologging 無效。

防止主庫上有操作不記日誌。產生主從庫差異。


2、建立口令檔案 確保日誌傳輸時的許可權

主庫建立口令檔案,scp到從庫、修改名稱

是遠端使用者sysdba許可權可以登入

echo $ORACLE_SID

orapwd file=$ORACLE_HOME/dbs/orapwBJ password=oracle entries=3 force=y

 

scp到從庫


scp orapwBJ shanghai.lxh.net:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/

oracle@shanghai.lxh.net's password:

orapwBJ                                                                        100% 1536     1.5KB/s   00:00   

oracle@beijing.lxh.net:/u01/app/oracle/product/11.2.0/dbhome_1/dbs>

 

從庫上改名


 

 

3、【主庫的初始化引數】

DB_NAME=DGDB
DB_UNIQUE_NAME=beijing
LOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)'
CONTROL_FILES='/u01/app/oracle/oradata/DGDB/control01.ctl', '/u01/app/oracle/oradata/DGDB/control02.ctl'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/home/oracle/beijing/
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=beijing'
LOG_ARCHIVE_DEST_2=
 'SERVICE=sh ARCH ASYNC NOAFFIRM
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=shanghai'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
 

 

LOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)' 控制心跳

SERVICE=sh      tns,要能連到備庫 服務名

ARCH      傳遞迴檔

ASYNC    非同步傳輸

NOAFFIRM  從庫是否收到主庫不用確認

 


如果主庫引數中有審計目錄等,備庫需建立相應目錄

在實驗情況下,可刪除主庫、從庫 審計和審計目錄 刪除OMF管理路徑

重啟資料庫 看是否有效


4、主庫備份資料檔案、日誌檔案(冷備cp

shutdown immediate;

cd /u01/app/oracle/oradata/DGDB

cp *.dbf /u02/backup/DGDB/

cp *.log /u02/backup/DGDB/

 

 


如果是rman備份,必須要先備份,再建立standby控制檔案。

 

5、主庫開歸檔、開庫


6、主庫生成standby控制檔案

alter database create standby controlfile as '/u02/backup/DGDB/control.std';


至此,standby 控制檔案 、所有資料檔案、redo日誌檔案 全部在/u02/backup/DGDB目錄下。


7、打包壓縮後scp到備庫 

打包

oracle@beijing.lxh.net:/u02/backup> tar -cvf DGDB.tar DGDB/


壓縮 gzip DGDB.tar


scp到備庫

scp DGDB.tar.gz shanghai.lxh.net:/u02/oradata/


備庫解壓 gunzip DGDB.tar.gz


解包 tar –xvf DGDB.tar


改名

 

複製 standby控制檔案 生成兩個備庫的控制檔案

 


scp 初始化引數檔案pfile到備庫 修改檔名
scp beijing.lxh.net:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initBJ.ora $ORACLE_HOME/dbs/

 

mv initBJ.ora initSH.ora

8、【備庫初始化引數檔案】

控制檔案路徑

db_unique_name

本地歸檔路徑:log_archive_dest_1=

刪除dest_2

新增資料檔案、日誌檔案 位置轉換


*.control_files='/u02/oradata/sh/control01.ctl','/u02/oradata/sh/control02.ctl'

DB_NAME=DGDB

DB_UNIQUE_NAME=shanghai

LOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)'

LOG_ARCHIVE_DEST_1=

 'LOCATION=/u02/arch/sh/

  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

  DB_UNIQUE_NAME=shanghai'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

 

FAL_SERVER=bj
FAL_CLIENT=sh
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/DGDB','/u02/oradata/sh'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/DGDB','/u02/oradata/sh' 
STANDBY_FILE_MANAGEMENT=AUTO


 

FAL_SERVER=bj    如果歸檔或日誌有gap差異,從庫向主庫請求日誌
FAL_SERVER=sh

STANDBY_FILE_MANAGEMENT=AUTO   主庫建立檔案,從庫自動建立。


9、配置監聽

主庫監聽配置listener

 


LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = beijing.lxh.net)(PORT = 1521))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  ) 

 

從庫監聽配置


 LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = shanghai.lxh.net)(PORT = 1521))    

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

 

 

10、配置tnsnames

主庫配一個tnsnames

從庫配兩個tnsnames 

sh =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = shanghai.lxh.net)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = shanghai)

    )

  )

 

bj =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = beijing.lxh.net)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = beijing)

    )

  )


11、啟動從庫到mount狀態

mount 從庫


 

檢視備庫資料庫身份

select database_role from v$database;


 

檢視主庫身份


 

12、從庫進行standby recover  開始應用日誌

【重啟庫後需再次執行】

alter database recover managed standby database disconnect from session;



root@shanghai.lxh.net:/root> tail -f /u01/app/oracle/diag/rdbms/shanghai/SH/trace/alert_SH.log


13、驗證同步成功

主庫切日誌組

 

從庫跟蹤檔案

tail –f /u01/app/oracle/diag/rdbms/shanghai/SH/trace/alert_SH.log




【實驗總結】

本次實驗,使用了手工冷備主庫資料檔案、scp到備庫的方式,一步一步搭建dataguard物理備庫。最主要的是突出主庫、備庫引數檔案的配置。

引數檔案:主庫增加遠端歸檔目錄;備庫增加FAL挖掘日誌GAP、CONVERT進行目錄轉換。

控制檔案:主庫生產standby控制檔案作為備庫的控制檔案。
資料檔案:備庫使用主庫冷備的資料檔案



呂星昊
2014.8.31


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29475508/viewspace-1260963/,如需轉載,請註明出處,否則將追究法律責任。

相關文章