Category Archives: DB関連

MacにPostgreSQL 9.0を入れました。

外出先で仕事をするために、Macにポスグレを入れましたが簡単でした。

基本的には、
http://lets.postgresql.jp/documents/tutorial/macosx/
の記述で、PostgreSQL 8.3 を 9.0に読み替えるだけでOK
MacはMacbook Air 11 inch (late 2010)を使用 OSX 10.6.6 snow leopardにて確認。

手順:

http://www.enterprisedb.com/products-services-training/pgdownload#osx
ここから、installer version Version 9.0.4-1「MacOS X」をダウンロードして実行。
Windowsと同じ感じですね!

pgAdmin IIIも入っていい感じです。
しかし、開発しないときも裏でデーモンが動いてしまっているのは、メモリの無駄ですよね?

調べてみると、以下のコマンドでデーモンの起動・終了を制御できるようです。

sudo launchctl stop com.edb.launchd.postgresql-9.0
sudo launchctl start com.edb.launchd.postgresql-9.0

PostgreSQL Conference 2011 Tokyoに参加してきました。

簡単ですが、レポートします。

有料カンファレンスですが、チケット完売ということで、一部セッションは立ち見でした。どんな人が来るのかと思っていましたが、参加者は、スーツの人も私服の人もいました。日本PostgreSQLユーザ会は頑張っているんだなという印象を受けました。

PostgreSQLを活用した国内初の流通小売業向けSaaS型基幹システム

 当初はポスグレ7系を利用していたが、8.4に移行したという話です。
 かなりのデータ量を扱っているようで、vaccum reindex reanalyzeをするだけでも、ユーザ画面に影響が出ないようにするため、手動でテーブルごとに行う作業が9人で216時間を要するそうです。(これって、9*216時間という意味なのか、合計なのか不明)これだけ大きなデータだと、移行にpgdump,pgrestoreを使うとダウンタイムが長すぎる…そういうことで、Slowlyを使った非同期レプリケーションで移行する方法を採用したとのこと。7系から8.4に移行したことで、600分のバッチ処理が200分で処理できるようになり、ユーザからの問い合わせも減ったそうです。

 相当苦労したということが伝わりました。貴重な話を聞けたと思います。

PostgreSQL 9.0 ストリーミングレプリケーションの実力

 PostgresQL 9.0のレプリケーション機能のベンチマーク発表です。レプリケーション環境を構築して台数を増やしたとき、参照は早くなりますが、更新は遅くなります。その更新系の性能低下は、ほぼ一次関数的らしいです。(2〜12ノードにおいて)
遅くなる原因:

  • CPUでもロック待ちではない
  • 大きな要因は見られない

⇒ IO衝突、ネットワーク混雑、WALセンダーのCPU取り合い等が複合的に起こっているのでは?とのこと。

PostgreSQL アーキテクチャ入門

 ものすごい人気セッション!立ち見、満員電車状態でした。(´Д`;)
 名前だけは聞く程度だった「共有バッファ」「postmaster」などの意味がわかりました。
 パフォーマンス改善の手順について、log_min_durationオプションや、pgFouineを今度使ってみようと思いました。

徹底比較 PostgreSQL vs MySQL

 日本での利用率でMySQLがPostgreSQLを上回ったらしい。負けた要因は!?

  • 「PostgreSQLが遅いというのは事実ではない」(MySQLもInnoDBを使えば劇的に速くはない)
  • PostgreSQLはJIS2004対応!一方、MySQLの日本語対応はあまりやる気がないらしい。
  • Oracleに買収されてから、MySQLの商用版が高くなったらしい
  • レプリケーションはMySQLの方が就實している。PostgreSQLはこれから実績が増えることを期待!

結局どちらが有利というわけではなく、得意不得意がありますということでした。全体的にレプリケーションの話が多かったです。トランザクション周りがポスグレの方が充実しているという話が聞かれなかったのが予想と外れました。

書き込みスケールを実現したPostreSQL-XCクラスタ

 PostgreSQLサーバを複数並べて、更新系も参照系も分散できるクラスタ環境を作る技術で、アプリケーション側からは、ほとんど普通のPostgreSQLに見えるということです。夢のようです。
 トリガーと、GTM(トランザクション制御ノード)のフェイルオーバー機能が開発中とのことです。
 テーブルごとに、レプリケーション(参照が速くなる。マスタ向け)するか、テーブル分割するか(更新が速くなる。トランザクション向け)を選択するらしいです。
 開発も精力的に行われているみたいです!今後に期待!

Let's PostgreSQL

 こんなサイトがあったなんて知らなかった!
 http://lets.postgresql.jp/

ライトニングトーク

 SQLはLLだそうです。かわいいですね。