この章では、多くのデータ・レプリケーションおよび統合環境に必要な一般的なタスクの実行方法を説明します。
この章は次の項で構成されています。
複数の場所にあるデータにアクセスするには、最初に各場所を一意に識別できることを確認する必要があります。次に、これらの場所の間に通信パスを確立する必要があります。
各データベースの一意識別子をグローバル・データベース名と呼びます。初期化パラメータGLOBAL_NAMES
をTRUE
に設定することで、分散データベース環境内の各データベースを一意に識別できることが保証されます。データベースは、DB_NAME
初期化パラメータで指定された個々のデータベース名の前に、データベース作成時にDB_DOMAIN
初期化パラメータで指定されたデータベース・ネットワーク・ドメインを付けることで、グローバル・データベース名を形成します。
GLOBAL_NAMES
パラメータには、データベース・リンクが接続先データベースと同じ名前を持つ必要があるかどうかを指定します。分散処理を使用する場合は、各データベースでこのパラメータをTRUE
に設定し、ネットワーク環境でのデータベースおよびリンクについて一貫したネーミング規則を確実に使用することをお薦めします。
データベースでGLOBAL_NAMES初期化パラメータをTRUEに設定するには:
初期化パラメータを変更できる管理ユーザーとして、Enterprise Managerにログインします。たとえば、SYSDBA
権限を持つユーザーとしてログインできます。
データベース・インスタンスの「データベース」ホームページに移動します。
「サーバー」をクリックして「サーバー」サブページを開きます。
「データベース構成」セクションで「初期化パラメータ」をクリックします。
サーバー・パラメータ・ファイルを使用している場合、「SPFile」をクリックしてください。使用していない場合は次の手順に進みます。
「初期化パラメータ」ページで、検索ツールにGLOBAL_NAMES
と入力します。
「実行」をクリックします。
GLOBAL_NAMES
初期化パラメータをTRUE
に設定します。
「適用」をクリックすると変更が保存されます。
パラメータをサーバー・パラメータ・ファイルで永続的に設定するか、初期化パラメータ・ファイルで永続的に設定するかを確認してください。
分散環境の各データベースについて、手順1から9を実行します。デフォルトでは、GLOBAL_NAMES
初期化パラメータはFALSE
に設定されます。したがって、各データベースで明示的にTRUE
に設定する必要があります。
別の項からこの項に移動した場合は、ここでその項に戻ります。
関連項目:
|
Oracle Streamsのいずれかのコンポーネントを使用することを計画している場合は、Oracle Streams管理者を構成します。Oracle Streamsコンポーネントには次のものがあります。
キュー
キュー表
取得プロセス
同期取得
伝播
適用プロセス
ルールとルール・セット
Oracle Streams管理者は、これらのコンポーネントが使用される各データベースでこれらのコンポーネントを構成および管理します。これらのコンポーネントの詳細は、このマニュアルの次の各項を参照してください。
このチュートリアルでは、Oracle Streams管理者用の表領域を作成し、Oracle Streams管理者を作成して、Oracle Streams管理者に次の権限を付与します。
DBMS_STREAMS_AUTH
パッケージのGRANT_ADMIN_PRIVILEGE
プロシージャで付与される権限
これらの権限は、Oracle Streams管理者に必要です。GRANT_ADMIN_PRIVILEGE
プロシージャで付与される権限の詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
DBA
ロール
DBA
ロールは、取得プロセス、同期取得および適用プロセスを作成または変更するために必要です。ユーザーがこれらのタスクを実行する必要がない場合は、そのユーザーのDBA
ロールを取り消すことができます。
EXP_FULL_DATABASE
ロールおよびIMP_FULL_DATABASE
ロール
これらのロールは、Oracle Streams管理者がデータ・ポンプを使用して、Oracle Streamsのインスタンス化中に他のスキーマにあるデータベース・オブジェクトでのエクスポートおよびインポート操作を実行するために必要です。Oracle Streams管理者が、他のスキーマにあるデータベース・オブジェクトでエクスポートおよびインポート操作を実行しない場合は、そのユーザーからこれらのロールを取り消すことができます。
Database Control管理権限
これらの権限を使用すると、Oracle Enterprise Managerで、Oracle Enterprise Managerジョブの実行などの管理タスクを実行できます。データベースにOracle Streams管理者が存在し、このユーザーにDatabase Control管理権限を付与する場合は、『Oracle Database 2日でデータベース管理者』の手順に従います。
注意: SYS またはSYSTEM ユーザーをOracle Streams管理者として使用しないでください。また、Oracle Streams管理者は、デフォルト表領域としてSYSTEM 表領域を使用しないでください。 |
strmadminという名前の新しいOracle Streams管理者を作成するには:
Oracle Streams管理者は、他のユーザーによって使用されない専用表領域を使用する必要があります。キュー表およびその他のOracle Streamsコンポーネントにはディスク容量が必要であり、専用表領域によってこれらの要件が効率的に満たされます。
Oracle Streams管理者の新規表領域を作成するには:
Enterprise Managerに管理ユーザーとしてログインします。
データベース・インスタンスの「データベース」ホームページに移動します。
「サーバー」をクリックして「サーバー」サブページを開きます。
「記憶域」セクションの「表領域」をクリックします。
「表領域」ページで、「作成」をクリックします。
「表領域の作成」ページが表示され、「一般」サブページが表示されます。
「名前」フィールドにstreams_tbs
と入力します。
「データファイル」セクションで「追加」をクリックして、「データファイルの追加」ページを開きます。
「ファイル名」フィールドにstreams_tbs.dbf
と入力します。
「ファイル・ディレクトリ」フィールドのディレクトリをチェックし、必要に応じて変更します。
「ファイル・サイズ」フィールドのサイズを25
に変更し、リストがMB
に設定されていることを確認します。
「記憶域」セクションで「フルになった場合に自動的にデータファイルを拡張(AUTOEXTEND)」を選択します。
「増分」フィールドに5
と入力し、リストをMB
に設定します。
「最大ファイル・サイズ」フィールドで最大ファイル・サイズを設定します。通常は、「無制限」
に設定したままにするのが最適です。
「続行」をクリックします。
「表領域の作成」ページで、「OK」をクリックします。
「チュートリアル: Oracle Streams管理者の構成」の手順を実行して、Oracle Streams管理者の作成を完了します。
注意: SQL文CREATE TABLESPACE を使用して、表領域を作成することもできます。 |
この項では、「チュートリアル: Oracle Streams管理者の表領域の作成」で構成した表領域を使用するOracle Streams管理者の作成について説明します。
strmadminという名前の新しいOracle Streams管理者を作成するには:
Enterprise Managerに管理ユーザーとしてログインします。
データベース・インスタンスの「データベース」ホームページに移動します。
「データ移動」をクリックして「データ移動」サブページを開きます。
「Streams」セクションの「設定」をクリックします。
「Streams」ページが表示され、「設定」オプションが表示されます。
「Streams管理者ユーザー」をクリックして「Streams管理者を作成」ページを開きます。
「資格証明」セクションのフィールドを完了します。
「ホスト名」フィールドに、データベースが実行されているホストの名前を入力します。
「ポート」フィールドにデータベース・リスナーのポート番号を入力します。
「SID」または「サービス名」フィールドに、Oracleシステム識別子(SID)またはデータベースのサービス名を入力します。
「DBAユーザー名」フィールドに、ユーザーを作成し権限を付与できる管理ユーザーのユーザー名を入力します。
「DBAパスワード」フィールドに、DBAユーザーのパスワードを入力します。
「Streams管理者のユーザー名」フィールドに、Oracle Streams管理者のユーザー名を入力します。
「Streams管理者のパスワード」フィールドに、新しいOracle Streams管理者のパスワードを入力します。
「表領域」フィールドにstreams_tbs
と入力します。この表領域は、「チュートリアル: Oracle Streams管理者の表領域の作成」で作成されたものです。
「ホスト名」、「ポート」、「SID」または「サービス名」フィールドで、現在のデータベースまたは異なるデータベースを指定できます。Oracle Streams管理者は、これらのフィールドで指定したデータベースに作成されます。
「OK」をクリックして、Oracle Streams管理者の構成を完了します。
別の項からこの項に移動した場合は、ここでその項に戻ります。
キューには、Oracle Streams環境のメッセージが格納されます。Oracle Streamsレプリケーション環境では、キューにはデータベース変更に関する情報を含むメッセージが格納されます。Oracle Streamsメッセージ機能環境では、キューにはアプリケーションおよびユーザーによって生成および使用されるメッセージが格納されます。通常、Oracle Streams環境の各データベースには1つ以上のキューがあります。
ANYDATA
キューにより、ほぼすべてのタイプのメッセージを簡単に格納できます。 ANYDATA
キューを使用する場合は、たとえば複数の異なるタイプのアプリケーション・メッセージを同じキューに格納できます。 ANYDATA
キューは、Oracle Streamsレプリケーション環境のデータベース変更に関する情報の格納に使用する必要があります。
ANYDATAキューおよび関連キュー表を作成するには:
Oracle Enterprise Managerで、Oracle Streams管理者としてハブ・データベースにログインします。
「データベース」ホームページに移動します。
「データ移動」をクリックして「データ移動」サブページを開きます。
「Streams」セクションの「アドバンスト・キューの管理」をクリックします。
「アドバンスト・キューの管理」ページで、「作成」をクリックして「キューを作成: キュー・タイプ」ページを開きます。
「通常のキュー、SYS.ANYDATAデータ型」を選択します。
ANYDATA
データ型のキューにより、単一キュー内のほぼ任意のタイプのメッセージを格納できます。
「続行」をクリックして、「キューの作成: 通常のキュー、SYS.ANYDATAデータ型」ページを開きます。
「名前」フィールドにキューの名前を入力します。Oracle Streams環境で使用される典型的なキュー名はstreams_queue
ですが、必要に応じて別の名前を入力することもできます。
キュー表の所有者の名前とキュー表の名前を「キュー表」フィールドに入力します。通常、Oracle Streams管理者はOracle Streamsキューを所有し、典型的なキュー表名はstreams_queue_table
です。したがって、strmadmin.streams_queue_table
と入力するか、必要に応じて別の所有者と名前を入力できます。
Oracle Streams管理者の名前が「キュー・ユーザー」フィールドに入力されていることを確認します。
オプションで、キューの説明を「説明」フィールドに入力します。
「終了」をクリックしてキュー表とキューを作成します。
注意: DBMS_STREAMS_ADM.SET_UP_QUEUE プロシージャを使用して、ANYDATA キューを作成することもできます。 |
別の項からこの項に移動した場合は、ここでその項に戻ります。
分散データベース環境の2つの場所の間に通信パスを確立するには、データベース・リンクを作成する必要があります。 データベース・リンクは、あるデータベースから別のデータベースへの1方向通信パスを定義するポインタです。Oracle Databaseは、データベース・リンクを使用して、あるデータベース上のユーザーがリモート・データベース内のオブジェクトにアクセスできるようにします。ローカル・ユーザーは、リモート・データベース上のユーザーでない場合でも、リモート・データベースへのデータベース・リンクを使用できます。
データベース・リンクは、複数のデータベースにデータを格納する環境またはデータベース間で情報を共有する環境でほとんどの場合に必要です。これらの環境には、分散SQL、Oracle Streamsレプリケーション、マテリアライズド・ビュー・レプリケーションおよびメッセージ機能を使用する環境があります。
分散環境の各データベースのGLOBAL_NAMES
初期化パラメータはTRUE
に設定されているため、2つのデータベース間にリンクを確立する場合はグローバル・データベース名を使用する必要があります。これにより、各データベース・リンクが適切なリモート・データベースに接続できます。
2つのデータベース間にデータベース・リンクを作成する前に、ネットワーク接続を構成して、データベースが相互に通信できるようにする必要があります。データベース間のネットワーク接続の構成の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
ii1.example.comデータベースからii2.example.comデータベースへのデータベース・リンクを作成するには:
Oracle Streams管理者strmadmin
やSYSTEM
などの管理ユーザーとして、Enterprise Managerにログインします。データベース・リンクは、このユーザーのスキーマに作成されます。
ii1.example.com
データベース・インスタンスの「データベース」ホームページに移動します。
「スキーマ」をクリックして「スキーマ」サブページを開きます。
「データベース・オブジェクト」セクションの「データベース・リンク」をクリックします。
「データベース・リンク」ページで、「作成」をクリックして「データベース・リンクの作成」ページを開きます。
「名前」フィールドにデータベース・リンクの名前を入力します。名前は、リンク先のデータベースのグローバル名である必要があります。この例では、データベース・リンク名はii2.example.com
です。
「ネット・サービス名」フィールドに、リンク先のデータベースのネット・サービス名を入力します。この例では、ネット・サービス名はii2.example.com
です。
「接続モード」セクションで「固定ユーザー」を選択します。
「ユーザー名」フィールドで、データベース・リンクを所有するユーザーのユーザー名を入力します。データベース・リンクは、リモート・データベース上のこのユーザーに接続します。この例では、システムのSYSTEM
などの管理ユーザー、Oracle Streams管理者strmadmin
、またはoe
などの通常のデータベース・ユーザーを入力できます。
「パスワード」および「パスワードの確認」フィールドで、リモート・データベース上の指定されたユーザーのパスワードを入力します。
「OK」をクリックしてデータベース・リンクを作成します。
注意: SQL文CREATE DATABASE LINK を使用して、データベース・リンクを作成することもできます。 |
別の項からこの項に移動した場合は、ここでその項に戻ります。