この章では、レプリケーション・マネージメントAPIを使用して、デプロイメント・テンプレートを作成する方法を説明します。
この章では、次の項目を説明します。
マテリアライズド・ビュー環境を構築する前に、マスター・サイトの設定、マスター・グループの作成および目的のマテリアライズド・ビュー・サイトの設定を行います。また、作成したマテリアライズド・ビュー・サイトでのアクティビティによって、マスター・サイトで競合が発生する可能性がある場合は、マテリアライズド・ビュー・グループを作成する前に、マテリアライズド・ビューのマスター表に対して競合解消を設定します。
Oracleで提供されるデプロイメント・テンプレートを使用すると、データベース管理者はマテリアライズド・ビュー環境をパッケージ化して、その配布とインストールを簡単かつ安全に行ったり、カスタマイズしたりできます。デプロイメント・テンプレートは、1つのマテリアライズド・ビューと固定データ・セットのみで単純に構成することも、数百のマテリアライズド・ビューと1つ以上の変数に基づく動的データ・セットで複雑に構成することもできます。この目的は、環境を1回定義して、必要に応じてそのデプロイメント・テンプレートをデプロイすることです。Oracleデプロイメント・テンプレートの特徴を次に示します。
集中管理
マテリアライズド・ビュー環境を繰り返しデプロイ可能
テンプレート・パラメータを使用したリモート・サイトでのデータのサブセット化
テンプレートのインスタンス化とデータ・アクセスの制御を認証されたユーザーのリスト
マテリアライズド・ビュー環境を適用するために、DBAがマスター・サイトにデプロイメント・テンプレートを作成します。このテンプレートには、マテリアライズド・ビュー環境をデプロイするために必要なすべての情報を格納します。たとえば、リモート・サイトとターゲット・リフレッシュ・グループでオブジェクトを作成するためのDDLなどを格納します。また、このテンプレートには、ユーザーのセキュリティ情報やカスタム・マテリアライズド・ビューを作成するためのテンプレート・パラメータへのリンクも含まれています。
次のオブジェクト型のインスタンス化では、デプロイメント・テンプレートは使用できません。
ユーザー定義型
ユーザー定義型本体
ユーザー定義演算子
索引タイプ
これらのオブジェクト型に基づいたオブジェクトのインスタンス化でも、デプロイメント・テンプレートは使用できません。
|
関連項目: デプロイメント・テンプレートの概念については、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。 |
マスター・サイトの1つで、高速リフレッシュのマテリアライズド・ビューをサポートするには、マテリアライズド・ビューにレプリケートされる各マスター表のマテリアライズド・ビュー・ログを作成する必要があります。
この章の例では、hrサンプル・スキーマを使用します。hrスキーマの表のマテリアライズド・ビュー・ログを作成するには、次の命令を入力します。
CONNECT hr@orc3.example.com
Enter password: password
CREATE MATERIALIZED VIEW LOG ON hr.countries;
CREATE MATERIALIZED VIEW LOG ON hr.departments;
CREATE MATERIALIZED VIEW LOG ON hr.employees;
CREATE MATERIALIZED VIEW LOG ON hr.jobs;
CREATE MATERIALIZED VIEW LOG ON hr.job_history;
CREATE MATERIALIZED VIEW LOG ON hr.locations;
CREATE MATERIALIZED VIEW LOG ON hr.regions;
|
関連項目: このSQL文の詳細は、『Oracle Database SQL言語リファレンス』の |
この項では、レプリケーション・マネージメントAPIを使用してデプロイメント・テンプレートを作成する、完全なスクリプト例を示します。
|
関連項目: デプロイメント・テンプレートの概念およびアーキテクチャについては、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。 |
スクリプト内のコメントにも、必ず目を通してください。コメントには、レプリケーション・マネージメントAPIで配置テンプレートを作成するための重要で役立つ情報が記述されています。
|
注意:
|
/************************* BEGINNING OF SCRIPT ******************************
このスクリプトでは、4つのテンプレート・オブジェクト、2つのテンプレート・パラメータ、ユーザー・パラメータ値セットおよび許可されたユーザーを含むプライベート・デプロイメント・テンプレートが作成されます。次に示す手順に従って、テンプレートを構築します。
デプロイメント・テンプレートの構成要素を作成する前に、CREATE_RERESH_TEMPLATEプロシージャを使用して、デプロイメント・テンプレートの名前、テンプレートの特性(パブリックまたはプライベートのステータス、ターゲット・リフレッシュ・グループおよび所有者)を定義します。
*/ SET ECHO ON SPOOL create_dt.out CONNECT repadmin@orc3.example.com DECLARE a NUMBER; BEGIN a := DBMS_REPCAT_RGT.CREATE_REFRESH_TEMPLATE ( owner => 'hr', refresh_group_name => 'hr_refg', refresh_template_name => 'hr_refg_dt', template_comment => 'Human Resources Deployment Template', public_template => 'N'); END; / /*
手順2 テンプレートにオブジェクトを追加します。
countries_mvマテリアライズド・ビューを作成します。
*/
DECLARE
tempstring VARCHAR2(3000);
a NUMBER;
BEGIN
tempstring := 'CREATE MATERIALIZED VIEW hr.countries_mv
REFRESH FAST WITH PRIMARY KEY FOR UPDATE AS SELECT
country_id, country_name, region_id
FROM hr.countries@:dblink';
a := DBMS_REPCAT_RGT.CREATE_TEMPLATE_OBJECT (
refresh_template_name => 'hr_refg_dt',
object_name => 'countries_mv',
object_type => 'MATERIALIZED VIEW',
ddl_text => tempstring,
master_rollback_seg => 'rbs');
END;
/
/*
マテリアライズド・ビューを作成するときは、必ず、マテリアライズド・ビューに対する問合せの中で表の所有者のスキーマ名を指定します。前述の例では、countries表の所有者としてhrを指定しました。
departments_mvマテリアライズド・ビューを作成します。
*/
DECLARE
tempstring VARCHAR2(3000);
a NUMBER;
BEGIN
tempstring := 'CREATE MATERIALIZED VIEW hr.departments_mv
REFRESH FAST WITH PRIMARY KEY FOR UPDATE AS SELECT
department_id, department_name, manager_id, location_id
FROM hr.departments@:dblink';
a := DBMS_REPCAT_RGT.CREATE_TEMPLATE_OBJECT (
refresh_template_name => 'hr_refg_dt',
object_name => 'departments_mv',
object_type => 'MATERIALIZED VIEW',
ddl_text => tempstring,
master_rollback_seg => 'rbs');
END;
/
/*
employees_mvマテリアライズド・ビューを作成します。
*/
DECLARE
tempstring VARCHAR2(3000);
a NUMBER;
BEGIN
tempstring := 'CREATE MATERIALIZED VIEW hr.employees_mv
REFRESH FAST WITH PRIMARY KEY FOR UPDATE AS SELECT
employee_id, first_name, last_name, email, phone_number,
hire_date, job_id, salary, commission_pct, manager_id,
department_id
FROM hr.employees@:dblink WHERE department_id = :dept';
a := DBMS_REPCAT_RGT.CREATE_TEMPLATE_OBJECT (
refresh_template_name => 'hr_refg_dt',
object_name => 'employees_mv',
object_type => 'MATERIALIZED VIEW',
ddl_text => tempstring,
master_rollback_seg => 'rbs');
END;
/
/*
jobs_mvマテリアライズド・ビューを作成します。
*/
DECLARE
tempstring VARCHAR2(3000);
a NUMBER;
BEGIN
tempstring := 'CREATE MATERIALIZED VIEW hr.jobs_mv
REFRESH FAST WITH PRIMARY KEY FOR UPDATE AS SELECT
job_id, job_title, min_salary, max_salary
FROM hr.jobs@:dblink';
a := DBMS_REPCAT_RGT.CREATE_TEMPLATE_OBJECT (
refresh_template_name => 'hr_refg_dt',
object_name => 'jobs_mv',
object_type => 'MATERIALIZED VIEW',
ddl_text => tempstring,
master_rollback_seg => 'rbs');
END;
/
/*
job_history_mvマテリアライズド・ビューを作成します。
*/
DECLARE
tempstring VARCHAR2(3000);
a NUMBER;
BEGIN
tempstring := 'CREATE MATERIALIZED VIEW hr.job_history_mv
REFRESH FAST WITH PRIMARY KEY FOR UPDATE AS SELECT
employee_id, start_date, end_date, job_id, department_id
FROM hr.job_history@:dblink';
a := DBMS_REPCAT_RGT.CREATE_TEMPLATE_OBJECT (
refresh_template_name => 'hr_refg_dt',
object_name => 'job_history_mv',
object_type => 'MATERIALIZED VIEW',
ddl_text => tempstring,
master_rollback_seg => 'rbs');
END;
/
/*
locations_mvマテリアライズド・ビューを作成します。
*/
DECLARE
tempstring VARCHAR2(3000);
a NUMBER;
BEGIN
tempstring := 'CREATE MATERIALIZED VIEW hr.locations_mv
REFRESH FAST WITH PRIMARY KEY FOR UPDATE AS SELECT
location_id, street_address, postal_code, city,
state_province, country_id
FROM hr.locations@:dblink';
a := DBMS_REPCAT_RGT.CREATE_TEMPLATE_OBJECT (
refresh_template_name => 'hr_refg_dt',
object_name => 'locations_mv',
object_type => 'MATERIALIZED VIEW',
ddl_text => tempstring,
master_rollback_seg => 'rbs');
END;
/
/*
regions_mvマテリアライズド・ビューを作成します。
*/
DECLARE
tempstring VARCHAR2(3000);
a NUMBER;
BEGIN
tempstring := 'CREATE MATERIALIZED VIEW hr.regions_mv
REFRESH FAST WITH PRIMARY KEY FOR UPDATE AS SELECT
region_id, region_name
FROM hr.regions@:dblink';
a := DBMS_REPCAT_RGT.CREATE_TEMPLATE_OBJECT (
refresh_template_name => 'hr_refg_dt',
object_name => 'regions_mv',
object_type => 'MATERIALIZED VIEW',
ddl_text => tempstring,
master_rollback_seg => 'rbs');
END;
/
/*
他の手順では、CREATE_*ファンクションおよびプロシージャではなく、ALTER_TEMPLATE_PARMプロシージャを使用して、テンプレート・パラメータの値とプロンプト文字列を定義します。実パラメータは、手順1で作成されたので、ALTER_*プロシージャを使用します。:dblinkおよび:deptテンプレート・パラメータはddl_textパラメータで定義済です。OracleはDDL中のこれらのパラメータを検出して、自動的にテンプレート・パラメータを作成します。テンプレート・パラメータ情報の残り(すなわち、デフォルトのパラメータ値とプロンプト文字列)を定義するには、ALTER_TEMPLATE_PARMプロシージャを使用します。
次のタスクを実行して、パラメータのデフォルト値を定義します。
deptパラメータのデフォルト値を定義します。
*/ BEGIN DBMS_REPCAT_RGT.ALTER_TEMPLATE_PARM ( refresh_template_name => 'hr_refg_dt', parameter_name => 'dept', new_default_parm_value => '30', new_prompt_string => 'Enter your department number:', new_user_override => 'Y'); END; / /*
dblinkパラメータのデフォルト値を定義します。
*/ BEGIN DBMS_REPCAT_RGT.ALTER_TEMPLATE_PARM ( refresh_template_name => 'hr_refg_dt', parameter_name => 'dblink', new_default_parm_value => 'orc3.example.com', new_prompt_string => 'Enter your master site:', new_user_override => 'Y'); END; / /*
個々のリモート・マテリアライズド・ビュー・サイトにおけるカスタム・データ・セットのインスタンス化を自動的に行うためには、指定したユーザーが、ターゲット・テンプレートをインスタンス化した場合に自動的に使用されるユーザー・パラメータ値を定義します。CREATE_USER_PARM_VALUEプロシージャを使用すると、ユーザー・パラメータに値を割り当てることができます。
次のタスクを実行して、ユーザー・パラメータ値を定義します。
ユーザーhrに対するdeptユーザー・パラメータ値を定義します。
*/ DECLARE a NUMBER; BEGIN a := DBMS_REPCAT_RGT.CREATE_USER_PARM_VALUE ( refresh_template_name => 'hr_refg_dt', parameter_name => 'dept', user_name => 'hr', parm_value => '20'); END; / /*
ユーザーhrに対するdblinkユーザー・パラメータ値を定義します。
*/ DECLARE a NUMBER; BEGIN a := DBMS_REPCAT_RGT.CREATE_USER_PARM_VALUE ( refresh_template_name => 'hr_refg_dt', parameter_name => 'dblink', user_name => 'hr', parm_value => 'orc3.example.com'); END; / /*
手順5 プライベート・テンプレートに対してユーザーを認証します。
これはプライベート・テンプレート(手順1で定義したDBMS_REPCAT_RGT.CREATE_REFRESH_TEMPLATEファンクションのpublic_template => 'N')であるため、dt_personnelデプロイメント・テンプレートのインスタンス化をユーザーに認証する必要があります。認証ユーザーを作成するには、DBMS_REPCAT_RGTパッケージのCREATE_USER_AUTHORIZATIONファンクションを使用します。
*/ DECLARE a NUMBER; BEGIN a := DBMS_REPCAT_RGT.CREATE_USER_AUTHORIZATION ( user_name => 'hr', refresh_template_name => 'hr_refg_dt'); END; / COMMIT; SET ECHO OFF SPOOL OFF /************************* END OF SCRIPT **********************************/
デプロイメント・テンプレートを作成した後、テンプレートをパッケージ化してインスタンス化を行う必要があります。ここでは、オンラインとオフラインのインスタンス化プロシージャの使用例を示します。オンラインとオフラインのインスタンス化プロシージャは非常に類似しており、必要に応じてINSTANTIATE_ONLINEファンクションとINSTANTIATE_OFFLINEファンクションのいずれかを使用します。この項では、インスタンス化スクリプトの作成およびファイルへのそのスクリプトの保存という2つのタスクについて説明します。
INSTANTIATE_OFFLINEまたはINSTANTIATE_ONLINEファンクションを実行すると、OracleではUSER_REPCAT_TEMP_OUTPUTデータ・ディクショナリ・ビューにスクリプトが移入されて、リモート・マテリアライズド・ビュー環境が構築されます。オンラインとオフラインのスクリプトのいずれにも、デプロイメント・テンプレートで指定されたオブジェクトを作成するためのSQL文が含まれます。ただし、オフライン・インスタンシエーション・スクリプトには、オブジェクトに移入するデータが含まれます。オンライン・インスタンシエーション・スクリプトには、このデータは含まれません。オンライン・インスタンシエーションでは、マテリアライズド・ビュー・サイトがマスター・サイトに接続して、このデータをダウンロードします。
必要に応じて、「デプロイメント・テンプレートをパッケージ化してオフライン・インスタンシエーション」または「デプロイメント・テンプレートをパッケージ化してオンライン・インスタンシエーション」に示す手順を実行してください。
|
注意:
|
INSTANTIATE_OFFLINEファンクションは、指定されたデプロイメント・テンプレートの内容に従って、マテリアライズド・ビュー環境を構築するスクリプトを生成します。このスクリプトには、マテリアライズド・ビュー環境を構築するためのDDL(CREATE文)の他に、マテリアライズド・ビュー環境に適切なデータ・セットを移入するためのDML(INSERT文)が含まれています。
|
注意: デプロイメント・テンプレートをパッケージ化するマスター・サイトに、デプロイメント・テンプレート用のターゲット・マスター・オブジェクトが含まれている場合は、ループバック・データベース・リンクを作成する必要があります。 |
--Use the INSTANTIATE_OFFLINE function to package the --template for offline instantiation by a remote materialized view --site. Executing this procedure both creates a script that --creates that materialized view environment and populates the --environment with the proper data set. This script is stored --in the temporary USER_REPCAT_TEMP_OUTPUT view. CONNECT repadmin@orc3.example.com Enter password: password SET SERVEROUTPUT ON DECLARE dt_num NUMBER; BEGIN dt_num := DBMS_REPCAT_RGT.INSTANTIATE_OFFLINE( refresh_template_name => 'hr_refg_dt', user_name => 'hr', site_name => 'mv4.example.com', next_date => SYSDATE, interval => 'SYSDATE + (1/144)'); DBMS_OUTPUT.PUT_LINE('Template ID = ' || dt_num); END; / COMMIT; /
dt_num変数に戻される値を記録しておきます。この値は、USER_REPCAT_TEMP_OUTPUTデータ・ディクショナリ・ビューから選択して、生成されたスクリプトを取り出すときに使用する必要があります。このタスクを実行した後、「インスタンス化スクリプトのファイルへの保存」に示す手順に従ってください。このスクリプトは、個々のマテリアライズド・ビュー・サイトに一意であり、他のマテリアライズド・ビュー・サイトでは使用できません。
INSTANTIATE_ONLINEファンクションは、指定されたデプロイメント・テンプレートの内容に従って、マテリアライズド・ビュー環境を構築するスクリプトを生成します。このスクリプトがリモート・マテリアライズド・ビュー・サイトで実行されると、スクリプト内のDDL(CREATE文)に従ってマテリアライズド・ビュー・サイトが作成され、マスター・サイトから適切なデータ・セットが移入されます。この処理では、リモート・マテリアライズド・ビュー・サイトが、マスター・サイトにオンラインで接続されている必要があります。
|
関連項目: マテリアライズド・ビュー・サイトのその他の要件は、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。 |
--Use the INSTANTIATE_ONLINE function to "package" the --template for online instantiation by a remote materialized view --site. Executing this procedure creates a script which can --then be used to create a materialized view environment. This script --is stored in the temporary USER_REPCAT_TEMP_OUTPUT view. CONNECT repadmin@orc3.example.com Enter password: password SET SERVEROUTPUT ON DECLARE dt_num NUMBER; BEGIN dt_num := DBMS_REPCAT_RGT.INSTANTIATE_ONLINE( refresh_template_name => 'hr_refg_dt', user_name => 'hr', site_name => 'mv4.example.com', next_date => SYSDATE, interval => 'SYSDATE + (1/144)'); DBMS_OUTPUT.PUT_LINE('Template ID = ' || dt_num); END; / COMMIT; /
dt_num変数に戻される値を記録しておきます。この値は、USER_REPCAT_TEMP_OUTPUTデータ・ディクショナリ・ビューから選択して、生成されたスクリプトを取り出すときに使用する必要があります。このタスクを実行した後、「インスタンス化スクリプトのファイルへの保存」に示す手順に従ってください。
USER_REPCAT_TEMP_OUTPUTデータ・ディクショナリ・ビューの内容を効率的に保存するには、UTL_FILEパッケージを使用して、USER_REPCAT_TEMP_OUTPUTビューのTEXT列の内容をファイルに保存します。
これらの内容は、ディレクトリ・オブジェクトに対応するディレクトリに保存されます。ディレクトリ・オブジェクトを作成するには、CREATE ANY DIRECTORY権限が必要です。レプリケーション管理者がこの権限を持っていない場合は、権限を付与できる管理ユーザーとして接続します。次に例を示します。
GRANT CREATE ANY DIRECTORY TO repadmin;
|
注意: 次に示すアクションは、 |
|
関連項目:
|
次の項目を入力して、デプロイメント・テンプレート・スクリプトをファイルに保存します。
DECLARE
fh UTL_FILE.FILE_TYPE;
CURSOR ddlcursor(myid NUMBER) IS
SELECT TEXT FROM USER_REPCAT_TEMP_OUTPUT WHERE OUTPUT_ID = myid ORDER BY LINE;
BEGIN
fh := UTL_FILE.FOPEN ('file_location', 'file_name', 'w');
UTL_FILE.PUT_LINE (fh, 'SET ECHO OFF;');
FOR myrec IN ddlcursor(template_id) LOOP
UTL_FILE.PUT_LINE(fh, myrec.text);
END LOOP;
UTL_FILE.PUT_LINE (fh, 'SET ECHO ON;');
UTL_FILE.FFLUSH(fh);
UTL_FILE.FCLOSE(fh);
END;
/
file_location、file_nameおよびtemplate_idはプレースホルダであることに注意してください。使用している環境に合わせて正しい値に置換します。
file_locationプレースホルダを、テンプレート・スクリプトの保存先ディレクトリを表すディレクトリ・オブジェクトの名前に置換します。
file_nameプレースホルダを、テンプレートのスクリプトに使用する名前で置換します。
template_idプレースホルダを、以前テンプレートをパッケージ化したときに、INSTANTIATE_OFFLINEまたはINSTANTIATE_ONLINEファンクションから戻された番号で置換します。
たとえば、次のような値があるとします。
| プレースホルダ | 値 |
|---|---|
file_location |
/home/gen_files/ |
file_name |
sf.sql |
template_id |
18 |
これらの値を指定した後、レプリケーション管理者としてマスター・サイトに接続します。次のプロシージャを実行してテンプレートのスクリプトをファイルに保存します。
CONNECT repadmin@orc3.example.com
Enter password: password
CREATE DIRECTORY GFILES AS '/home/gen_files';
DECLARE
fh UTL_FILE.FILE_TYPE;
CURSOR ddlcursor(myid NUMBER) IS
SELECT TEXT FROM USER_REPCAT_TEMP_OUTPUT WHERE OUTPUT_ID = myid
ORDER BY LINE;
BEGIN
fh := UTL_FILE.FOPEN ('GFILES', 'sf.sql', 'w');
UTL_FILE.PUT_LINE (fh, 'SET ECHO OFF;');
FOR myrec IN ddlcursor(18) LOOP
UTL_FILE.PUT_LINE(fh, myrec.text);
END LOOP;
UTL_FILE.PUT_LINE (fh, 'SET ECHO ON;');
UTL_FILE.FFLUSH(fh);
UTL_FILE.FCLOSE(fh);
END;
/
インスタンス化スクリプトを作成して、それをファイルに保存した後、テンプレートをインスタンス化するリモート・マテリアライズド・ビュー・サイトにこのファイルを配布する必要があります。ファイルを配布するには、FTPサイトにファイルを送信するか、CD-ROM、フロッピィ・ディスクなどに保存します。ファイルは、DBMS_FILE_TRANSFERパッケージを使用して転送することもできます。
インスタンス化スクリプトがリモート・マテリアライズド・ビュー・サイトに配布された後、そこでデプロイメント・テンプレートをインスタンス化できます。デプロイメント・テンプレートをインスタンス化する前に、マテリアライズド・ビュー・サイトが設定されていることを確認してください。次のスクリプトは、リモート・マテリアライズド・ビュー・サイトでインスタンス化処理を実行する方法を示します。
|
関連項目:
|
|
注意: このドキュメントをオンラインで参照している場合は、次の「BEGINNING OF SCRIPT」の行から「END OF SCRIPT」の行までのテキストをテキスト・エディタにコピーして編集し、使用している環境に適したスクリプトを作成します。 |
/************************* BEGINNING OF SCRIPT ******************************
手順1 マテリアライズド・ビュー・サイトにスキーマが存在しない場合は作成します。
リモート・マテリアライズド・ビュー・サイトでインスタンス化スクリプトを実行する前に、レプリケート・オブジェクトを含むスキーマを作成します。
次の例は、hrスキーマの作成方法を示します。このスキーマは、データベースにすでに存在する場合があります。その場合、そのスキーマには、CREATE MATERIALIZED VIEW、ALTER ANY MATERIALIZED VIEW、CREATE DATABASE LINKなどの追加の権限が必要な場合があります。
*/
SET ECHO ON
SPOOL instant_mv.out
CONNECT system@mv4.example.com
CREATE TABLESPACE demo_mv
DATAFILE 'demo_mv.dbf' SIZE 10M AUTOEXTEND ON
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
CREATE TEMPORARY TABLESPACE temp_mv
TEMPFILE 'temp_mv.dbf' SIZE 5M AUTOEXTEND ON;
ACCEPT password PROMPT 'Enter password for user: ' HIDE
CREATE USER hr IDENTIFIED BY &password;
ALTER USER hr DEFAULT TABLESPACE demo_mv
QUOTA UNLIMITED ON demo_mv;
ALTER USER hr TEMPORARY TABLESPACE temp_mv;
GRANT
CREATE SESSION,
CREATE TABLE,
CREATE PROCEDURE,
CREATE SEQUENCE,
CREATE TRIGGER,
CREATE VIEW,
CREATE SYNONYM,
ALTER SESSION,
CREATE MATERIALIZED VIEW,
ALTER ANY MATERIALIZED VIEW,
CREATE DATABASE LINK
TO hr;
/*
手順2 スキーマへのデータベース・リンクが存在しない場合は作成します。
デプロイメント・テンプレートをインスタンス化する前に、レプリケーション・スキーマへの必要なデータベース・リンクが存在することを確認します。マテリアライズド・ビューの所有者は、マスター・サイトの設定時に作成したproxy_refresherへのデータベース・リンクが必要です。
*/ CREATE PUBLIC DATABASE LINK orc3.example.com USING 'orc3.example.com'; CONNECT hr@mv4.example.com CREATE DATABASE LINK orc3.example.com CONNECT TO proxy_refresher IDENTIFIED BY &password; /*
手順3 インスタンス化スクリプトを実行します。
*/
CONNECT mviewadmin@mv4.example.com @d:\sf.sql SET ECHO OFF SPOOL OFF /*
構築するマテリアライズド・ビュー環境の規模やロードされるデータ量によっては、インスタンス化処理にかなり時間がかかる場合があります。
************************** END OF SCRIPT **********************************/
オフライン・インスタンシエーション・メソッドを使用してデプロイメント・テンプレートをインスタンス化した場合は、次の実行文を発行して、できるだけ早くリフレッシュ・グループをリフレッシュします。
CONNECT hr@mv4.example.com Enter password: password EXECUTE DBMS_REFRESH.REFRESH ('hr_refg');