随時更新
リンク切れ報告、サイト情報お待ちしています"
sawa@itnavi.com
リンクは御自由にどうぞ
|
リリース情報
2003/5/28 PostgreSQL 7.3.3 リリース
構築環境
PostgreSQL 7.3.3
Red Hat Linux 8.0
PostgreSQL 7.0.2での設定例
PostgreSQL 7.1での設定例
PostgreSQL 7.1.2での設定例
PostgreSQL 7.2.3での設定例
インストール編
1.インストールするには
データベース作成編
1.データベースを作成するには
運用編
1.ユーザを作成するには
2.POSTMASTER(デーモン)を起動するには
3.テーブル定義を抽出するには
4.Accessからアクセスするには(ODBC)
5.バックアップおよびバージョンアップするには
6.vacuum(データベースの不要領域の掃除と統計情報の生成)するには
インストール編
Q.インストールするには
A.
sra.co.jpよりpostgresql-7.3.3.tar.gzをダウンロードします。
1.postgresユーザを追加する
# useradd postgres
2.インストールディレクトリを作成する
postgresユーザが書き込めるように設定する。
(sourceを展開するディレクトリは適宜変更する)
# mkdir /usr/local/src/postgresql-7.3.3/
# chown postgres:postgres /usr/local/src/postgresql-7.3.3/
# mkdir /usr/local/pgsql
# chown postgres:postgres /usr/local/pgsql
|
2.プロファイルの設定
~postgres/.bash_profile
PATH="$PATH":/usr/local/pgsql/bin
PG=/usr/local/pgsql
export PGLIB=$PG/lib
export PGDATA=$PG/data
export MANPATH="$MANPATH":$PG/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":$PGLIB
|
3.インストール
※initdbはrootで実行しない。
# su - postgres
$ cd /usr/local/src/postgresql-7.3.3/
$ tar xvzf postgresql-7.3.3.tar.gz
$ cd postgresql-7.3.3
$ ./configure
|
$ make
$ make check
$ make install
$ initdb --encoding=EUC_JP --no-locale
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale C.
creating directory /usr/local/pgsql/data... ok
creating directory /usr/local/pgsql/data/base... ok
creating directory /usr/local/pgsql/data/global... ok
creating directory /usr/local/pgsql/data/pg_xlog... ok
creating directory /usr/local/pgsql/data/pg_clog... ok
creating template1 database in /usr/local/pgsql/data/base/1... ok
creating configuration files... ok
initializing pg_shadow... ok
enabling unlimited row size for system tables... ok
initializing pg_depend... ok
creating system views... ok
loading pg_description... ok
creating conversions... ok
setting privileges on built-in objects... ok
vacuuming database template1... ok
copying template1 to template0... ok
Success. You can now start the database server using:
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
or
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
|
$ vi /usr/local/pgsql/data/postgresql.conf
|
7.0までは、postmaster.opts.defaultにpostmasterの起動オプション設定していたが、7.1以降は、$PGDATA/postgresql.conf ファイル一つに設定の記述が行える。
postmaster -S -iと同じ設定にするにはpostgresql.confファイルに下記の設定する。
tcpip_socket = on
silent_mode = on
|
postmaster の起動をテストしてみる。
$ postmaster &
[1] 9770
$ kill 9770
-bash: kill: (9770) - No such pid
[1]+ Done postmaster
|
postmasterの自動起動の設定をする。
/etc/rc.d/init.d/postgres にスクリプトを作成します。
#!/bin/sh
#
# postgres - This script is used to start/stop
# the postgreSQL listener process.
#
# Usage
#
# You can use this script manually, and/or you
# can install this script into the runlevel system
# by running "sh postgres.init.sh install"
#
# Credits
#
# Thomas Lockhart
# modified from other startup files in the
# RedHat Linux distribution
#
# Clark Evans
# cleaned up, added comments, etc.
#
# modified for PostgreSQL book written by Tatsuo Ishii
#
# RedHat Stuff
#
# chkconfig: 345 85 15
# description: Starts and stops the PostgreSQL backend daemon\
# that handles all database requests.
# processname: postmaster
#
# Config Variables
#
PGACCOUNT="postgres"
#
# The non-root user account which will be used to run the
# PostgreSQL executeable. For this script to work, the
# shell for this account must be SH/BASH.
#
PGDATA="/usr/local/pgsql/data"
POSTMASTER="/usr/local/pgsql/bin/postmaster"
PG_CTL="/usr/local/pgsql/bin/pg_ctl"
#
# The executable program which is to be run, in this case
# it is the listener, which waits for requests on the port
# specified during configuration.
#
# Source function library.
. /etc/rc.d/init.d/functions
#
# See how we were called.
#
case "$1" in
start)
echo -n "Starting postgres: "
su - $PGACCOUNT -c "$POSTMASTER -D $PGDATA"
echo
touch /var/lock/subsys/postgres
;;
stop)
echo -n "Stopping postgres: "
$PG_CTL -m f -D $PGDATA stop
echo
rm -f /var/lock/subsys/postgres
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
|
# chmod 755 /etc/rc.d/init.d/postgres
# chkconfig --add postgres
# chkconfig --list | grep postgres
postgres 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ
|
chkconfigでは、各ランレベルにK15postgres、S85postgresが作成される。
/etc/rc.d/init.d/postgres start でpostmasterの開始、/etc/rc.d/init.d/postgres stopでpostmasterが停止される。
データベース作成編
0.postgres ユーザになる
1.データベースの作成
$ createdb testdb
CREATE DATABASE
|
SQL文の場合、
CREATE DATABASE <データベース名>
[ WITH LOCATION = '<配置>' ]
[ ENCODING = '<エンコーディング名>' ]
2.テーブルの作成
$ psql testdb
Welcome to psql 7.3.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=#
testdb=# CREATE TABLE testtab (
testdb(# id INT,
testdb(# name VARCHAR(255),
testdb(# CONSTRAINT test_pk PRIMARY KEY (id));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'test_pk' for table 'testtab'
CREATE TABLE
testdb=# INSERT INTO testtab VALUES(1,'ほげほげ');
INSERT 16981 1
testdb=# SELECT * FROM testtab;
id | name
----+----------
1 | ほげほげ
(1 row)
testtab-# \q
|
先頭へ戻る
トップページへ戻る
運用編
1.ユーザを作成するには
CREATE USER <ユーザ名>
[ WITH PASSWORD <パスワード> ]
[ CREATEDB | NOCREATEDB ]
[ CREATEUSER | NOCREATEUSER ]
[ IN GROUP <グループ名> [, ...] ]
[ VALID UNTIL <有効期限> ]
(hogeユーザをパスワードpasswordで作成する例)
$ psql testdb
Welcome to psql, 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=# CREATE USER hoge WITH PASSWORD 'password';
CREATE USER
testdb=# \q
|
登録されているユーザは
SELECT * FROM pg_user;
で確認することが出来る。
createuserコマンドというのもある。
削除は、
DROP USER <ユーザ名>
2.POSTMASTERを起動するには
PostgreSQL管理者ユーザで行います。(postgres)
自ホスト以外からの接続を受け付けるには、/usr/local/pgsql/data/pg_hba.confの設定を行う。
3.テーブル定義を抽出するには
psqlで見る場合
$ psql testdb
Welcome to psql, 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=# \d
List of relations
Name | Type | Owner
---------+-------+----------
testtab | table | postgres
(1 row)
testdb=# \d testtab
Table "testtab"
Attribute | Type | Modifier
-----------+--------------+----------
id | integer | not null
name | varchar(255) |
Index: test_pk
testdb=# \q
|
pg_dumpで一括出力の場合
$ pg_dump testdb -s
\connect - postgres
CREATE TABLE "testtab" (
"id" int4 NOT NULL,
"name" character varying(255),
PRIMARY KEY ("id")
);
REVOKE ALL on "testtab" from PUBLIC;
GRANT ALL on "testtab" to "hoge";
|
4.Accessからアクセスするには
ODBCドライバーを使います。
まずPostgreSQL ODBC DriverのオフィシャルWEBサイトからODBCドライバーをダウンロードします。
postdrv.exeを実行するとインストーラが走りインストールされます。
次に、インターウィズ PostgreSQL ODBC Driver 日本語版よりODBC Driver 日本語版をダウンロードし、Windowsのシステムディレクトリにインストールされたpsqlodbc.dllに上書きします。
そしてコントロールパネルのデータソース(ODBC)よりODBCの設定をします。
5.バックアップおよびバージョンアップするには
psql -l でデータベースの一覧が見れる。
$ psql -l
List of databases
Name | Owner | Encoding
-----------+----------+----------
template0 | postgres | EUC_JP
template1 | postgres | EUC_JP
(2 rows)
|
pg_dumpでデータベースごとにバックアップする場合
$ pg_dump データベース名 > 任意のファイル名
|
そして上記バックアップより復元する場合
$ createdb データベース名
$ psql -e データベース名 < 任意のファイル名
|
バージョンアップの場合は、pg_dumpallコマンドでデータベースクラスタ全体の
バックアップを保存します。
$ pg_dumpall -o > 任意のファイル名
|
そして上記バックアップより復元する場合
$ psql -e template1 < 任意のファイル名
|
指定するDB名は、必ずtemplate1にすること。
pg_dumpでテーブルのデータのみバックアップする場合
$ pg_dump -t テーブル名 データベース名 > table.out
|
そして上記バックアップより復元する場合
テーブルはdropされている必要があります。
$ psql -e データベース名 < table.out
|
6.vacuum(データベースの不要領域の掃除と統計情報の生成)するには
PostgreSQLは、追記型記録方式ですので削除データの領域はvacuumしないと残ってしまいます。
例.
$ vacuumdb --dbname <dbname> --analyze
-d もしくは --dbname で対象となるデータベース名を指定します。
-z もしくは --analyze でオプティマイザで使用される、データベースの統計情報を生成します。
詳しいオプションは、vacuumdbを参照してください。
7.2からは、VACUUMがテーブルをロックしなくなり、VACUUMをかけながら更新もできるようになります。
PostgreSQL
|
転ばぬ先の杖。ウィルス対策!
Virus Bulletin誌で100%検出の栄誉を業界最多の33回受賞の
NOD32
1,980円でできるウイルス対策。ウイルス対策、ハッカー対策、個人情報漏洩対策、スパム対策がこれ一本で。
ウイルスセキュリティ
|
|