PostgreSQL

PostgreSQL (ポスグレエスキューエル)は、主にPC-UNIXで使われている、フリーで高機能なRDBMS (リレーショナルデータベース管理システム)です。 基本仕様のほとんどはSQL92に準拠しているため、標準的な仕様をもつRDBMSとして使うことができ、 商用RDBMSともさほど違和感なく管理・開発することができます。 無補償というリスクを除けば高価な商用RDBMSと遜色ない完成度を持っています。
ここでは備忘録としてよく使用するコマンドや操作を記述しています。

Linux編

1.インストールと設定

インストールと設定はCentOS6 サーバー構築を参照して下さい。

2.起動と停止

通常はサーバー起動時に自動起動するように設定されていますが、メンテナンス時に手動での停止・起動が必要となります。

(1) 起動方法

# service postgresql start ← PostgreSQL起動

(2) 停止方法

# service postgresql stop ← PostgreSQL停止

(3) 停止/起動方法

# service postgresql restart ← PostgreSQLを停止して起動

(4) 設定情報の再読み込み

# service postgresql reload ← PostgreSQLを停止させずに設定情報を変更

(5) 起動状態の確認

# service postgresql status

注:sevice postgresql/etc/rc.d/init.d/postgresqlでも可能です。

3.コマンドラインからの操作

コマンドラインからの操作は、PostgreSQLコマンドプロセッサーpsqlを起動(ここではコマンドプロンプトがpostgres=# )してからの操作とpsqlをコマンドとして使用したり、PostgreSQLのコマンドを使用する方法があります。ここでは目的別にそれぞれの方法を記述してます。操作時のユーザーはpostgresです。

4.ROLE(ユーザー)の作成

$ createuser --help
$ createuser -s ユーザーID

$ dropuser ユーザーID

createuserコマンドの場合パスワードは-Wを指定すると対話形式で設定できます。

postgres=# CREATE ROLE ユーザーID WITH SUPERUSER PASSWORD 'パスワード' LOGIN;
postgres=# DROP ROLE ユーザーID

5.データベース(DB)の作成と削除

$ createdb --help
$ createdb -E UTF-8 -O ユーザーID DB名
$ dropdb DB名
postgres=# CREATE DATABASE 'DB名' OWNER=ユーザーID ENCODING 'UTF8';
CREATE DATABASE

postgres=# DROP DATABASE 'DB名';
DROP DATABASE

6.DBに接続

psqlを起動していない時のコマンドプロンプトから psql -h ホスト名(IPアドレス) -U ユーザー名 -p ポート番号 DB名
ホスト名は同じサーバーであれば localhost 又は -h オプションを省略可能です。
DB名を省略した場合はユーザー名と同じ名前のDB名が使われます。

$ psql d MYDB
$ psql -h 192.168.1.100 -U myuser -p 5432 MYDB

psqlを起動時

$ psql d DB名

psql

postgres=# \c DB名

デフォルトのユーザー名(ログインユーザー)を使用する時はpsqlのみで接続できます。以下が一番省略した場合です。

$ psql

上記は以下と同じです。

$ psql -h localhost -U postgres -p 5432 postgres

7.バックアップとリストア

DB全体の場合

例のDB名はMYDB、テーブルはMYTBLです。

  1. ) バックアップ pg_dump -U ユーザー名 -F c -f ファイル名 DB名
    postgres$ pg_dump -U postgres -F c -f MYDB.back MYDB
    
  2. ) リストア pg_restore -dDB名 -F c バックアップファイル名
    postgres$ pg_restore -Uhoge0usr1 -dMYDB -F cMYDB.back
    

テーブル単体の場合

  1. ) バックアップ pg_dump -t MYTBL MYDB > MYTBL.sql
  2. ) リストア postgres$ pg_restore -U <データベースユーザ名> -d <データベース名> -t <テーブル名> -F c <バックアップファイル名>
    postgres$ pg_restore -Uhoge0usr1 -dMYDB -tMYTBL -F cHMYTBL.back
    

    underConstA.gif


最終更新のRSS
Last-modified: 2015-09-13 (日) 22:04:08 (3146d)