Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Remote » チュートリアル:SQL Remote システムの作成

 

レッスン 5 :リモートデータベースの抽出

このレッスンでは、統合データベースからリモートデータベースを抽出して、リモートユーザー用のデータベースを作成します。

メッセージの送受信を行い SQL Remote システムに組み込まれるように、リモートデータベースを設定する必要があります。統合データベース (hq) と同様に、出力メッセージのソースを識別するためにリモートデータベースには CURRENT PUBLISHER が必要です。また、サブスクライバーとして識別された統合データベース (hq) も必要です。

dbxtract ユーティリティを実行して、以下を含むリモートデータベースを作成します。

  • 統合データベースに対するサブスクリプション

  • パブリケーション

  • データの現在のコピー

 ♦ リモートデータベースを抽出する
  1. c:\tutorialディレクトリから次のコマンドを実行して、統合データベース (hq) からユーザー field_user のリモートデータベースのスキーマを抽出します。

    dbxtract -v -c "UID=DBA;PWD=sql;SERVER=server_hq;DBF=C:\tutorial\hq.db" c:\tutorial field_user

    このコマンドは以下を実行します。

    • 現在のディレクトリに、reload.sql という名前の SQL スクリプトファイルを作成します。reload.sql ファイルには、新しいデータベースにロードするためのスキーマと命令が含まれています。

    • c:\tutorial ディレクトリにデータファイルを作成します。

    • リモートユーザーに対するサブスクリプションを開始します。

  2. c:\tutorial ディレクトリから次のコマンドを実行して、リモートデータベースを作成します (field)。

    dbinit field.db 
    警告

    運用環境では、同じディレクトリに 2 つのレプリケートデータベースを格納しないでください。

  3. データベース情報をリモートデータベース (field) にロードします。

    DBA 権限を持つユーザーとして、Interactive SQL からリモートデータベース (field) に接続します。

    dbisql -c "UID=DBA;PWD=sql;SERVER=server_field;DBF=c:\tutorial\field.db"
  4. 次の文を実行して、reload.sql ファイルを読み込みます。

    READ C:\tutorial\reload.sql;

    reload.sql スクリプトファイルは以下を実行します。

    • リモートデータベースでメッセージタイプを作成します。

    • リモートデータベース (field) に PUBLISH パーミッションを付与します。

    • リモートデータベース (field) に SalesReps テーブルと Customers テーブルを作成します。これらのテーブルは、統合データベース (hq) 中のデータと同じデータを含みます。

    • レプリケートするデータを示すパブリケーションを作成する。

    • 統合データベース (hq) 用のサブスクリプションを作成し、開始する。

  5. 次の文を実行して、テーブルが作成されたことを確認します。

    SELECT * FROM SalesReps;

    上記のクエリは、SalesRep テーブルから次のデータを返します。

    rep_key name
    rep1 Field User
    rep2 Another User
    SELECT * FROM Customers;

    上記のクエリは、Customers テーブルから次のデータを返します。

    cust_key name rep_key
    cust1 Ocean Sports rep1