| ||||||||||||
| 前のページ 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'); ← 11と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 次のページ | ||||||||||||
| ||||||||||||
| ||||||||||||
| ||||||||||||

