>> はじめに |
インストールし、簡単な設定を行うだけで、1つのテーブルを指定したレプリケーションができるようになりました。今回からしばらくは、こちらのテーブルを使用して、SharePlexのインストール ガイドに記載されている「基本デモンストレーション」の内容に沿って、いろいろな動作を見ていきたいと思います。
>> 大量のデータの複製とその状況を見てみよう |
前回は、たった1件のINSERTの実行のみでしたが、さすがにそれではテストとしても少なすぎると思います。ということで、今回は大量のデータの複製とその状況の確認を行ってみます。
■ターゲット側の状況を確認するperf_mon.shを使用しよう
データを転送する先では、postという処理により複製されたトランザクションがSQL文によってターゲット側に反映されます。その処理数の状況を確認するためにSharePlexでは、perf_mon.shというスクリプトを用意しています。
このスクリプトは、製品ディレクトリのutil以下に存在します。これをターゲット側のサーバで動作させます。 引数なしで実行すると以下のようなエラーが表示されることがあります。
|
その際には、環境変数SP_SYS_BINDIRにSharePlex製品ディレクトリであるパスを設定してください。実行して、使い方が表示されれば問題ありません。
|
perf_mon.shは、次のような構文で使用することになっています。
|
ソース側でトランザクションを発行させる前に実行して、トランザクション実行後までの経過を見てみたいと思いますので、いつでも実行できる準備をしておきます。
■ソース側で大量のトランザクションを発生させるPL/SQLスクリプト
次に、ソース側で前回も使用したdemo_srcテーブルに対してたくさんのトランザクションを発生させます。と言っても、すべて手入力という訳にはいきませんので、簡単なPL/SQLを用意して、それでINSERTしてみましょう。
以下の内容のスクリプトをdemo.sqlとして保存しておきます。
【ご注意】 本スクリプトは製品には含まれておりません。また、無保証になります。
|
■トランザクションを発生させて、状況を確認してみる
スクリプトの準備ができたら、先にターゲット側でperf_mon.shの実行を行っておきます。標準的にはおそらく5分くらいで実行されると思いますので、30秒間隔で10回程度に設定してみます (環境によって変更してください)。トランザクションが発生していない状態では、メッセージの件数等は"0"になっています。
|
その後に、作成しておいたPL/SQLのスクリプトをソース側で実行します。PL/SQL自体は比較的すぐに終了し、件数が増えていることが確認できるはずです (このスクリプトでは、10万件のトランザクションを発生します)。
|
ターゲット側のperf_mon.shの実行結果を確認すると、TPS (Transaction per sec) の値を確認することができます。Insertの1/100の数分だけcommitが行われているというのもよく分かります。
|
ターゲット側で複製されたテーブルの件数を確認してみても、ソース側と一緒であることが確認できました。
|
>> まとめ |
大量のトランザクションが発生しても、簡単にレプリケーションが実行できていることが確認できました。また、その状況を確認するperf_mon.shを使用して、メッセージの処理件数等をご覧いただきました。
次回は、状態の変化に対応するSharePlexの動作について、確認してみたいと思います。