安装前准备:
tar -zxvf postgresql-10.4.tar.gz
chown postgres:postgres postgresql-10.4 -R
mkdir -p /pgdata/pg10.4/
chown postgres:postgres /pgdata -R
1.常用配置参数
./configure
–prefix=PREFIX 指定安装路径 默认路径/usr/local/pgsql
–exec-prefix=EXEC-PREFIX 非数据库库体系结构的文件安装位置 bin lib
–with-segsize=SEGSIZE 设置段大小( Set the segment size),合理的调大有助于减少大表消耗。建议为2的幂值,更改需要initd
–with-blocksize=BLOCKSIZE 设置块大小 这是表中的存储和I/O的单元 默认为8KB ,可以设置为1~32KB
–with-wal-segsize=SEGSIZE 设置WAL段大小 默认大小为16兆字节。该值必须是1到1024(兆字节)之间的2的幂。更改此值需要initdb。
–with-wal-blocksize=BLOCKSIZE 设置WAL块大小,以千字节为单位。这是WAL日志中的存储和I / O单位。默认值为8千字节,适用于大多数情况; 但在特殊情况下,其他值可能有用。该值必须是1到64(千字节)之间的2的幂。更改此值需要initdb。
–with-python
构建PL / Python服务器端语言。
–with-pgport=NUMBER
设置NUMBER为服务器和客户端的默认端口号。默认值为5432.以后可以随时更改端口,但如果在此处指定端口,则服务器和客户端都将具有相同的默认编译,这非常方便。通常,选择非默认值的唯一理由是,您打算在同一台机器上运行多个 PostgreSQL服务器。
–with-openssl
构建支持SSL (加密)连接。这需要安装OpenSSL包。configure将检查所需的头文件和库,以确保在继续之前您的OpenSSL安装已足够。
–enable-nls[=LANGUAGES]
启用本机语言支持(NLS),即以英语以外的语言显示程序消息的功能。LANGUAGES例如,是您希望支持的语言的可选空格分隔列表–enable-nls=’de fr’。(将自动计算列表与实际提供的翻译集之间的交集。)如果未指定列表,则会安装所有可用的翻译。
2.编译
make
make world 如果要构建可构建的所有内容,包括文档(HTML和手册页)以及其他模块(contrib)
3.回归测试
make check (非root用户执行)
4.安装
make install
make install-docs 要安装文档(HTML和手册页)
make install-world 你构建了上面的世界,包含文档。
5.仅客户端安装
如果只想安装客户端应用程序和接口库,则可以使用以下命令:
make -C src/bin install
make -C src/include install
make -C src/interfaces install
make -C doc install
6.清理
make clean 清理构建完成的数据库文件,为重新编译做准备,释放一定的磁盘空间
make distclean 使postgresql 重置为最初的状态
7.举例
./configure --prefix=/pgdata/pg10.4/ --exec-prefix=/pg104ins --with-blocksize=16 --with-segsize=2 --with-python --with-wal-blocksize=32
以上为源码安装过程
8.环境变量
cat /home/postgres/.bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
PGHOME=/pgdata/pg10.4
PGDATA=$PGHOME/data
PATH=$PGHOME/bin:$PATH
export LD_LIBRARY_PATH=$PGHOME/lib
export PGDATA PATH PGHOME
如果需要MAN,则可以:
MANPATH=/usr/local/pgsql/share/man:$MANPATH
export MANPATH
9.初始化数据库
/pgdata/pg10.4/bin/initdb -D /pgdata/pg10.4/data
10.开机自启动
在解压包中找到自启动脚本
[postgres@hgtest start-scripts]$ ll
total 8
-rw-r--r-- 1 postgres postgres 1467 May 8 04:51 freebsd
-rw-r--r-- 1 postgres postgres 3552 May 8 04:51 linux
drwxrwxrwx 2 postgres postgres 84 May 8 05:03 macos
drwxrwxrwx 2 postgres postgres 87 May 8 05:03 osx
[postgres@hgtest start-scripts]$ pwd
/upload/postgresql-10.4/contrib/start-scripts
[root@hgtest /]# cp -a /upload/postgresql-10.4/contrib/start-scripts/linux /etc/init.d/postgresql
sed -i 's:prefix=/usr/local/pgsql:prefix=/pgdata/pg10.4/:g' /etc/init.d/postgresql
sed -i 's:PGDATA="/usr/local/pgsql/data":PGDATA="/pgdata/pg10.4/data":g' /etc/init.d/postgresql
chmod u+x postgresql
service postgresql start
service postgresql status
chkconfig --add postgresql
chkconfig --list | grep postgres
postgresql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
**运行级别0:系统停机状态
运行级别1:单用户工作状态
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启**
版本查看
[postgres@hgtest ~]$ createdb mydb
mydb=# select version();
version
———————————————————————————————————
PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11), 64-bit
(1 row)
BY 海无涯