PostgreSQL7
|
| |
|
|
1.PostgreSQLサイト<http://www.postgresql.org/>からパッケージを入手。 v7.4.3を使用する。
2.postgresユーザーの作成
# /usr/sbin/useradd postgres
# passwd postgres Changing password for user postgres.
New password: <お好みのパスワード>
Retype new password: <お好みのパスワード確認用>
passwd: all authentication tokens updated successfully.
|
3.ディレクトリの作成
# mkdir /usr/local/pgsql
# mkdir /usr/local/pgsql/data
# chown -R postgres /usr/local/pgsql |
4.インストール実行
$ tar zxfv postgresql-7.4.3.tar.gz
$ cd postgresql-7.4.3
$ ./configure --enable-multibyte=EUC_JP --enable-syslog
$ make
$ su
# make install |
5.データベース初期化
$ initdb -E EUC_JP --no-locale -D /usr/local/pgsql/data
$ pg_ctl start |
6.データベース作成
$ createdb testdb
$ psql -l
List of databases
Name | Owner | Encoding
------------+----------+----------
template0 | postgres | EUC_JP
template1 | postgres | EUC_JP
testdb | postgres | EUC_JP |
|
|
|
|
※データベースの操作はpostgresユーザーのみ許可される。
※環境変数 PGDATA に /PosgreSQLインストールパス/data がセットされている必要がある。
※環境変数 PATH に /PostgreSQLインストールパス/bin がセットされていることを前提としています。
$ export PGDATA=/usr/local/pgsql/data
$ echo $PGDATA
/usr/local/pgsql/data |
1.データベース起動
2.データベース停止
$ pg_ctl stop
※クライアント・プログラムからの切断を待たずに停止するには mオプションを使用
$ pg_ctl stop -m fast |
3.データベース再起動
$ pg_ctl restart
※クライアント・プログラムからの切断を待たずに再起動するには mオプションを使用
$ pg_ctl restart -m fast |
4.設定読み直し
pg_hba.conf, postgresql.confを書き換えて反映させる場合に使用。
|
|
|
|
1.pg_hba.confを編集し、アクセスを許可するネットワークを設定
$ vi /usr/local/pgsql/data/pg_hba.conf
-[pg_hba.conf]-------------------------------------------------------------------
......(ファイル内容省略)
# TYPE DATABASE USER IP-ADDRESS
IP-MASK METHOD
local all all
trust
# IPv4-style local connections:
host all all
127.0.0.1 255.255.255.255 trust
host all all
192.168.0.0 255.255.255.0 password
# IPv6-style local connections:
host all all
::1 ffff:ffff:ffff:ffff:ffff:ffff:
ffff:ffff trust
|
2.postgresql.confを編集し、ポート5432, tcpip_soketを許可する
$ vi /usr/local/pgsql/data/postgresql.conf
-[postgresql.conf]-------------------------------------------------------------------
......(ファイル内容省略) #---------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#---------------------------------------------------------------------------
# - Connection Settings -
#tcpip_socket = false
tcpip_socket = true <-- 先頭の # を外し、パラメータに true をセットする
......(ファイル内容省略)
#port = 5432
port = 5432 <-- 先頭の # を外す。
|
3.データベースユーザーのパスワードをセット
$ psql testdb
Welcome to psql 7.4.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
testdb=# alter user postgres password '<新しいパスワード>';
ALTER USER
testdb=# \q <-- psqlからログアウト |
4.設定ファイル変更の内容を反映
$ pg_ctl reload
postmaster successfully signaled |
|
|
|
|
1.ホットバックアップ
データベースを停止させずに、データのダンプを出力させる。
$ pg_dump -d <データベース名> > ./<出力するダンプファイル名>
例)testdbデータベースをtestdb_backup.dmpファイルにバックアップする場合
$ pg_dump -d testdb > ./testdb_backup.dmp
※テーブル単位でダンプを出力させる場合は、t オプションを使用する。
$ pg_dump -d <データベース名> -t <テーブル名> > ./<出力するダンプファイル名>
例)testdbデータベースのtesttableテーブルをtestdb.testtable.dmpファイルにバックアップする場合
$ pg_dump -d testdb -t testtable > ./testdb.testtable_backup.dmp |
2.ホットリストア
データベースを停止させずに、データをリストアする。
※リストア対象のデータベース・テーブルに既にデータが存在している場合、制約違反ならないデータは重複して登録されてしまう為、注意。
$ psql -e <データベース名> < ./<リストアするダンプファイル名> (eオプションは詳細情報出力)
例)testdb_backup.dmpファイルからtestdbデータベースへリストアする場合
$ psql -e testdb < ./testdb_backup.dmp
※テーブル単位でリストアする場合は、t オプションを使用する。
$ psql -e <データベース名> -t <テーブル名> < ./<リストアするダンプファイル名>
例)testdb.testtable_backup.dmpファイルからtestdbデータベースのtesttableテーブルへリストアする場合
$ psql -e testdb -t testtable < ./testdb.testtable.dmp |
|
|
|
PostgreSQLだけではないが、ログの出力は欠かせない存在。PostgreSQLにはログ出力方法が以下の3通りある。
- 標準出力に出力する
- 指定ファイルに出力する
- syslogd -> messagesに出力する
1、2の場合は、そのままではログ出力時刻も分からず、ファイルのローテーションも使用できない。その為、過去を振り返る場合にいつの時点でのログなのか、管理が難しくなる。そこで、その他のミドルウェアと同様にログ管理を手っ取り早くする為に、syslogdを経由してmessagesへ出力する方法がある。
syslogdを使用するためには、インストール時点からの準備が必要となる。
1.configureオプションで enable-syslogを指定していること
| $ ./configure --enable-syslog |
2.postgresql.conf のsyslogパラメータに1または2がセットされてあること(デフォルトは
0 )。
$ vi /usr/local/pgsql/data/postgresql.conf
-[postgresql.conf]-------------------------------------------------------------------
......(ファイル内容省略) # - Syslog -
#syslog = 0 # range 0-2; 0=stdout; 1=both; 2=syslog
syslog = 2 # range 0-2; 0=stdout; 1=both; 2=syslog
......(ファイル内容省略) |
3.設定変更を行なった場合は、pg_ctl reloadにより反映させることができる。
|
|