PostgreSQL

PostgreSQL の SELECT句で Null文字列を連結する方法

PostgreSQL の SELECT句で Null文字列を含むカラムを連結すると、全体が Null になります。ex) データ ok_column - OK null_column - null ex) SELECT psql> SELECT ok_column || '-' || null_column FROM foo; (null) これを回避するためには、カラムごとに…

PostgreSQL Conference 2006

PostgreSQL Conference 2006 に行ってきました。 明日もあるので聞きたいのを選んで行って来ます。 今日のセクションで一番気になった点を報告します。 それはPowerGressについてです。 Vacuumレスで運用が楽ですよぉ〜。というアピールをしていたのですが、…

psqlをパスワードを聞かれずに実行する方法

[目的] psql経由でSQLを実行するときに、パスワード入力をせずにワンライナーでおこないたい。 [例えば] cronでpsqlを実行したい。 [psqlの仕様] パスワードを指定するオプションがない。 W/--password は、パスワード入力を要求させるオプション [対応] …

COPY文はインデックスを無視しない?

PostgreSQL8.0.3 でCOPY文を使ってデータのリストアをしたところ、 時間が掛かるのでインデックスを外して再確認したら早くなった。 COPY文はインデックスがあっても高速なもんだと勝手に解釈してました。 MySQLとごっちゃになってますね。。 頭を切り替えよ…

統計情報をリセットする

PostgreSQL8.0.*で、統計情報(キャッシュ)をリセットする方法。 7系も同じだと思います。(未確認) 8.1.*も未確認。 instance=# select pg_stat_reset(); pg_stat_reset --------------- t (1 row)[追記(12/20)] 統計情報をリセットするのであって、キャッシ…

更新処理が多いシステムでのチューニング

PostgreSQL8系を利用して更新処理の多いシステムを作成するときのパラメータチューニングについて書きます。参考:http://www.thinkit.co.jp/free/tech/10/2/1.html[システム情報] ・単一テーブルに数百万レコードが格納されている ・更新処理頻度(INSERT/UP…

pg_stat_activity.current_queryが、と表示される

[原因] stats_command_string = false(default)のため[default postgresql.conf] #stats_start_collector = true #stats_command_string = false #stats_block_level = false #stats_row_level = false #stats_reset_on_server_start = true[対応] postgresq…

psqlプロセスのロック状態 (pg_locks, pg_stat_activity)

[概要] コマンドラインからpsqlでDBに繋いだ場合、 pg_locks, pg_stat_activityではどのように表示されるか?[詳細] □ターミナル1 $ psql template1 template1=# select * from pg_locks; relation | database | transaction | pid | mode | granted ----…

キャッシュヒット率を調べる

[事前作業] 統計情報を収集するために'true'に設定する $ vi $PGDATA/postgresql.conf +stats_start_collector = true +stats_command_string = true +stats_block_level = true +stats_row_level = true +stats_reset_on_server_start = true [キャッシュの…

PostgreSQL 8.0.3 -> 8.1.0 にリストアするとUTF-8エラーが発生する

PostgreSQL8.1.0をようやくインストールしました。 ということで、8.0.3のデータをダンプ -> リストアしたところ、エラーが発生してリストアできませんでした。 エラー内容はUTF-8関連でし、8.0.3ではOkだったものが、8.1.0で弾かれてました。 pg_dumpall…

スキーマだけをダンプする方法

データ以外のすべての情報がほしい場合の手順 欲しい情報 CREATE USER CREATE DATABASE CREATE TABLE CREATE INDEX ... [方法] $ pg_dumpall --globals-only > dump.sql $ pg_dump --schema-only --create template1 >> dump.sql [リストア] $ mysql templat…

PostgreSQLのデータをMySQLに移行する方法

PostgreSQLのデータをMySQLに移行する方法。 [バージョン] PostgreSQL:8.0.3 MySQL:4.1.14 [データ移行] PostgreSQL -> MySQL ダンプ $ psql データベース名 psql> \pset format unaligned psql> \pset fieldsep '\t' psql> \pset null '\\N' # MySQL(LOAD…

シーケンスを動的に設定する

# table1.id の最大値をseq_table1_id に設定する SELECT setval('seq_id', (select max(id) from table1), true); seq_id : シーケンス table1 : テーブル id : table1.id

PostgreSQLシャットダウンの注意点

$ pg_ctl stop を実行すると、起動/停止を最大60秒間待ちます。 注意点 上記の場合、おかしなpostgres子プロセスがいて、60秒間で死なない場合起動に失敗することがあります。 プロセスが腐っていると危険です。落ち着いて対処しましょう。 症状 [postgres@h…

PostgreSQLセミナー2005

日本PostgreSQLユーザ会が主催するセミナーに行ってきました。恵比寿ガーデンプレイスは初めて行きましたが遠いですね。 歩く歩道は、止まってると遅すぎるし。 セミナー自体はまぁまぁ面白かったです。 Doblogの話はずばり事例だったので、PostgreSQLを運用…

PostgreSQL8.1 beta1 が出てた

PostgreSQL: Beta Information 空いてるサーバを見つけてベンチマークを取ってみます

PostgreSQL サーバのシャットダウン注意点

PostgreSQL8.0.*(7.3,7.4系も同じ)におけるシャットダウンの注意点について [シャットダウン方法] #pg_ctl #killコマンド [注意するのはkillコマンドでのシャットダウン] SIGKILL(kill -kill pid )によるシャットダウンに注意すること SIGKILLを送信すると、…

LOG: could not receive data from client: Connection reset by peer

PostgreSQL:8.0.3 libpq:8.0.2からメジャーバージョンアップ "Connection reset by peer" ↑PostgreSQLのソースをgrepするとwin32用のCファイルにエラーメッセージとして記述されている。 まぁメッセージのとおり、クライアント側が中断したから、libpq側…

LOG: checkpoints are occurring too frequently

[ログ] LOG: checkpoints are occurring too frequently (n seconds apart) HINT: Consider increasing the configuration parameter "checkpoint_segments". [ログ内容解説] 前回チェックポイントからセグメントが一定の数(デフォルト3)を消費したときにCH…

PostgreSQLクライアントとDBD::Pgをインストールする方法

DBD::Pgのインストールには、PostgreSQLのライブラリが必要。 libpqだけではDBD::Pgをインストールすることはできない。 README build, test, and install Perl 5 (at least 5.6.1) build, test, and install the DBI module (at least 1.38) build, test, a…

contrib/pgstattupleが改修されてた

http://www.postgresql.jp/document/pg74doc/html/release-7-4.htmlで改修されてたんですね。気づかなかたよ。。