Linux と 32 ビット Windows の間の FTP レプリケーション

概要:このチュートリアルでは、Linux RedHat 6.2 で実行している SQL Anywhere の統合データベースと、Windows NT 4.0 で実行しているリモート・データベースの間のレプリケーションの設定について説明します。

このチュートリアルでは、Linux RedHat 6.2 で実行している統合データベースと、Windows NT 4.0 で実行しているリモート・データベースの間のレプリケーションの設定について説明します。 ここでは、リモート・サイトでは FTP レプリケーション、統合サイトでは FILE レプリケーションを使用します。このチュートリアルでは、2 つの異なるオペレーティング・システム間でのレプリケーションが必要なときに、MAPI や完全な FILE によるレプリケーションではなく、FTP と FILE によるレプリケーションを使用する場合の便利さを説明します。統合データベース用のホスト・オペレーティング・システムとして Linux を選択していますが、基本的にここでの説明は、Sun Solaris などの他のオペレーティング・システムにも適用できます。

このチュートリアルの前提条件は、次のとおりです。

・Adaptive Server Anywhere (SQL Anywhere) が Linux マシンと Windows マシンの両方にインストールされている。

.・ftp サーバ・コンポーネントが Linux マシンにインストールされている。

・SQLREMOTE 環境変数が設定されていない。

・レプリケーション環境の設定ついての基本知識がある。たとえば、Adaptive Server Anywhere (SQL Anywhere) のマニュアルで説明されている FILE レプリケーションのチュートリアルを終了して理解できていれば、このチュートリアルを終了するために必要なレプリケーションの知識があります。

このチュートリアルで使用する環境は、次のとおりです。

統合サイト:

Linux Redhat 6.2
Adaptive Server Anywhere (SQL Anywhere) 7.0.1.918

リモート・サイト:

Win NT 4.0 Service Pack 5
Adaptive Server Anywhere (SQL Anywhere) 7.0.1.918

注意:このチュートリアルでは Adaptive Server Anywhere (SQL Anywhere) 7 を使用していますが、内容は Linux 用の ASA 6、7、8 にも適用できます。

手順 1:

Linux マシンに次のメッセージ・フォルダを作成します。

/replication/cons
/replication/rem1

このチュートリアルでは、asademo.db を統合データベースとして使用します。このデータベースは、Linux マシンの次のディレクトリに保存します。

/consdb

次の図は、このディレクトリの構造を示しています。/replication ディレクトリは可視で、/cons ディレクトリと /rem1 ディレクトリが含まれています。/consdb ディレクトリには、統合データベースである asademo.db とそれに対応するトランザクション・ログが含まれています。

手順 2:

Linux マシンの ftp ユーザとして使用する Linux ユーザを作成します。この例では、ユーザ rem1 を作成しています。このユーザのパスワードは repuser です。また、このユーザのホーム・ディレクトリは /replication に設定しています。

手順 3:

テスト用に、testpub というパブリケーションを作成します。このパブリケーションには、コンタクト・テーブルのアーティクルが含まれています (後述)。更新、挿入、削除を単一のリモート・ユーザ rem1 にレプリケートします。このユーザは先に定義され、remote1.db として抽出されています。また、rem1 で testpub パブリケーションのサブスクリプションが作成されていて、2 つのデータベース間でサブスクリプションが開始されています。

手順 4:

Sybase Central を使用して asademo.db (統合データベース) に接続した後は、rem1 のアドレスを /replication/rem1 に、パブリッシャのアドレスを /replication/cons にそれぞれ設定する必要があります。 次の 2 つの画面では、これらの設定を行う場所を丸で囲んで示しています。

前述のように、リモート・データベースは remote1.db として抽出されています。このデータベースは、Win NT 4.0 のリモート・サイトに展開され、データベースへの接続が Sybase Central を使用して確立されています。ここで、ftp レプリケーションを実行するために、アドレスを変更する必要があります。次の画面は、変更後のアドレスを示しています。選択された [Message Type] は ftp レプリケーションで、パブリッシャのアドレスは rem1 に設定されています。リモート・ユーザのアドレス (統合データベース) は cons に設定されています。

手順 5:

これで、メッセージ・システムが設定されました。次に、統合データベースに対して SQL Remote を実行します。このデータベースは、前述のように統合マシンにあります。実行するには、次のコマンドを XTerm のウィンドウで実行します。

Dbremote -c “uid=dba;pwd=sql;dbf=/consdb/asademo.db”

次の画面でわかるように、dbremote の実行が成功し、メッセージ (ここでは cons.0 ) が /replication/rem1 に保存されています。

手順 6:

dbremote をリモート・サイトで実行します。最初に dbremote を実行すると、ftp サーバの接続情報を入力するダイアログが表示されます。これ以降は、接続情報が sys.sysremoteoption テーブルに格納されるため、dbremote の実行ごとに情報を入力し直す必要はありません。次の画面は、接続ウィンドウを示しています。ユーザ rem1 は、パスワードとして repuser を指定して ftp サーバ (Linux マシンで実行されています) にログインしようとしています。ホストは redhat6-linux です。この例では、rem1 がログインするホーム・ディレクトリに必要なメッセージ・フォルダがあるため、ルート・ディレクトリを指定する必要はありません。リモート・データベースに対して実行した dbremote コマンドは、次のとおりです。

dbremote -c “uid=dba;pwd=sql;dbf=c:\rem1\remote1.db”

次の画面では、dbremote が ftp サーバにログインし、/replication/rem1 ディレクトリにあるメッセージを取得し、メッセージを適用し、メッセージを統合データベースに送信しています。このメッセージは、/replication/cons フォルダに rem1.0 というファイルで保存されています。

ここで、dbremote を統合サイトとリモート・サイトの両方で数回実行し、データが想定どおりにレプリケートされるかどうかを確認することをお勧めします。メッセージ・システムが正常に機能していれば、必要に応じてパブリケーションを設計し、必要な数のリモート・ユーザを追加できます。