PostgreSQL 9.6 SUSE 环境搭建(一)

postgresql 安装与部署

搭建环境步骤

该搭建整套环境如下:
PostgreSQL 9.6 SUSE 环境搭建(一)
PostgreSQL 主从异步流复制配置(二)
PostgreSQL 主从异步、同步流复制配置(三)

检查和配置postgres用户(是否该环境有当前用户)

clw-db1:~ # cat /etc/passwd | grep postgres

clw-db1:~ # id postgres
id: postgres: No such user

创建postgresOS组和账户

clw-db1:~ # groupadd -g 10000 postgres
clw-db1:~ # useradd -g 10000 -u 10000 postgres

校验用户

clw-db1:~ # id postgres
uid=10000(postgres) gid=10000(postgres) groups=16(dialout),33(video),10000(postgres)

创建postgres用户home目录,存放postgres用户的记录(bash、profile、shell等)

clw-db1:~ # mkdir /home/postgres
clw-db1:~ # chown postgres.postgres /home/postgres/
clw-db1:~ # usermod -d /home/postgres postgres

安装PostgreSQL 9.6

上传源码和依赖包略

解压PostgreSQL 9.6.8

clw-db1:~/pgsoft # tar -xf readline-7.0.tar.gz 
clw-db1:~/pgsoft # tar -xf zlib-1.2.11.tar.gz 
clw-db1:~/pgsoft # tar -xf postgresql-9.6.8.tar.gz

安装readline依赖

clw-db1:~/pgsoft/readline-7.0 # ./configure 
clw-db1:~/pgsoft/readline-7.0 # make && make install

安装zlib依赖

clw-db1:~/pgsoft/zlib-1.2.11 # make
clw-db1:~/pgsoft/zlib-1.2.11 # make install

安装PostgreSQL 9.6.8,本次安装忽略安装readline(记录历史sql命令查询)依赖

clw-db1:~/pgsoft/postgresql-9.6.8 # ./configure --prefix=/opt/pgsql-9.6 --without-readline

查看机器CPU核数,process 表示CPU核数从0开始

 cat /proc/cpuinfo |grep less

没有找到readline-devel包,暂时跳过;编译时使用-j 8指定8核编译;

clw-db1:~/pgsoft/postgresql-9.6.8 # make world -j 8

看到“PostgreSQL, contrib, and documentation successfully made. Ready to install.”说明编译成功。

clw-db1:~/pgsoft/postgresql-9.6.8 # make install-world

-world 表示安装该目录下所有

看到“PostgreSQL, contrib, and documentation installation complete.”说明安装成功。

检查安装版本及路径

clw-db1:~/pgsoft/postgresql-9.6.8 # /opt/pgsql-9.6/bin/postgres --version
postgres (PostgreSQL) 9.6.8

初始化数据目录

创建数据及相关目录

clw-db1:~ # mkdir -p /pgdata/9.6/poc/{data,archive,scripts,backup}

目录名称可自定义

data : 数据库存放目录 必须
archieve : 日志归档存放目录,非必须
scripts : 脚本存放目录(故障转移、日志清理等)非必需
backup : 备份存放目录 非必需

配置目录所属主(“.”与“:”等同)

clw-db1:~ # chown -R postgres.postgres /pgdata/9.6

表示把/pgdata/9.6 目录下所有文件都隶属与 postgres用户和组,-R 表示递归

检查数据目录,“-“ 表示会自动切换到当前用户的home目录下

clw-db1:~ # su - postgres
postgres@clw-db1:~> 
postgres@clw-db1:~> pwd
/home/postgres
postgres@clw-db1:/pgdata/9.6/poc> cd /pgdata/9.6/poc/
postgres@clw-db1:/pgdata/9.6/poc> 
postgres@clw-db1:/pgdata/9.6/poc> ll
total 16
drwxr-xr-x 2 postgres postgres 4096 May  3 15:44 archive
drwxr-xr-x 2 postgres postgres 4096 May  3 15:44 backup
drwxr-xr-x 2 postgres postgres 4096 May  3 15:44 data
drwxr-xr-x 2 postgres postgres 4096 May  3 15:44 scripts

初始化数据目录

postgres@clw-db1:/pgdata/9.6/poc> /opt/pgsql-9.6/bin/initdb -D /pgdata/9.6/poc/data/ -E UTF-8 --locale=zh_CN.UTF-8
-D 表示指定数据库存放目录
-E 表示 指定字符集编码 

data目录权限会自动修改为0700,在此步骤之前手动配置也可以。

postgres@clw-db1:/pgdata/9.6/poc> ll
total 16
drwxr-xr-x  2 postgres postgres 4096 May  3 15:44 archive
drwxr-xr-x  2 postgres postgres 4096 May  3 15:44 backup
drwx------ 19 postgres postgres 4096 May  3 15:54 data
drwxr-xr-x  2 postgres postgres 4096 May  3 15:44 scripts

手动配置

chmod 0700 /data

启动和停止

修改必须重启生效的参数并启动

postgres@clw-db1:~> vim /pgdata/9.6/poc/data/postgresql.conf 

编辑配置文件并修改以下参数如下:

listen_addresses = '*' 
port = 5432    
max_connections = 100    
max_connections = 200    
superuser_reserved_connections = 10    
shared_buffers = 32GB    
maintenance_work_mem = 2GB    
#replacement_sort_tuples = 150000    
shared_preload_libraries = 'pg_stat_statements'
wal_level = logical    
archive_mode = on    
archive_command = '/bin/true'   
max_wal_senders = 10    
max_replication_slots = 10  
hot_standby = on    
random_page_cost = 1.1    
#cpu_tuple_cost = 0.01    
effective_cache_size = 64GB  
log_destination = 'csvlog'
logging_collector = on
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

启动PG Server

postgres@clw-db1:~> /opt/pgsql-9.6/bin/pg_ctl -D /pgdata/9.6/poc/data/ start
server starting
postgres@clw-db1:~> LOG:  redirecting log output to logging collector process

看到以下行说明启动成功:

2018-05-03 16:19:00.067 CST,,,20626,,5aeac5f2.5092,2,,2018-05-03 16:18:58 CST,,0,LOG,00000,"database system is ready to accept connections",,,,,,,,,""

创建必要的数据库

postgres@clw-db1:~> /opt/pgsql-9.6/bin/psql -p 5432 -U postgres postgres
psql (9.6.8)
Type "help" for help.

postgres=# 
postgres=# CREATE DATABASE pocdb;
CREATE DATABASE

创建 user:

postgres=# \c pocdb
You are now connected to database "pocdb" as user "postgres".
pocdb=# 
pocdb=# 
pocdb=# CREATE USER repl ENCRYPTED PASSWORD '123456' REPLICATION;
CREATE ROLE

验证用户:

pocdb=# \du+ 
                                          List of roles
 Role name |                         Attributes                         | Member of | Description 
-----------+------------------------------------------------------------+-----------+-------------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}        | 
 repl      | Replication                                                | {}        | 

退出连接

pocdb=# \q
postgres@clw-db1:~> 

完成安装


   本教程主要便于后期多环境部署,没有配置环境变量,故每次启动、停止等命令需要指定具体目录,详细配置环境
变量可参考安装PostgreSQL 10.x的安装教程。

猜你喜欢

转载自blog.csdn.net/yaoqiancuo3276/article/details/80203853
9.6