統合データベース (hq) からリモートデータベースを抽出して、リモートユーザ用のデータベースを作成します。
前提条件
SYS_REPLICATION_ADMIN_ROLE システムロールが必要です。
内容と備考
メッセージの送受信を行い SQL Remote システムに組み込まれるように、リモートデータベースを設定する必要があります。統合データベース (hq) と同様に、出力メッセージのソースを識別するためにリモートデータベースには CURRENT PUBLISHER が必要です。また、サブスクライバとして識別された統合データベース (hq) も必要です。
dbxtract ユーティリティを実行して、以下を含むリモートデータベースを作成します。
統合データベースに対するサブスクリプション
パブリケーション
データの現在のコピー
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 ディレクトリにデータファイルを作成します。
リモートユーザに対するサブスクリプションを開始します。
c:\tutorial ディレクトリから次のコマンドを実行して、リモートデータベースを作成します (field)。
dbinit -dba DBA,sql field.db |
運用環境では、同じディレクトリに 2 つのレプリケートデータベースを格納しないでください。
データベース情報をリモートデータベース (field) にロードします。
SYS_REPLICATION_ADMIN_ROLE システムロールを持つユーザとして、Interactive SQL からリモートデータベース (field) に接続します。
dbisql -c "UID=DBA;PWD=sql;SERVER=server_field;DBF=c:\tutorial\field.db" |
次の文を実行して、reload.sql ファイルを読み込みます。
READ C:\tutorial\reload.sql; |
reload.sql スクリプトファイルは以下を実行します。
リモートデータベースでメッセージタイプを作成します。
リモートデータベース (field) に PUBLISH 権限を付与します。
リモートデータベース (field) に SalesReps テーブルと Customers テーブルを作成します。これらのテーブルは、統合データベース (hq) 中のデータと同じデータを含みます。
レプリケートするデータを示すパブリケーションを作成する。
統合データベース (hq) 用のサブスクリプションを作成し、開始する。
次の文を実行して、テーブルが作成されたことを確認します。
SELECT * FROM SalesReps; |
上記のクエリは、SalesReps テーブルから次のデータを返します。
rep_key | name |
---|---|
rep1 | Field User |
rep2 | Another User |
SELECT * FROM Customers; |
上記のクエリは、Customers テーブルから次のデータを返します。
cust_key | name | rep_key |
---|---|---|
cust1 | Ocean Sports | rep1 |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |