PostgreSQLの管理
別ページ::
(2007.2.11) 古い文書に加筆、修正のうえ公開。
(2007.9.19 更新。)
PostgreSQL Global Development Groupによって開発されているフリーなデータベースPostgreSQLの保守、運用、日常管理について。
データベースを利用したプログラミングについては、『基礎から学ぶデータベースプログラミング』を参照。
rpmパッケージでインストールしたときは、 /etc/rc.d/init.d/postgresql コマンドが用意されています。引数として start, stop または restart を与えて実行します。
root UNIXユーザになって、次のようにします。
システムの起動時に自動的にデータベースサーバを開始するには, chkconfig コマンドを使います。
(2011.12 ここから) 起動は次のようにします。
また、システム起動時に自動的に開始するには、次のようにします。
(2011.12 ここまで)
または、postgres UNIXユーザになって、次のようにします。
環境変数PGDATA, PGPORT, PGLOG などは、/etc/sysconfig/pgsql/postgresql というファイル名でシェルスクリプトを置けば、/etc/rc.d/init.d/postgresql ファイルから自動的に参照されます。
データベースサーバ (postmasterデーモン) を起動します。postmasterデーモンを起動する際, -Dオプションか環境変数PGDATAで, データベースクラスタのディレクトリを与えます。postgres UNIXユーザのみがpostmasterデーモンを起動できます。
ただ, postmasterコマンドを直接起動してもいいのですが、起動・終了を安全に行うためのpg_ctlというコマンドがあります。普通はこちらを使います。
「PgAccess」というPostgreSQLをGUIで操作するプログラムを使うときは、-o "-i"オプションを付加します。pg_ctlの-oオプションは、その引数をそのまま postmasterに渡します。
OSの起動時にpostmasterを起動するには、/etc/rc.d/init.d/ ディレクトリにpg_ctlコマンドへのシンボリックリンクを作成し、必要に応じて /etc/rc.d/rc3.d/ などのディレクトリに先のシンボリックリンクへのシンボリックリンクを作成します。
(2007.9.19 更新)
データベースを作成するには、createdbコマンドを使います。当然、postmasterデーモンが動いていなければ動作しません。
-h (--host)、-U (--username) オプションでデータベースのホスト名、接続するユーザを指定し、作成するデータベースについて、所有者 (-O, --owner), 文字コード (-E, --encoding)、データベース名を指定します。
データベースを一覧するには、psqlコマンドに-lオプションを渡します。自分が所有者でないデータベースも一覧表示されます。
データベースを削除するには、dropdbコマンドを使います。データベースユーザ名 (postgresなど) を明示的に指定するには、createdbコマンドと同様に、-Uオプションを渡します。
PgAccessは、Tcl/Tkで書かれた、PostgreSQL用のGUIソフトウェアで、Microsoft Accessに似たインターフェイスを提供する。
(2007.2) 開発が停滞している? (2011.12) 2004年で終了したみたい。
インストール方法::
OSにインストールされているTcl/Tkのバージョンによっては、日本語の入力ができません。
Tcl/Tkバージョン8.4.xであれば問題なく日本語の入出力ができます。バージョン8.4.xはバージョン8.1以降と高い互換性があるので、そのまま上書きインストールしても大丈夫です。
次の3つのパッケージをインストールします。
それから, 環境変数を設定します。
PostgreSQL用のメジャーなGUIツール。アプリケーション開発環境ではなく, データベースを直接操作するためのアプリケーション。
Windows, Linuxの両方でバイナリが提供されている。(wxWidgetsを利用。)
Fedora Core 6では、パッケージが用意されている。pgadmin3-1.4.3
Microsoft Access または Filemaker に似たデータベース管理アプリケーション。
Fedora 15 Linux にはパッケージが用意されている (koffice-kexi, バージョン2.3.3).
KDE用のMicrosoft AccessライクなGUIツール、のようだ。(2011.12) Webサイトがなくなっている。開発終了.
(2011.12)
Bondは、Linux / Windows 用のデスクトップアプリケーションを作成するためのRADフレームワーク。
# データベースサーバの起動、停止と再起動
rpmパッケージを利用
# /etc/rc.d/init.d/postgresql restart
Fedora 16 Linux では SysVスタイルのinit scriptが廃止され、ほぼ systemdに移行しました。systemctl コマンドを使います。
# systemctl start postgresql.service
# systemctl enable postgresql.service
$ PGDATA=/var/lib/pgsql/data pg_ctl restart
ソースからインストールした場合
$ /usr/local/pgsql/bin/pg_ctl -o "-i" start
# データベースの作成と削除
データベースの作成
$ createdb -h localhost -U postgres --encoding=UTF8 --owner=rails booksample
CREATE DATABASE
データベースの一覧
$ ./psql -l
List of databases
Name | Owner | Encoding
-------------+----------+-----------
booksample2 | hori | EUC_JP
template0 | postgres | SQL_ASCII
template1 | postgres | SQL_ASCII
(3 rows)
データベースの削除
$ ./dropdb booksample
DROP DATABASE
# GUIツール
PgAccess
$ tar xzvf pgaccess-0.98.8.20030117.tar.gz
$ cd pgaccess-0.98.8.20030117
$ su
# make clean
# make all
$ ./configure --prefix=/usr && make
$ su
# make install
PGACCESS_HOME=/usr/lib/pgaccess
PGLIB=/usr/local/pgsql/lib
pgAdmin III
Kexi
Rekall
Bond