行ってきたのでエントリ。
こういうふうにまとめて連投エントリってあんまりよくないと思うんだけど。
ほぼ配布された資料から抜粋。
来るべきPostgreSQL 9.1について
syncronous_relication
- 名前で同期するスレーブが設定できる
- 同期/非同期の混在が可能
- 同期はコスト/レイテンシとのトレードオフなので環境によって取捨選択するとよろしいようです。
- 注意すべきは「更新結果の到着」を「同期」するものであって、DBに反映するまで(つまり参照できるまで)にはタイムラグがある可能性がある
pg_stat_replication
- レプリケーションしているマスタ/スレーブの状態を一括して監視
- 処理状態
- 同期/非同期
- WALの転送位置/リプレイ位置
- クエリで参照できるので、かなり嬉しいはず
- スレーブが大量にあった場合重くなったりするのか?
- pg_ctl promoteでスレーブ⇒マスタに一発昇格もある
pg_basebackup
- 物理オンラインバックアップをコマンド一発で。
- pg_dumpは論理バックアップ。(初めて知った)
- バイナリデータ
- 当然pg_dumpからダンプデータを流すよりも早いし、コストが少なくて済む!
SQL/MED FOREIGN TABLE
- 外部データを直接テーブルとして参照できる
- 外部DB(Oracle/MySQL等)
- Office file
- TwitterAPI
- DATA HUBとして使える
- 但し
- 連携できるのはドライバ次第
- 参照のみ
- 今後UPDATE等を検討中
EXTENSION
- 拡張モジュールのインストールが容易に!
- hstoreとかdblinkとか…
- pgxnとかあるよ⇒http://pgxn.org/
- Perlでいう所のCPANみたいなもの
UNLOGGED TABLE
- WALログに書き込まないので非常に高速(らしい)
- 当然ログに書き込まないのでレプリケーションされない
- DBがクラッシュした場合は当然空
- それ以外は通常のテーブルとして使える
- 作業用テーブルとして使うと幸せになれるかもしれない
WARNING: nonstandard use of \\ in a string literal at character
- postgresql.confのデフォルト値が変更されているので期待通り動かなくなる可能性が高い
- standard_conforming_strings = off⇒デフォルトon
- 一見動作しているように見えるので注意!
所感
- レプリケーションがMySqlに追いついた予感
- 今の自分の環境のシステムで見直しできる箇所が結構あるので9.1入れたいなあ…
- SQL/MEDはUPDATE/INSERTできなくてもいいんじゃねーかって気がする
- UNLOGGED TABLEがレプリケーションされればなあ…保証されなくていい、もしくはキャッシュ的な扱いのデータとかで使えればと思ったけど。
- WITH句とか難しい…使ってないので恩恵を受けられない…
他にもいろいろありましたが、とりあえず気になった所だけ。
あと運用フェーズのお話もありましたが、ちゃんと読みこまないと理解できないので本エントリでは省いてます。
(というかWALログ周りからデータ復旧とか超弱いので…精進します)