PostgreSQL

Slony-Iを停止させずにテーブルを追加する

Slony-Iを用いた非同期レプリケーションを構築している環境で、テーブル追加をする場合、やや面倒な手順を踏まないといけません。このあたりはMySQLのレプリケーションに劣るところですね。 手順の概要 Slony-I環境にテーブルを追加するには、以下の手順を実…

PgpoolでのPreparedStatementのDEALLOCATE問題

Pgpool(ver 2.3.3)を使っていて、たまにDEALLOCATE*1に関するエラーが発生するので調査していました。 状況 Pgpoolログに、「DEALLOCATE pdo_stmt_00000001 message: prepared statement "pdo_stmt_00000001" does not exist」とエラー出力される PostgreSQL…

PostgreSQLでエスケープ文字を利用する場合の注意

以下の例のように「nonstandard use of \\ in a string literal」とかログに出ててビビッた。 SELECT position ( 'C:\\\\aaa/bbb/sample.txt' in '\\\\' ) FROM hoge message: nonstandard use of \\ in a string literal 下記、引用の通り、エスケープ文字…

PostgreSQLでの「canceling autovacuum task」ログについて

PostgreSQLのログに、下記のエラーが出たので、調査してました。 ERROR: canceling autovacuum taskでも、「エラーではなく、あくまでキャンセル」とのことなので、気にすることはなさそう。*1原因としては、以下が想定できますが、頻繁に監視にひっかかると…

Slony-Iを利用する際の注意点

Slony-Iは、意外と運用が難しいので、構築時、または運用時における、注意点をまとめておきます。 ロードバランス機能は提供されない 複数のノードに対してデータの検索を振り分けたり、データの更新をマスタのみに送信したりするには、基本的にクライアント…

Pgpoolの各動作モードの使いどころ

Pgpoolには、以下のような動作モードがあり、用途によって使い分けることができます。それぞれの特徴やメリットをまとめた上で、各動作モードの使いどころを整理してみたいと思います。特にレプリケーション機能に関する違いがポイントとなります。 ここでは…

PostgreSQL 8.3 から型チェックが厳密になっている件

PostgreSQL 8.3 からは、自動キャストがなくなり、SQLにおける型チェックが厳密化されたようです。 理由は、下記のように説明されています。 この変更の理由は自動キャストによって驚くような振舞いを引き起していたためです。 http://osb.sra.co.jp/technol…