一步一步學Streams(10) 第二部分 實踐之準備工作(2)初始化環境

junsansi發表於2009-02-23

二、初始化環境

  在準備建立streams複製環境之前,還有一些準備工作需要我們進行,如下:

1、配置管理員帳戶

  為了便於管理,不建議使用sys/system使用者,也不建議使用system表空間,推薦一切都新建。使用者需要在source/target端分別建立,並必須具有相關的管理許可權,本例中以strmadmin為例。

  a>. 首先建立新的表空間

    JSSWEB> create tablespace stream_tbs datafile ¨ /data/oradata/jssweb/ stream01.dbf¨ size 200m;

    表空間已建立。
  b>. 建立streams管理員帳號並授予許可權,這裡建立strmadmin做為streams管理員

    JSSWEB> create user strmadmin identified by strmadmin default tablespace stream_tbs quota unlimited on stream_tbs;

    使用者已建立。

    -- 授予dba許可權

    JSSWEB> grant dba to strmadmin;

    授權成功。

  當然,某些情況下不能通過直接授予dba許可權來解決問題,如果說你聽說過顯式授權與隱式授權,並且strmadmin使用者需要在過程中執行某些操作的話,你就會明白我的意思。那麼問題出現了,如何精確賦予使用者許可權呢?oracle提供了一個包:dbms_streams_auth,具體使用者可參考官方文件,這裡就不引申了,一般情況下,dba角色許可權足夠。

  c>. 迴圈在所有複製環境涉及的資料庫,執行上述操作即可。

2、建立一個或多個資料庫鏈

  注意,為什麼要說一個或多個呢?因為情況不同,處理方式也不同的嘛!不過,無論如何,source端到target端必須建立一個資料庫鏈,這個是毋庸置疑的,其中,如果存在下列情況,則target端到source端也需要建立資料庫鏈:

  • 雙向複製環境
  • Data Pump 通過網路方式匯入
  • Target 端做為downstream捕獲資料庫
  • RMAN duplicate 或convert database

  上述4種情況下需要建立資料庫鏈是因為POST_INSTANTIATION_SETUP過程的instantiation_scn引數不能為空,該值由dbms_apply_adm.set_global_instantiation_scn過程獲得,而SET_GLOBAL_INSTANTIATION_SCN過程執行需要資料庫鏈。該資料庫鏈必須建立於RMAN例項化之後,執行POST_INSTANTIATION_SETUP過程之前。

  如果捕獲資料庫是第三方資料庫,則還需要下列兩個資料庫鏈:第三方資料庫到source資料庫和第三方資料庫到target資料庫。

  上述提到的資料庫鏈均是建立於strmadmin下。

3、建立Directory物件(如果需要的話)

  本步非必須,一般下列情況的話,需要建立相應的Directory物件:

  • 執行過程時沒有直接建立,而是選擇生成建立指令碼,需要在源端建立一個Directory以儲存生成的指令碼。
  • 決定通過Data Pump初始化資料的話,需要在源端和目標端分別建立一個Directory以儲存和讀取生成的dmp檔案。

  啥?你不知道什麼是Directory?簡單來講,也是oracle10g新特性之一,作業系統目錄在oracle中一個別名,藉此可以通過oracle讀寫作業系統目錄中檔案。Directory物件有READ/WRITE兩種許可權,可以通過grant命令授予需要訪問的使用者。

4、將源端資料庫置於歸檔模式

  確認source資料庫處於archivelog 模式,可用如下命令:

    JSSWEB> archive log list;

    Database log mode No Archive Mode

    Automatic archival Disabled

    Archive destination /opt/ora10g/product/10.2.0/db_1/dbs/arch

    Oldest online log sequence 9

    Current log sequence 11

  如果不是,可按下列方式操作修改資料庫為歸檔模式。

    JSSWEB> startup mount

    ORACLE instance started.

    Total System Global Area 524288000 bytes

    Fixed Size 2073984 bytes

    Variable Size 163580544 bytes

    Database Buffers 352321536 bytes

    Redo Buffers 6311936 bytes

    Database mounted.

    JSSWEB> alter database archivelog ;

    Database altered.

    JSSWEB> alter system set log_archive_dest_1=¨location=/data/oradata/jssweb/archive/¨;

    System altered.

    JSSWEB> archive log list;

    Database log mode Archive Mode

    Automatic archival Enabled

    Archive destination /data/oradata/jssweb/archive/

    Oldest online log sequence 9

    Next log sequence to archive 11

    Current log sequence 11

    JSSWEB> alter database open;

    Database altered.

  另外注意,如果複製是雙向,那麼目標資料庫必須也是處於歸檔模式的喲。

5、配置日誌檔案傳輸(下游捕獲專用)

  本地捕獲可以直接讀取日誌檔案,因此不需要這一步驟,如果是下游捕獲的話,你就需要一些方式將redologs傳送至捕獲資料庫。

  事實上,傳送方式還是老一套,如果你看過三思的“ 一步一步學Dataguard ” 系列,那麼對於配置日誌傳輸必然已經相當熟練了。這裡只當是重溫吧~~

  a>. 設定log_archive_dest_n引數

  除了本地歸檔的log_archive_dest_n外,另外設定一個遠端的歸檔路徑。log_archive_dest_n也有幾個引數,通常情況下,你最少需要指定service(即tnsnames中配置的遠端服務連線名),其它諸如ARCH/LGWR ASYNC/LGWR SYNC、VALID_FOR、DB_UNIQUE_NAME之類

  b>. 設定log_archive_dest_state_n引數

  該引數與log_archive_dest_n引數一一對應,共有4個可選值:

  • ENABLE :預設值,表示允許傳輸服務。
  • DEFER :該屬性指定對應的log_archive_dest_n引數有效,但暫不使用。
  • ALTERNATE :禁止傳輸,但是如果其它相關的目的地的連線通通失敗,則它將變成enable。
  • RESET :功能與DEFER屬性類似,不過如果傳輸目的地之前有過錯誤,它會清除其所有錯誤資訊。

  將log_archive_dest_n對應的log_archive_dest_state_n引數設定為enable.

  c>. 設定log_archive_config引數

  設定接收和傳送redologs的資料庫。如果計劃啟用downstream捕獲的話,需要設定該引數。

6、配置資料庫初始化引數

  主要包括以下幾項(源和目標端都需要設定的喲):

  • COMPATIBLE :資料庫的相容版本,不能低於10.2.0.1
  • GLOBAL_NAMES :必須設定為true
  • JOB_QUEUE_PROCESSES :設定例項最大同時啟用的job程式數,不能小於2
  • STREAMS_POOL_SIZE :為streams分配適當的快取區。注意引數值不能為0(或者sga_target引數值不為0)。至於說設定多大才合適,可以參考V$STREAMS_POOL_ADVICE檢視。

  除此之外,LOG_ARCHIVE_CONFIG/LOG_ARCHIVE_DEST_N/LOG_ARCHIVE_DEST_STATE_N這三個引數前面已經介紹過,這裡就不多說了。

  下列各項為非強制引數,可根據實際情況進行設定:

  • SGA_TARGET :做為10g新特性之一,Oracle建議設定sga_target引數以達到自動分配sga中各記憶體區大小的目的。streams_pool_size當然也在其中,詳細可參考:第一部分-傳播程式。
  • UNDO_RETENTION :設定undo資訊在undo表空間的儲存時間,預設值是900秒。關於undo相關資料可以參考三思系列筆記:全面學習Oracle flashback特性

======================================

一步一步學Streams(9) 第二部分 實踐之準備工作(1)明確需求

一步一步學Streams(8) 第一部分 基礎之應用程式(下)

一步一步學Streams(7) 第一部分 基礎之應用程式(中)

一步一步學Streams(6) 第一部分 基礎之應用程式(上)

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

相關文章