流機制環境準備

yangtingkun發表於2010-08-29

要部署一個流環境,必要環境設定,以及許可權使用者的建立是必不可少的。這篇文章簡單描述一下建立流環境的前期準備工作。

 

 

第一步需要建立一個流管理員,名稱並不重要,關鍵是要授予必要的許可權:

SQL> CONN YANGTK@"192.25.1.101/YANGTK.COMPUTE"
輸入口令: ******
已連線。

SQL> SELECT * FROM GLOBAL_NAME;

GLOBAL_NAME
------------------------------------------------------------------------------
YANGTK.COMPUTE

SQL> CREATE TABLESPACE STREAMTBS
  2  DATAFILE 'E:\ORACLE\ORADATA\YANGTK\STREAMTBS01.DBF' SIZE 1024M;

表空間已建立。

SQL> CREATE USER STRMADMIN IDENTIFIED BY STRMADMIN
  2  DEFAULT TABLESPACE STREAMTBS
  3  QUOTA UNLIMITED ON STREAMTBS;

使用者已建立。

SQL> GRANT DBA TO STRMADMIN;

授權成功。

如果流管理員STRMADMIN需要執行使用者的儲存過程,那麼STRMADMIN還需要透過DBMS_STREAMS_AUTH包來授權:

SQL> CONN SYS@"192.25.1.101/YANGTK.COMPUTE" AS SYSDBA
輸入口令: ****
已連線。

SQL> BEGIN
  2  DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(
  3  GRANTEE => 'STRMADMIN',
  4  GRANT_PRIVILEGES => TRUE);
  5  END;
  6  /

PL/SQL 過程已成功完成。

在所有節點上建立了使用者後,就需要建立兩個節點間的資料庫鏈,如果是雙向複製,那麼就需要在兩個節點上分別建立指向對方的資料庫鏈,如果是單向複製,需要在源節點上建立指向目標節點的資料庫鏈:

SQL> CONN STRMADMIN/STRMADMIN@192.25.1.101/YANGTK.COMPUTE
已連線。
SQL> CREATE DATABASE LINK STREAM1.COMPUTE
  2  CONNECT TO STRMADMIN
  3  IDENTIFIED BY STRMADMIN
  4  USING 'STREAM1';

資料庫連結已建立。

這裡只建立了從源資料庫YANGTK.COMPUTE到目標資料庫STREAM1.COMPUTE的資料庫鏈,如果是雙向流環境,或者在實體化的時候需要目標資料庫到源資料庫的資料庫鏈,那麼應該在目標資料庫上建立類似的資料庫鏈指向源資料庫。

下面建立必要的目錄物件,由於流複製的實體化過程可能需要資料泵執行匯出操作,因此需要建立DIRECTORY物件:

SQL> CREATE DIRECTORY D_OUTPUT AS 'E:\DMP';

目錄已建立。

檢查源資料庫是否處於歸檔模式,如果不是歸檔模式,需要將資料庫關閉,至於歸檔模式後再開啟:

SQL> SELECT NAME, LOG_MODE FROM V$DATABASE;

NAME      LOG_MODE
--------- ------------
YANGTK    ARCHIVELOG

如果需要使用DOWNSTREAM流環境,需要部署源資料庫到DOWNSTREAM資料庫的歸檔日誌傳遞方式。如果資料庫之間可以之間訪問,則只需設定一個LOG_ARCHIVE_DEST_N引數就可以了。

最後需要注意和流相關的初始化引數是否正確的設定,比如STREAMS_POOL_SIZE大小的設定等等,不過資料庫中並沒有什麼額外開關型別的初始化引數控制流,一般來說預設的初始化引數已經可以是流環境正常工作了。

當然9.2版本的流由於存在多個bug,因此必須設定一些初始化引數,甚至包括隱藏引數,這裡就不詳細描述了。

至此,流環境的準備工作完成。

 

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

相關文章