2008年 2月 26日 火曜日
やっぱり Sun がスキ!
はじめてみよう! PostgreSQL for Solaris 10
Solaris 10 6/06 (update 2) から、PostgreSQL がバンドルされました。
具体的にはSolaris 10 6/06,11/06 には PostgreSQL 8.1.x が、Solaris 10 8/07 には
PostgreSQL 8.1.x,8.2.x が Solaris に最適化された形でコンパイルしたものが入っています。
ソースコードは PostgreSQL と同じものです。
これらのバイナリはSolaris にバンドルされておりますのでもちろん使用権無償でご利用いただけます。
バンドルされた PostgreSQL の保守サポートを受ける場合は Solaris の
サポートとは別オプションで提供しています。
ちなみに、PostgreSQL は 8.2 からソースコードに DTrace プローブポイントが埋め込まれており、
コンパイル時に "--enable-dtrace" オプションをつけることにより、利用することができます。
もちろん、バンドルされている PostgreSQL 8.2 にはこのオプションがついた形でコンパイルされております。
ディレクトリ構造は以下のようになっています。
< PostgreSQL 8.1.x >
実行形式 /usr/bin
ライブラリ /usr/lib
ドキュメント /usr/share/doc/pgsql/8.1.x
/usr/share/doc/pgsql/8.1.x/contrib
Contrib /usr/share/pgsql/contrib
Data /var/lib/pgsql/data --> 空
バックアップ領域 /var/lib/pgsql/backups --> 空
テンプレート /usr/share/pgsql
開発用ヘッダ /usr/include/pgsql
その他の共有データ /usr/share/pgsql
< PostgreSQL 8.2.x > 実行形式 /usr/postgres/8.2/bin ライブラリ /usr/postgres/8.2/lib ドキュメント /usr/postgres/8.2/doc Contrib /usr/postgres/8.2/share/contrib Data /var/postgres/8.2/data --> 空 バックアップ領域 /var/postgres/8.2/backups --> 空 テンプレート /usr/postgres/8.2/share 開発用ヘッダ /usr/postgres/8.2/include その他の共有データ /usr/postgres/8.2/share
ご覧いただくとお分かりの通り、PostgreSQL 8.1.x では /usr/bin にバイナリがあるため、
例えば postgres や pg_ctl のようなコマンドは既にパスが通っています。
ただし、PostgreSQL 8.2 を使用する場合には /usr/postgres/8.2/bin にあるため、
/usr/bin の前にパスを通しておくことが必要となりますのでご注意ください。
ここでは Solaris 10 8/07 を前提とし、実際にサービスを起動するまでの手順を紹介します。
( "#" は root のプロンプト、"$" は postgres ユーザーのプロンプトを示します。)
Solaris 10 8/07 では postgres ユーザーおよび postgres グループがデフォルトで
入っておりますので、今回はそれを使用します。
< PostgreSQL 8.1.x > 1.root ユーザーで PostgreSQL のデータ領域の権限を postgres ユーザー・グループに変更し、 postgres ユーザーでログインする # chown postgres:postgres /var/lib/pgsql/data # su - postgres 2.PostgreSQL のデータベースクラスタを作成する $ /usr/bin/initdb -D /var/lib/pgsql/data 3.svcadm で PostgreSQL を起動する # /usr/sbin/svcadm enable postgresql:version_81
< PostgreSQL 8.2.x > 1.root から、postgres ユーザーにログインする # su - postgres 2.PostgreSQL のデータベースクラスタを作成する $ /usr/postgres/8.2/bin/initdb -D /var/postgres/8.2/data 3.svcadm で PostgreSQL を起動する # /usr/sbin/svcadm enable postgresql:version_82
起動までの手順は以上です。
これだけですぐに PostgreSQL を利用できます。
Solaris 10 8/07 からは PostgreSQL のサービスも SMF で定義されているので、
PostgreSQL で使用する pg_ctl コマンドを利用しなくても簡単に起動できます。
もちろん、PostgreSQL で使用する pg_ctl コマンドなどで起動・停止していただくことも可能です。
# svcs postgresql STATE STIME FMRI disabled 16:09:02 svc:/application/database/postgresql:version_81 disabled 19:29:25 svc:/application/database/postgresql:version_82
以下のサイトに PostgreSQL for Solaris に関する有用な情報が満載ですのでご参照下さい!
o PostgreSQL for Solaris
http://www.sun.com/software/products/postgresql/index.jsp
o PostgreSQL Tuning Tips for Sun Fire T2000 Systems Running Solaris
http://www.sun.com/servers/coolthreads/tnb/applications_postgresql.jsp
Posted at 06:16午後 2 26, 2008 by Shinichi Tanabe in Sun | 投稿されたコメント[1]
いつも参考にさせて頂いています。
Solaris のデフォルトの postgres ユーザのホームディレクトリがルート(/)なのが怖いので、私はDataディレクトリの直上に変更しています。
PosstgreSQL 8.2.x -> /var/postgres/8.2
8.1.x の場合は、/var/lib/pgsqlのオーナがrootなので、注意が必要かも知れません。
また、データベースクラスタを作成する際、特に日本語を扱う場合はオプションが必要です。
$ /usr/postgres/8.2/bin/initdb -E UTF-8 --no-locale -D /var/postgres/8.2/data
"-E"は漢字コード指定ですが、システムデフォルトがUTF-8なら不要かも知れません。
"--no-locale"は、特に2バイト文字を扱う場合に必須です。
私は、実際に上記で運用しています。
Posted by bunroku on 3月月 14日, 2008年 at 11:24 午前 JST #