PostgreSQLとはフリーで利用できるオープンソースのオブジェクトリレーショナルデータベース管理システム(ORDBMS)です。
近年では商用で利用される事が多くなり、性能や信頼性についても商用システムとほとんど変わらないと言われているそうです。
# yum -y install postgresql-server |
既存データベース削除 # rm -rf /var/lib/pgsql/data/* PostgreSQLの実行ユーザでデータベース初期化 # su - postgres -c "/usr/bin/initdb" データベースシステム内のファイルの所有者は"postgres"ユーザでした。 このユーザがサーバプロセスを所有しなければなりません。 データベースクラスタはロケールja_JP.UTF-8で初期化されます。 デフォルトのデータベース符号化方式はUTF8に設定されました。 initdb: ロケール"ja_JP.UTF-8"用の適切なテキスト検索設定が見つかりません デフォルトのテキスト検索設定はsimpleに設定されました。 ディレクトリ/var/lib/pgsql/dataの権限を設定しています ... ok サブディレクトリを作成しています ... ok デフォルトのmax_connectionsを選択しています ... 100 デフォルトの shared_buffers を選択しています ... 32MB 設定ファイルを作成しています ... ok /var/lib/pgsql/data/base/1にtemplate1データベースを作成しています ... ok pg_authidを初期化しています ... ok 依存関係を初期化しています ... ok システムビューを作成しています ... ok システムオブジェクトの定義をロードしています ... ok 変換を作成しています ... ok ディレクトリを作成しています ... ok 組み込みオブジェクトに権限を設定しています ... ok 情報スキーマを作成しています ... ok template1データベースをバキュームしています ... ok template1からtemplate0へコピーしています ... ok template1からpostgresへコピーしています ... ok 警告: ローカル接続向けに"trust"認証が有効です。 pg_hba.confを編集する、もしくは、次回initdbを実行する時に-Aオプショ ンを使用することで変更することができます。 成功しました。以下を使用してデータベースサーバを起動することができます。 /usr/bin/postgres -D /var/lib/pgsql/data または /usr/bin/pg_ctl -D /var/lib/pgsql/data -l logfile start |
PostgreSQLの起動 【Fedora15 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/postgresql start 【Fedora16以降 の場合】 # systemctl start postgresql.service OS起動時にPostgreSQLを起動する 【Fedora15 / CentOS5 / CentOS6 の場合】 # chkconfig postgresql on 【Fedora16以降 の場合】 # systemctl enable postgresql.service |
データベースの中身を確認したり更新・削除などGUI(グラフィカルユーザインタフェース)で操作できる pgAdmin をクライアント(Windows)にインストールしてサーバのデータベースに接続する方法を以下に紹介します。
PostgreSQLの停止(サービスが起動していれば・・) 【Fedora15 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/postgresql stop 【Fedora16以降 の場合】 # systemctl stop postgresql.service サービスへの接続と接続できるネットワークを追加 # vi /var/lib/pgsql/data/postgresql.conf #------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost', '*' = all # (change requires restart) # vi /var/lib/pgsql/data/pg_hba.conf 最終行に以下を追加 # my network connections: host all all 192.168.1.0/24 trust ネットワーク部は自身の環境に合わせてください。 パスワードを設定している場合(以下、パスワードを設定するを参照)は「trust」を「md5」に変更して下さい。 |
pgAdminを操作するクライアント(Windows)にダウンロードします。(2012年01月25日時点での最新バージョンは v1.14.1 となっています)
ダウンロードしたファイル(pgadmin3-1.14.1.zip)は圧縮ファイルとなっていますので、予め解凍しておいてください。
【その他】
postgres にはパスワードが設定されていませんので、必要であれば下記を実施する事でパスワードを設定する事ができます
対話型の PostgreSQL 操作ツール(psql)の実行 # psql --username=postgres psql (8.4.9) "help" でヘルプを表示します. 現状のパスワード確認 postgres=# select usename,passwd from pg_shadow; usename | passwd ----------+-------- postgres | (1 行) 上記の様にパスワードが設定されていません ユーザ「postgres」のパスワードを「himitsu」に設定 postgres=# alter user postgres with password 'himitsu'; ALTER ROLE パスワード確認 postgres=# select usename,passwd from pg_shadow; usename | passwd ----------+------------------------------------- postgres | md56dd02212eb5f143f340b57191cdb993c (1 行) psqlの終了 meibo=# \q PostgreSQLの停止 【Fedora15 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/postgresql stop 【Fedora16以降 の場合】 # systemctl stop postgresql.service 設定ファイルの変更 # vi /var/lib/pgsql/data/pg_hba.conf # "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 PostgreSQLの起動 【Fedora15 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/postgresql start 【Fedora16以降 の場合】 # systemctl start postgresql.service パスワードが有効になったか確認 # psql --username=postgres ユーザ postgres のパスワード: 上記の様にパスワード入力が求められ、正しいパスワード入力後下記の様に接続できます psql (8.4.9) "help" でヘルプを表示します. postgres=# |
データベースのバックアップはPostgreSQLサービスが稼働した状態でバックアップする事が可能です。
またPostgreSQLのユーティリティ「pg_dumpall」を使用する事によりデータベースをスクリプト(ダンプ)ファイルに出力します。
このスクリプト(ダンプ)ファイルには、データベースユーザとグループ、データベース全体に適用するアクセス制限に関する情報が含まれ容易にリストア(復元)する事ができます。
バックアップ方法 # /usr/bin/pg_dumpall -U postgres -c > /tmp/PostgreDump 「/tmp」に「PostgreDump」と言うファイル名で作成されます 上記コマンドをcronに登録して定期的にバックアップした方が良いでしょう。 リストア方法 PostgreSQlサービスが稼働中の場合は停止 【Fedora15 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/postgresql stop 【Fedora16以降 の場合】 # systemctl stop postgresql.service 『PostgreSQLのデータベース初期化』を実施して初期データベースを作成 データベース作成後、PostgreSQLサービスの開始 【Fedora15 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/postgresql start 【Fedora16以降 の場合】 # systemctl start postgresql.service スクリプト(ダンプ)ファイルよりリストア # /usr/bin/psql -U postgres -d template1 < /tmp/PostgreDump |