postgresql 9源码安装

安装过程:

1、configuration

--prefix=PREFIX

install all files under the directory PREFIX instead of usr/local/psql

--with-pgport=NUMBER

set NUMBER as the default port number for server and clients,the default is 5432.

--with-segsize=SEGSIZE(控制表的大小)

set the segment size,in gigabytes,large tables are divided into multiple operating-system files,each of size equal to the segment size.

--with-blocksize=BLOCKSIZE

set the block size,in kilobytes.this is the unit of starage and i/o within tables.the defaules,8 kilobytes,is susitable for most situnations;but other values may be usefulin special cases,the value must be a power of 2 between 1 and 32(jukobyrtes).

--with-wal-segsize=SEGSIZE

set the wal segment size,in megabytes,this is the size of each individaul file in the wal log.it may be useful to adjust this size to control the granularity of wal log shipping.the default size is 16 megabytes.the value must be a power of 2 between 1 and 64(megabytes).

--with-wal-blocksize=BLOCKSIZE

set the wal block size,in kilobytes.this is the unit of storage and i/o within the wal log,the default,8 kilobytes,is suitable for most situations;but other values may be useful in special cases.the value must be a power of w between 1 and 64(kilobytes).

2、build

gmake

gmake world

3、installing the files

gmake install

gmake install-world

4、add a os user account

#groupadd postgres

#useradd postgres

#passwd postgres

#chown -R postgres:postgres /pgdir

5、creating a database cluster(数据库初始化)

A database cluster is a collection of databases that is managed by a single instance of a running database server.

In file system terms,a database cluster will be a single directory under which all data will be stored.we call this the data direcotry or data area.

as an alternative to the -D option,you can set the environment variable PGDATA

initdb -D /usr/local/pgsql/data/ --locale=C --encoding=UTF8

pg_ctl -D /usr/local/pgsql/data initdb

6、starting the database server

postgres -D /usr/local/pgsql/data   --前台启动方式,退出终端即退出pg

postgres -D /usr/local/pgsql/data >logfile 2>&1 &            --后台启动方式

pg_ctl start -l logfile

安装文档1:

[root@node2 pg952]# tar -jxvf postgresql-9.5.2.tar.bz2

[root@node2 pg952]# cd postgresql-9.5.2

[root@node2 pg952]# cat INSTALL |more

[root@node2 pg952]# mkdir /pg952

[root@node2 pg952]# ./configure --prefix=/pg952/

[root@node2 pg952]# gmake world

[root@node2 pg952]# gmake install-world

[root@node2 pg952]# id postgres

[root@node2 pg952]# chown -R postgres:postgres /pg952/

[root@node2 pg952]# initdb -D /usr/local/pgsql/data/ --locale=C --encoding=UTF8

[root@node2 pg952]# pg_ctl start -l logfile

安装文档2:

linux系统依赖包:

[root@localhost ~]# gcc --version

gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)

Copyright (C) 2010 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[root@localhost ~]# make --version

GNU Make 3.81

Copyright (C) 2006  Free Software Foundation, Inc.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A

PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu

[root@localhost ~]# rpm -qa|grep readline

compat-readline5-5.2-17.1.el6.x86_64

readline-devel-6.0-4.el6.x86_64

readline-6.0-4.el6.x86_64

[root@localhost ~]# rpm -qa|grep zlib

zlib-1.2.3-29.el6.x86_64

zlib-devel-1.2.3-29.el6.x86_64

安装postgresql 5.2

[root@localhost mnt]# tar -jxvf postgresql-9.5.2.tar.bz2

[root@localhost mnt]# cd postgresql-9.5.2

[root@localhost postgresql-9.5.2]# ./configure --prefix=/pg952/

[root@localhost postgresql-9.5.2]# make world

[root@localhost postgresql-9.5.2]# make install-world

[root@localhost pg952]# cd /pg952/

[root@localhost pg952]# ll

总计 32

drwxr-xr-x 2 root root 4096 05-26 05:41 bin

drwxr-xr-x 4 root root 4096 05-26 05:40 include

drwxr-xr-x 4 root root 4096 05-26 05:40 lib

drwxr-xr-x 5 root root 4096 05-26 05:40 share

[root@localhost pg952]# id postgres

uid=26(postgres) gid=26(postgres) groups=26(postgres) context=root:system_r:unconfined_t:SystemLow-SystemHigh

[root@localhost pg952]# chown -R postgres:postgres /pg952/

[root@localhost pg952]# ll /pg952/

总计 32

drwxr-xr-x 2 postgres postgres 4096 05-26 05:41 bin

drwxr-xr-x 4 postgres postgres 4096 05-26 05:40 include

drwxr-xr-x 4 postgres postgres 4096 05-26 05:40 lib

drwxr-xr-x 5 postgres postgres 4096 05-26 05:40 share

[root@localhost pg952]# su - postgres

-bash-3.2$ vim .bash_profile    --添加如下环境变量

[ -f /etc/profile ] && source /etc/profile

export PGHOME=/pg952

export PGDATA=/pg952/data

export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH

PATH=$PGHOME/bin:$PATH

-bash-3.2$ pg_ctl init        --初始化数据库

-bash-3.2$ vim postgresql.conf        --修改配置文件

#listen_addresses = 'localhost'         # what IP address(es) to listen on;

listen_addresses = '*'

-bash-3.2$ vim pg_hba.conf           --修改配置文件

# IPv4 local connections:

host    all             all             127.0.0.1/32            trust

host    all             all             192.168.72.0/24          md5

-bash-3.2$ pg_ctl start -l $PGHOME/logfile 2>&1 >/dev/null   --启动数据库

注意:pg_ctl start|status|stop|restart进行数据库启动

-bash-3.2$ ps -ef|grep post                   --查看数据库状态

-bash-3.2$ cat logfile

-bash-3.2$ ps -f -U postgres

连接数据库:

-bash-3.2$ psql                  --本地连接

psql (9.5.2)

Type "help" for help.

postgres=# l

..........

postgres-# password            --修改pg口令

Enter new password:

Enter it again:

C:Userswangwc>psql -h 192.168.72.130 -U postgres -d oracle    --远程连接

Postgresql shared memory usage:

Usage

Approximate shared memory bytes required(as of 8.3)

commections

(1800+270*max_locks_per_transaction)*max_connections

Autovacuum workers

(1800+270*max_locks_per_transaction)*autovacuum_max_workers

Prepared transactions

(770+270*max_locks_per_transaction)*max_prepared_transcctions

Shared disk buffers

(blocks_size+208)*shared_buffers

Wal buffers

(wal_blocks_size+208)*wal_buffers

Fixd space requiremenrs

770kb

原文地址:https://www.cnblogs.com/wcwen1990/p/6655438.html