PostgreSQL-7.3.2

介绍PostgreSQL7.3.2

下载地址 (HTTP):     http://www.ca.postgresql.org/ftpsite/v7.3.2/postgresql-7.3.2.tar.gz
下载地址 (FTP):     ftp://ftp8.us.postgresql.org/pub/pgsql/source/v7.3.2/postgresql-7.3.2.tar.gz
版本:                   7.3.2
包的大小:                   11 MB
估计所需硬盘空间:     68 MB

PostgreSQL包中包括PostgreSQL RDBMS,客户端工具以及捆绑的语言。

注: 捆绑的C++和ODBC已经从发布的源代码中删去。它们可以从PostgreSQL网站获得:http://gborg.postgresql.org

PostgreSQL 依赖于:
readline-4.3

安装PostgreSQL

用下面的命令安装PostgreSQL:

./configure --prefix=/usr &&
make &&
make install

用下面的命令初始化数据库簇:


mkdir -p /var/pgsql/data &&
useradd -d /var/pgsql/data postgres &&
chown postgres /var/pgsql/data &&
su - postgres -c '/usr/bin/initdb -D /var/pgsql/data'

用下面的命令启动数据库服务器:


su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \
        /var/pgsql/data/logfile 2>&1 &'

现在我们可以建立一个数据库,检查一下安装是否成功:


su - postgres -c '/usr/bin/createdb test'
echo "create table t1 ( name varchar(20), state_province varchar(20) );" \
                | (su - postgres -c '/usr/bin/psql test ')
		
echo "insert into t1 values ('Billy', 'NewYork');" \
                | (su - postgres -c '/usr/bin/psql test ')
echo "insert into t1 values ('Evanidus', 'Quebec');" \
	        | (su - postgres -c '/usr/bin/psql test ')
echo "insert into t1 values ('Jesse', 'Ontario');" \
                | (su - postgres -c '/usr/bin/psql test ')
		
echo "select * from t1;" | (su - postgres -c '/usr/bin/psql test ')

命令解释

useradd -d /var/pgsql/data postgres : 添加一个非特权用户用来运行数据库服务器。用root来运行服务器是很危险的,甚至不能正常工作。

su - postgres -c '/usr/bin/initdb -D /var/pgsql/data' : 初始化数据库表空间。root不能执行这个命令。

su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \ /var/pgsql/data/logfile 2>&1 &' : 启动数据库服务器。必须用postgres用户来执行这个命令。

createdb test, create table t1 , insert into t1 values..., select * from t1 : 建立一个数据库,向其中添加一张表,插入几行数据并查询。用来检查安装好的数据库是否正常工作。

配置PostgreSQL

配置文件

$PGDATA/pg_ident.con, $PGDATA/pg_hba.conf, $PGDATA/postgresql.conf

将环境变量PGDATA的值设置成包含簇的目录名来区分不同的数据库簇。 每一个PGDATA/目录中都包含上面三个配置文件。 这些文件的具体格式和可供设置的选项参见下面的网页:

file:///usr/share/doc/postgresql/html/tutorial.html

postgres的init.d脚本

用下面的命令创建postgres启动脚本:

cat > /etc/rc.d/init.d/postgres << "EOF"

#!/bin/bash
# Begin $rc_base/init.d/postgres

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - [email protected]

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Starting PostgreSQL daemon..."
		su - postgres -c '/usr/bin/pg_ctl start -W -D /var/pgsql/data \
                               -l /var/pgsql/data/logfile -o "-i" '
                evaluate_retval
                ;;

        stop)
                echo "Stopping PostgreSQL daemon..."
                /usr/bin/pg_ctl stop -m smart -D /var/pgsql/data
		evaluate_retval
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                /usr/bin/pg_ctl status -D /var/pgsql/data
                ;;

        *)
                echo "Usage: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# End $rc_base/init.d/

EOF
chmod 755 /etc/rc.d/init.d/postgres

用下面的命令在相应的rc.d目录中创建该脚本的符号链接:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/postgres ../rc0.d/K26postgres &&
ln -sf ../init.d/postgres ../rc1.d/K26postgres &&
ln -sf ../init.d/postgres ../rc2.d/K26postgres &&
ln -sf ../init.d/postgres ../rc3.d/S34postgres &&
ln -sf ../init.d/postgres ../rc4.d/S34postgres &&
ln -sf ../init.d/postgres ../rc5.d/S34postgres &&
ln -sf ../init.d/postgres ../rc6.d/K26postgres

内容

PostgreSQL RDBMS包括 createdb, createlang, createuser, dropdb, droplang, dropuser, ecpg, initdb, initlocation, ipcclean, pg_config, pg_ctl, pg_dump, pg_dumpall, pg_passwd, pg_restore, pgaccess, pgtclsh, pgtksh, postgres, postmaster, psql以及 vacuumdb.

具体说明

createdb

用于创建新的PostgreSQL数据库。

createlang

定义新的PostgreSQL过程语言。

createuser

为PostgreSQL创建新用户。

dropdb

删除PostgreSQL数据库。

droplang

删除已有的PostgreSQL过程语言。

dropuser

删除PostgreSQL用户。

ecpg

嵌入式的SQL预处理器。

initdb

用于创建新的数据库簇。

initlocation

用于开辟二级数据库存储空间。

ipcclean

释放意外中止的数据库服务器所占用的共享内存和信号量。

pg_config

获取PostgreSQL的版本信息。

pg_ctl

启动和停止PostgreSQL服务器。

pg_dump

将数据库中的数据和元数据转存到脚本文件中。这些文件可被用于重建该数据库。 used to recreate the database.

pg_dumpall

对簇中的每一个数据库递归的调用pg_dump。

pg_passwd

一个辅助口令文件工具,用于控制对数据库的访问。

pg_restore

利用pg_dump生成的脚本文件来创建数据库。

pgaccess

一个用Tk/tcl编写的图形化PostgreSQL客户端程序。

pgtclsh

一个PostgreSQL的tcl shell。

pgtksh

一个PostgreSQL的wish style shell。

postgres

一个单用户数据库服务器,主要用于调试。

postmaster

多用户数据库守护进程。

psql

一个基于数据库shell的控制台。

vacuumdb

用于紧凑数据库,并为查询分析器生成统计信息。