Oracle DataGuard資料備份方案詳解

2021-06-01 02:37:50 字數 4803 閱讀 5295

oracle dataguard是一種資料庫級別的ha方案,最主要功能是冗災、資料保護、故障恢復等。

在生產資料庫的"事務一致性"時,使用生產庫的物理全備份(或物理copy)建立備庫,備庫會通過生產庫傳輸過來的歸檔日誌(或重做條目)自動維護備用資料庫。將重做資料應用到備用庫。本文介紹使用rman備份建立備庫(dataguard).

一:oracle dataguard環境概述

1.軟體環境

作業系統red linux enterprise as 5

資料庫版本oracle 10g release 2

2.primary databae

ip:192.168.18.1

oracle_sid=db1

db_unique_name=db1

3.standby database

ip:192.168.18.2

oracle_sid=standby

db_unique_name=standby

二,主資料庫(db1)做準備

1.設定主資料庫為force logging

sql> alter

database

force logging;

2.建立密碼檔案

cd $oracle_home/dbs/

orapwdfile

=orapwdb1

password

=123456

force=y

3.修改主庫的初始化引數

altersystemsetlog_archive_config='dg_config=(db1,standby)'

scope=both;

altersystemsetlog_archive_dest_1='location=/u01/db1/arch'

scope=both;

altersystemsetdb_unique_name='db1'

scope=both;

4.生成資料庫備份

rman>connecttarget sys/123456

rman> backupdatabaseformat='/oracle/rmanback/%d_%s.dbf'

plus archivelog;

[oracle@oracle rmanback]$ ls

db1_1.dbfdb1_2.dbf

5.生成備庫的control file

sql>alter

database

createstandby controlfileas'/oracle/rmanback/ctontrl01

6.配置listener.ora 和tnsnames.ora檔案

啟動lintener.ora,

[oracle@oracle dbs]$ lsnrctl status

lsnrctlforlinux: version 10.2.0.4.0 - productionon14-jun-2009 02:54:29

service "db1"

has 1 instance(s).

instance "db1"

, status ready, has 1 handler(s)forthis service...

service "db1_xpt"

has 1 instance(s).

instance "db1"

, status ready, has 1 handler(s)forthis service...

the command completed successfully

配置rnsnames.ora

vi $oracle_home/network/admin/tnsnames.ora

db1 =

(description =

(address_list =

(address = (protocol = tcp)(host = 192.168.18.1)(port = 1521))

)(connect_data =

(service_name = db1)

standby =

(description =

(address_list =

(address = (protocol = tcp)(host = 192.168.18.2)(port = 1521))

)(connect_data =

(service_name = standby)))

三.建立standby database

1.設定環境變數並安裝oracle軟體

#環境變數設成與主庫一樣

#只安裝軟體不安裝庫

./runinstaller –silent –responsefile /tmp/installoracle.rsp

2.建立相關的目錄

cd $oracle_home/dbs/

orapwdfile=orapwsid password=123456 force=y

#注要密碼要與主庫的一樣, 否則會歸檔失敗

3.建立密碼檔案

cd $oracle_home/dbs/

orapwd  file=orapwsid password=123456 force=y

#注要密碼要與主庫的一樣, 否則會歸檔失敗

3.建立引數檔案(pfile)

db_name = standby

shared_pool_size = 120m

undo_management = auto

undo_tablespace = undotbs

sga_max_size = 200m

sga_target = 160m

db_2k_cache_size = 4m

4.cp主資料庫rman備份及控制檔案到備庫

注意:備份存放位置要與primary database rman備份檔案的位置相同. 控制檔案存放位置要與生成standby database controlfile的位置相同

scp /oracle/rmanback/*.dbf [email protected]:/oracle/rmanback/

scp /oracle/rmanback/*.ctl [email protected]:/oracle/oracle/oradata/standby

5.利用備用的控制檔案,把備用資料庫啟到mount

sql>connect / as sysdba

connnpcted to an idle instance.

sql>startup nomount pfile=$oracle_home/dbs/initstandby.ora

sql>alter database mount standby database

6. 配置listener.ora 和tnsnames.ora檔案.

與主庫相同啟動listener,tnsnames.ora也與主庫配置的一樣,

當主備庫的監聽都啟動後,進行測試,以例下面能順利進行

tnsping db1

tnsping standby

sql> sqlplus sys/123456@db1

sql> sqlplus sys/123456@standby

7.轉儲資料庫

rman>connect target /

connected to target database:test(dbid=788075692)

rman> restore database

8.恢復資料庫。

sql>recover managed standby database disconnect from session;

#如果有需要應用的日誌並想手工應用,可以執行如下命令

sql>recover automatic standby database;

9.檢查standby database是否建立成功

a.在primary database 上切換日誌

sql> alter systemswitchlogfile

b.在primary database上執行下面的語句

sql> select max(sequence#) from v$archived_log;

max(sequence#)

--------------17

c. 在standby database上執行下面的語句

10. 以spfile啟動並設為唯讀

sql> create spfile from pfile;

sql> shutdown immedaite

sql> startup mount

sql> alter database recover managed standby database disconnect from session;

sql> alter database open read only;

以上就是oracle dataguard資料備份的操作流程。

Oracle Data Guard 環境配置

data guard環境應配置的初始化引數 db name 同乙個data guard中所有資料庫db name相同 db unique name 為每乙個資料庫制定乙個唯一的名稱 log archive config 用來控制從遠端資料庫接收或傳送redo資料。log archive dest n...

ORACLE DATAGUARD傳輸原理

oracle dataguard 簡稱dg 有兩種傳輸模式 async 非同步 和sync 同步 在介紹這兩種傳輸模式前,說一下dg的重做傳輸程序架構。何為同步傳輸模式呢?顧名思義同步含有實時確認的意思。見如下圖 在最高可用性中,如果主庫收不到備庫應用的確認訊息,那麼會通過net timeout值超...

Oracle Data Guard配置手記

經過多次實踐,參閱網上n多文章 最後還是配不成,可能本人悟性太低,無法體會高手的筆記。最終還是在前輩的幫助下完成。特用最平實的手法記錄下來,以便如吾輩菜鳥能看得懂。執行data guard的條件 1 在主庫和從庫的所有機器上必須安裝同乙個版本的oracle企業版。2 主庫必須執行在歸檔模式下。3 主...