マスターサーバ:マスター表を持つサーバ  スナップサーバ:更新可能スナップショット表を持つサーバ

[構成準備]--------------------------------------------------------------------- 1.データベース・スクリプトの実行(両サーバ、SYSユーザ)  SQL> @$ORACLE_HOME/rdbms/admin/catrep.sql   (SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql)   (SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql)   (SQL> @$ORACLE_HOME/sqlplus/admin/pupbld.sql)

2.初期化パラメータの確認($ORACLE_HOME/dbs/initSID.ora)  COMPATIBLE :マスター、スナップ間のORACLEバージョン。低い方にあわせる

 JOB_QUEUE_PROCESSES      :SNPバックグランドプロセスの数
 JOB_QUEUE_INTERVAL       :SNPバックグランドプロセスの起動間隔(秒)
 DISTRIBUTED_TRANSACTIONS :同時に参加出来る分散トランザクションの数
 GLOBAL_NAMES             :必ずTRUE
 OPEN_LINKS               :1セッション内におけるリモートDBに対する同時オープン接続数

3.両サーバ間のNet8確認($ORACLE_HOME/network/admin/listener.ora,tnsnames.ora)  両サーバからお互いにNet8通信が出来るようにする。

4.グローバル名の確認(SYSTEMユーザ)

 SQL> select * from global_name;
  設定する場合SQL> alter database rename global_name to グローバル名

5.スナップサーバでのリプリケーションアカウント作成、権限付与(SYSTEMユーザ)  本来は、リプリケーション管理者、プロパゲータ、リフレッシュ担当者、それぞれ作って管理するのだが、  1つのアカウントで全て行うこととして、1つ作る。  SQL> create user DBADMN identified by

        default tablespace users temporary tablespace temp;
 SQL> execute dbms_repcat_admin.grant_admin_any_schema(’DBADM’);
 SQL> execute dbms_defer_sys.register_propagator(’DBADM’);    
 SQL> grant create any snapshot to DBADM;
 SQL> grant alter any snapshot to DBADM;

6.マスターサーバでのアカウント作成、権限付与(SYSTEMユーザ)

 本来は、代理スナップショット管理者、レシーバ、代理リフレッシュ担当者、それぞれ作って管理するのだが、

 1つのアカウントで全て行うこととして、1つ作る。  SQL> create user DBADM identified by DBADM

        default tablespace users temporary tablespace temp;
 SQL> execute dbms_repcat_admin.grant_admin_any_schema(’DBADM’);
 SQL> execute dbms_repcat_admin.grant_admin_any_repgroup(’DBADM’);
 SQL> grant comment any table to DBADM;
 SQL> grant create any table to DBADM;
 SQL> grant select any table to DBADM;
 SQL> grant execute any procedure to DBADM;
 SQL> grant create session to DBADM;

7.パブリックデータベースリンクの作成、確認(スナップサーバ、SYSTEMユーザ)

 SQL> create public database link リンク名 using ’TNS名’;
      リンク名は、グローバル名にするのが一般的。

 SQL> select * from global_name@リンク名;

8.プライベートデータベースリンクの作成、確認(スナップサーバ、DBADMユーザ)

 SQL> create database link リンク名 connect to DBADM identified by DBADM;

 SQL> select * from global_name@リンク名;

9.遅延トランザクションの伝播ジョブ作成(スナップサーバ、DBADMユーザ)

 SQL> BEGIN
        DBMS_DEFER_SYS.SCHEDULE_PUSH(
           destination   => ’マスターサーバ・グロバールデータベース名’,
           interval      => ’sysdate + 1/(24*60)’,
           next_date     => sysdate,
           stop_on_error => FALSE,
           delay_seconds => 0,
           parallelism => 0);
     END;
     /
         interval:sysdate + 1/(24*60)=1分
         stop_on_error:FALSE=エラーが発生しても継続
         delay_seconds:キューが空の場合の待機秒数 
         parallelism:パラレル数

10.伝播済みトランザクションのパージジョブ作成(スナップサーバ、DBADMユーザ)

 SQL> BEGIN 
       DBMS_DEFER_SYS.SCHEDULE_PURGE (
          interval => ’sysdate + 1/(24*6)’,
          next_date => sysdate,
          delay_seconds => 0,
          rollback_segment => ’’);
      END;
      /
          interval:sysdate + 1/(24*6)=10分

11.作成ジョブの確認(スナップサーバ、DBADMユーザ)  SQL> select job,last_date,last_sec,next_date,next_sec,total_time,broken,what from dba_jobs;

[スキーマの作成]-マスターサーバ、スキーマ所有者)-------------------------------------------------  ・マスターサイトにスナップショットの対象となるスキーマを作成  ・スナップショット対象のオブジェクトにスナップショットログを作成   SQL> create snapshot log on オブジェクト名

[マスターの作成]-マスターサーバ、DBADMユーザ)------------------------------------------------- 1.リプリケーショングループの作成  SQL> execute DBMS_REPCAT.CREATE_MASTER_REPGROUP( ’グループ名’ );

 SQL> select * from dba_repsites;
 SQL> select * from dba_repgroup;
 SQL> select job,last_date,last_sec,next_date,next_sec,total_time,broken,what from dba_jobs;

2.リプリケーション・オブジェクト登録

 SQL> BEGIN
      DBMS_REPCAT.CREATE_MASTER_REPOBJECT (
       gname => ’グループ名’,
       sname => ’スキーマ名’,
       oname => ’オブジェクト名’,  
       type  => ’タイプ’, 
       use_existing_object => TRUE,
       copy_rows => TRUE);
     END;
     /

3.リプリケーション・サポート登録

 SQL>BEGIN
      DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT (
       sname => ’スキーマ名’,
       oname => ’オブジェクト名’,
       type  => ’タイプ’,
       min_communication => TRUE);
     END;
    /
 SQL> select * from dba_repobject;

4.リプリケーション・グループの有効化(QUIESCED->NORMAL)  SQL> execute DBMS_REPCAT.RESUME_MASTER_ACTIVITY(’グループ名’);

 SQL> select * from dba_repgroup;

[スナップショットの作成]-スナップサーバ、DBADMユーザ)------------------------------------------------- 1.スナップショットグループの作成

 SQL> execute DBMS_REPCAT.CREATE_SNAPSHOT_REPGROUP(’グループ名’,’マスターグローバルデータベース名’);

2.スナップショットの作成

 SQL> CREATE SNAPSHOT DBADM.MESG_1 tablespace USERS REFRESH FAST 
        next systemdate+60/86400 FOR UPDATE AS 
            SELECT * FROM DBADM.MESG_1@SPTEST2.IIJ.AD.JP

3.スナップショットをリプリケーショングループに登録

 SQL> BEGIN
       DBMS_REPCAT.CREATE_SNAPSHOT_REPOBJECT (
         gname   => ’SNAPG_1’,
         sname   => ’DBADM’,
         oname   => ’MESG_1’,
         type    => ’SNAPSHOT’,
         min_communication => TRUE);
      END;
     /

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-11-01 (水) 11:33:55 (4370d)