一、Postgresql10 源码安装以及初始化参数解析 【精】

安装前准备:

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 海无涯

你可能感兴趣的:(Postgresql10)