1. 配置數據庫初始化參數
使用 pfile的修改init<SID>.ora 文件,使用spfile的通過alter system命令修改spile文件,主要包括以下幾項(源和目標數據庫都需要設置):
- COMPATIBLE:數據庫的兼容版本不能低於10.2.0.1
- GLOBAL_NAMES:必需設置為true
- JOB_QUEUE_PROCESSES:設置實例最大同時啟用的job里程數不能小於2
- STREAMS_POOL_SIZE:為streams分配適當的緩存區。參數值不能為0
sql> alter system set global_names=true scope=both; sql> alter system set aq_tm_processes=10 scope=both; sql> alter system set streams_pool_size=200m scope=spfile;
執行完后重啟數據庫。
2. 將數據庫置為歸檔模式
設置 log_archive_dest_1 到相應的位置;設定log_archive_start為TRUE,即啟用自動歸檔功能;設定log_archive_format指定歸檔日志的命令格式。舉例:
c:> sqlplus ‘/ as sysdba’ sql> alter system set log_archive_dest_1=’location=c:/orcl/arch’ scope=spfile; sql> alter system set log_archive_start=TRUE scope=spfile; sql> alter system set log_archive_format=’ arch%t_%s_%r.arc’ scope=spfile; sql> shutdown immediate; sql> startup mount; sql> alter database archivelog; sql> alter database open; 數據庫置為歸檔模式后,可以按如下方式檢驗一下 sql> archive log list;
3. 配置管理員賬戶
為了便於管理,不建議使用sys/system用戶,也不建議使用system表空間,推薦一切都新建。用戶需要在source/target端分別創建,並必須具有相關的管理權限,本例中以strmadmin為例。
1). 創建專用的表空間
sql> create tablespace stream_tbs datafile '/data/oradata/jssweb/stream01.dbf' size 200m;
#將logminer 的數據字典從system表空間轉移到新建的表空間,防止撐滿system表空間
sql> execute dbms_logmnr_d.set_tablespace('stream_tbs');
2). 創建管理員帳戶並授權
sql> create user strmadmin identified by strmadmin default tablespace stream_tbs quota unlimited on stream_tbs; sql> grant connect,resource,dba,aq_administrator_role to strmadmin; sql> begin dbms_streams_auth.grant_admin_privilege( grantee => 'strmadmin', grant_privileges =>true); end;
4. 配置主從tnsname.ora
5. 啟用追加日志
可以基於Database級別或Table級別,啟用追加日志(Supplemental Log)。在建立根據Schema粒度進行復制的Oracle Stream 環境中,如果確認Schema 下所有Table 都有合理的主鍵
(Primary Key),則不再需要啟用追加日志。
#啟用Database 追加日志 sql> alter database add supplemental log data; #啟用Table追加日志 sql> alter table add supplement log group log_group_name(table_column_name) always;
6. 創建一個或多個數據庫鏈接
根據Oracle 10gR2 Stream官方文檔,針對主數據庫建立的數據庫鏈的名字必須和從數據庫的global_name相同。如果需要修改global_name,執行“alter database rename global_name to xxx”。
sql> select * from global_name; --查看 global_name
以strmadmin身份,登錄並創建
sql> create database link jssstr connect to strmadmin identified by strmadmin using 'jssstr';
--查看db links
sql> select owner,db_link,host from all_db_links;
