|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| PostgresForestにアクセスしてみる | ||||||||||||
|
PostgresForestに同梱されているアプリケーションに「Jpsql」があります。これはPostgresForestのJDBCドライバを使った、コマンドライン上でのSQL発行アプリケーションです。PostgreSQLに同梱されているpsqlの、PostgresForest版だと考えればわかりやすいでしょう。ただしPostgreSQLのpsqlと異なり、DDLの発行はできません。 |
||||||||||||
| Jpsqlを使ってSQLを発行してみる | ||||||||||||
|
それでは早速Jpsqlを使ってSQLを発行してみましょう。まずはJpsqlを使ってPostgresForestへ接続します。なお、コマンドの詳細なオプションなどは、マニュアルをご覧ください。
postgres@localhost ~]$ /home/postgres/forestbin/402_1/bin/Jpsql.sh -h localhost -p 5432 -g gsc -d sample -U postgres -W postgres
上記のようなプロンプトが表示されれば成功です。 この状態で先ほど表示しておいたターミナルウィンドウを見ると、定期的にSQLが発行されたことを示すログが表示されるはずです。これは、JDBCドライバからGSCに対するアクセスです。 続いて実際にSQLを発行し、動きをみてみましょう。以下のSQLを1つずつ入力してみてください。
INSERT INTO customer VALUES (0, 'AAストア', '東京都江東区豊洲123-456'); ← 1
1と2はレプリケーションテーブルへのSQL、3と4はパーティションテーブルへのSQLです。 1を実行すると、両方のPostgreSQLサーバのターミナルウィンドウに、SQLが届いたログがみえているはずです。 2を実行した場合は片方のサーバのみに参照SQLが振り分けられる負荷分散の様子が確認できるはずです。また、2のSQLを何度も発行すると、そのたびに実行するPostgreSQLサーバが交互に入れ変わっていることもわかります。 3と4を実行した場合は、テーブル名がパーティション名に書き変わっている様子をみることができます。また4では両方のPostgreSQLサーバで別のパーティションを並列に検索している様子がわかるはずです。 |
||||||||||||
| 障害時の動きを見る | ||||||||||||
|
続いてPostgreSQLサーバに障害が起こった時、PostgesForestとしてどのような振る舞いをするか、実際に試してみましょう。 まずはJpsqlを切断します。Jpsqlを起動したターミナルウィンドウで、CTRL+Cを押すか\qを入力してください。
[14] \q
さらに2つめのPostgreSQLサーバを立ち上げたターミナルウィンドウで、次のコマンドを入力してPostgreSQLサーバを停止します。
[postgres@localhost ~]$ /home/postgres/forestbin/402_2/bin/forest_ctl -m f stop
これによってPostgresForestは本来あるべきPostgreSQLサーバに接続できないことになります。この状態で、再度Jpsqlを起動します。
[postgres@localhost ~]$ /home/postgres/forestbin/402_1/bin/Jpsql.sh -h localhost -p 5432 -g gsc -d sample -U postgres -W postgres
この時1つめのPostgreSQLサーバを起動したターミナルウィンドウ上では、たくさんのログが発行されていますが、その中に次のようなログを見つけることができるはずです。
INSERT INTO forest_brokenlog (serverid, datetime, ・・・
これはPostgresForestが2つめのPostgreSQLサーバに異常があったことを検知して、今後は2つめのPostgreSQLサーバにアクセスしないようにサーバの切り離し処理を行った結果になります。 この状態で、Jpsqlから参照SQL/更新SQLのどちらを実行しても、まったく問題なく実行できることが確認できるはずです。PostgresForestが1つのPostgreSQLサーバのみで動作し続けているため、ユーザアプリケーションからは障害を認識することなく、何事も無かったようにサービスを継続することができるのです。
※注:
片方のPostgreSQLサーバを落として運用した後、元の状態に復旧するためにはリカバリの処理が必要になります。今回リカバリに関しては解説していませんので、ドキュメントを参照してください。
|
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||

