建立一個standby database的全過程

hzh_hu發表於2005-04-08

standby database的全過程

作者:fals

 

實施環境:

OSwindows 2000 advanced server SP2

Oracle8.1.7.4

 

假定主庫與備用庫不在同一個主機上,目錄結構相同,並且配置一個自管理備用庫(managed standby database)

                                   主庫                                     備庫

主機IP                       192.168.1.20                     192.168.1.30

主機名                                                                     PrimDB         StbyDB

SID                           Orcl                                      Orcl

資料庫服務名              Orcl                                      Orcl

建立一個主庫的資料檔案備份:

用冷備份方式,備份到e:sharedback

建立備用庫的控制檔案:

冷備份之後,開啟主庫

SQL> connect internal/oracle as sysdba;

SQL>startup pfile=d:oracleadminorclinit.ora;

SQL>alter database create standby controlfile as ‘e:sharedbackstby_ctl.ctl’;

複製檔案

透過網路複製備份的資料檔案和備用控制檔案到備庫主機

配置主庫的tnsnames.ora檔案

新增備庫別名為stby1,即下面內容:

stby1=(description=

(address=

(protocol=tcp)

(port=1523)

(host=192.168.1.30))

(connect_data=

(SID=orcl)))

配置備用庫的listener.ora檔案

新增監聽服務standby_listener,在相應的節裡新增有關的內容。如果原檔案內已有,則修改之。

standby_listener節:

(address_list=

(address=

(protocol=tcp)

(port=1523)

(host=192.168.1.30)

) )

SID_list_standby_listener節:

(sid_list=

(sid_desc=

(sid_name=orcl)

(oracle_home=d:oracleora81)

) )

這個檔案中只能有這兩節,不能有多個組,雖然可以定義監聽的名字不同,但在啟動監聽服務的時候,都只啟動一個監聽服務。

重新啟動備庫監聽服務,以使更改生效:

DOS>lsnrctl # 啟動監聽服務管理程式

LSNRCTL>status # 檢視監聽服務狀態

LSNRCTL>stop # 停止監聽服務

LSNRCTL>start # 啟動監聽服務

也可以在管理工具的服務管理裡停止和啟動服務。

配置主庫的初始化引數檔案init.ora

修改歸檔目的地。本地歸檔只歸檔到一個目錄e:log。新增以下內容:

# 定義本地歸檔路徑,強制歸檔,重試時間2

log_archive_dest_1 = “location=e:log mandatory reopen=2”

log_archive_dest_state_1 = enable

# 定義歸檔到備用庫,強制歸檔,重試時間15秒。

# 如果定義為可選狀態(optional),那麼在歸檔失敗後不會再次嘗試歸檔的。定義

# madatory狀態後,如果本次歸檔失敗,則在歸檔下一個日誌時會再次嘗試

# 重傳上一個未成功歸檔的日誌。

log_archive_dest_2 = “service=stby1 mandatory reopen=15”

log_archive_dest_2 = enable

# 定義必須成功歸檔的日誌數,只需要本地成功歸檔即可

log_archive_min_succeed_dest = 1

使主庫修改後的引數生效。

以下操作是在未重啟主庫時使用。如果修改主庫初始化引數檔案後重新啟動了主庫,則可以不使用下列命令。下列命令只對當前例項有效。

SQL>alter system set log_archive_dest_1 = “location=e:log mandatory reopen=2”;

SQL>alter system set log_archive_dest_state_1 = enabl;

SQL>alter system set log_archive_dest_2 = “service=stby1 mandatory reopen=30”;

SQL>alter system set log_archive_dest_2 = enable;

SQL>alter system set log_archive_min_succeed_dest = 1;

配置備用庫的初始化引數檔案:

將主庫的初始化引數檔案複製到備庫,刪除原有的日誌歸檔目錄項,並新增以下內容:

log_archive_dest = e:log

log_archive_trace = 6 #定義日誌跟蹤層次

standby_archive_dest = e:log

# 更改控制檔名

control_files = (“d:oracleoradataorclstby_ctl.ctl”)

啟動備用庫

將從主庫複製過來的資料檔案、控制檔案複製到相應的位置,然後在備庫上操作(此時備庫處於關閉狀態)

SQL>connect internal/oracle as sysdba

SQL>startup nomount

SQL>alter database mount standby database

手工恢復 

如果有日誌序列的缺失,則先將主庫的日誌複製到備庫日誌目錄,進行手工恢復

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

相關文章