PostgreSQL系列- 1- 安装部署

目录

一、YUM 安装

1、安装yum 源

2、安装服务

3、初始化数据库

4、启动服务

5、连接测试

二、源码安装

1、下载源码

2、安装依赖

3、编译安装

4、创建账户、数据目录

5、初始化

6、启动、停止服务

7、连接测试

8、补充

配置环境变量

添加自启动

三、二进制安装

1、下载文件

2、创建账户、数据目录

3、初始化

4、启动、停止服务

5、测试连接

6、补充

配置环境变量

四、集群部署配置

1、架构及机器规划

2、基础安装

3、集群配置

3.1 master 配置

3.2 slave 配置

4、集群测试


一、YUM 安装

1、安装yum 源

使用YUM 安装比较简单,首先更新yum源

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2、安装服务

地址:RepoView: PostgreSQL PGDG 13 Updates RPMs

yum install postgresql13-server.x86_64

通过rpm -qa| grep postgres 查看安装的软件

postgresql13-server-13.4-1PGDG.rhel7.x86_64
postgresql13-libs-13.4-1PGDG.rhel7.x86_64
postgresql13-13.4-1PGDG.rhel7.x86_64

默认安装目录 /usr/pgsql-13 , 该目录包含服务启动的命令

默认数据目录 /var/lib/pgsql/13, 该目录包含服务数据目录、配置文件,以及归档目录等。

3、初始化数据库

/usr/pgsql-13/bin/postgresql-13-setup initdb

初始化完成后会自动创建超级管理员账户postgres , 无密码

4、启动服务

将服务添加到开机重启中

systemctl enable postgresql-13

启动服务

systemctl start postgresql-13

默认配置文件包含以下内容, 具体含义可参考后续的配置文件详解。

listen_addresses = '*'        # what IP address(es) to listen on;
max_connections = 100            # (change requires restart)
password_encryption = scram-sha-256        # md5 or scram-sha-256
shared_buffers = 128MB            # min 128kB
dynamic_shared_memory_type = posix    # the default is the first option
max_wal_size = 1GB
min_wal_size = 80MB
log_destination = 'stderr'        # Valid values are combinations of
logging_collector = on            # Enable capturing of stderr and csvlog
log_directory = 'log'            # directory where log files are written,
log_filename = 'postgresql-%a.log'    # log file name pattern,
log_truncate_on_rotation = on        # If on, an existing log file with the
log_rotation_age = 1d            # Automatic rotation of logfiles will
log_rotation_size = 0            # Automatic rotation of logfiles will
log_line_prefix = '%m [%p] '        # special values:
log_timezone = 'Asia/Shanghai'
datestyle = 'iso, mdy'
timezone = 'Asia/Shanghai'
lc_messages = 'en_US.UTF-8'            # locale for system error message
lc_monetary = 'en_US.UTF-8'            # locale for monetary formatting
lc_numeric = 'en_US.UTF-8'            # locale for number formatting
lc_time = 'en_US.UTF-8'                # locale for time formatting
default_text_search_config = 'pg_catalog.english'

5、连接测试

root@node2:/var/lib/pgsql/13/data# sudo -iu postgres   //切换到系统普通账户
postgres@node2:~$ psql     // 执行psql 命令,默认没有密码
psql (13.4)
Type "help" for help.

postgres=#     

# 可通过

\? 查看帮助;

\l 列举数据库 详细命令可参考后续的基础命令章节

二、源码安装

1、下载源码

wget https://ftp.postgresql.org/pub/source/v13.4/postgresql-13.4.tar.gz

2、安装依赖

yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel  python-devel gcc-c++ openssl-devel cmake

3、编译安装

./configure --prefix=/usr/local/postgresql-13.4  --with-wal-blocksize=16 --with-pgport=15432 --with-segsize=1 --with-blocksize=8 --with-libedit-preferred --with-perl --with-openssl --with-libxml  --with-libxslt --enable-thread-safety --enable-nls=en_US.UTF-8

make && make install

配置解释

--with-wal-blocksize=16  // 设置预处理日志大小,单位千字节

--with-pgport=15432   // 指定端口

--with-segsize=1   //设置段大小,单位千兆字节

--with-blocksize=8  // 表中的存储和 I/O 默认值为 8 KB

--with-libedit-preferred  // 支持libedit 库

--with-perl    // 支持perl

--with-openssl  // 支持ssl

--with-libxml   // 支持libxml 库

--with-libxslt    // 支持libxslt 库

--enable-thread-safety // 线程安全

--enable-nls=en_US.UTF-8  // 本地语言

4、创建账户、数据目录

useradd postgres

mkdir /pgsql/data -p

chown postgres.postgres /pgsql/data

chown -R postgres.postgres /usr/local/postgresql-13.4

5、初始化

 su - postgres
/usr/local/postgresql-13.4/bin/initdb -D /pgsql/data


6、启动、停止服务

/usr/local/postgresql-13.4/bin/pg_ctl -D /pgsql/data -l logfile start

kill -INT `head -1 /pgsql/data/postmaster.pid`

7、连接测试

/usr/local/postgresql-13.4/bin/psql

8、补充

配置环境变量

为了后续使用方便可以设置环境变量, 编辑/etc/profile.d/postgres.sh

export PGDATA=/pgsql/data
export PGHOME=/usr/local/postgresql-13.4/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib
export PATH=$PATH:$PGHOME/bin/

添加自启动

将安装目录中 postgresql-13.4/contrib/start-scripts/linux 文件拷贝到/etc/init.d/postgres

修改对应的配置目录

prefix=/usr/local/postgresql-13.4
PGDATA="/pgsql/data"
PGUSER=postgres
PGLOG="$PGDATA/serverlog"

为启动脚本添加可执行权限

chmod +x /etc/init.d/postgres

添加自启动

chkconfig --add postgres

启停命令

/etc/init.d/posgtres start 、stop 、status

三、二进制安装

二进制是免安装,比较灵活。不过由于 11.13 版本开始就没有用于linux 系统的 二进制包下载,这里只演示操作步骤。

1、下载文件

Download PostgreSQL Database for Windows, Linux and MacOS & 32-bit or 64-bit Versions | EDB

2、创建账户、数据目录

useradd postgres

mkdir /pgsql/data -p

chown postgres.postgres /pgsql/data

chown -R postgres.postgres /usr/local/pgsql

3、初始化

 su - postgres
/usr/local/pgsql/bin/initdb -E utf8 -D /pgsql/data

修改配置文件,修改监听地址和端口/pgsql/data/postgresql.conf

4、启动、停止服务

/usr/local/pgsql/bin/pg_ctl -D /pgsql/data -l logfile start

/usr/local/pgsql/bin/pg_ctl -D /pgsql/data -l logfile stop

5、测试连接

/usr/local/pgsql/bin/psql

6、补充

配置环境变量

为了后续使用方便可以设置环境变量, 编辑/etc/profile.d/postgres.sh

export PGDATA=/pgsql/data
export PGHOME=/usr/local/pgsql/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib
export PATH=$PATH:$PGHOME/bin/

四、集群部署配置

以上都是基于单点的安装,实际的生产环境中就需要集群(主从)部署。

1、架构及机器规划

机器规划
IP服务角色说明
192.168.3.35PG-13.4mastercentos7 x64
192.168.3.41PG-13.4mastercentos7 x64

2、基础安装

基础安装和上述一致,这里不再描述。

创建用户同步的数据库角色、账户

create role pgpool with login password '123456';

create role repl login replication encrypted password '123456';

alter user postgres with password '123456';

3、集群配置

3.1 master 配置

cat postgresql.conf  增加以下配置

listen_addresses = '*' 

archive_mode = on    // 打开归档

max_connections = 1000  // 允许的最大连接

archive_command = 'cp "%p" "/var/lib/pgsql/archivedir/%f"'  // 归档目录,如果没有手动创建并修改属组

max_wal_senders = 10    // 最多10个流式复制连接

max_replication_slots = 10  // 最大10个复制槽

wal_level = replica   

hot_standby = on   // 热备

wal_log_hints = on

认证配置

cat pg_hba.conf  增加允许访问的IP 和账户

host    all             all        192.168.3.0/24        trust
host    replication     repl            192.168.3.35/32         trust
host    replication     repl            192.168.3.41/32         trust

重启服务

systemctl restart postgresql-13

3.2 slave 配置

停止服务,并删除数据目录,然后从主节点拉取配置

systemctl stop postgresql-13

rm -fr data/*

/usr/pgsql-13/bin/pg_basebackup -h 192.168.3.35 -U repl -p 5432 -Fp -Xs -Pv -R -D /var/lib/pgsql/13/data

修改配置文件

cat postgresql.conf

listen_addresses = '*'        # 监听地址
port = 5433                # 监听端口,随意
max_connections = 300            # 允许的最大连接
primary_conninfo = 'host=192.168.3.35 user=repl password=123456 port=5432'  
max_standby_streaming_delay = 30s    # 
wal_receiver_status_interval = 10s    # 
hot_standby_feedback = on    # 错误回传 

cat standby.signal
standby_mode = 'no'   #标志从节点,升级为主节点时,该文件自动删除

重启服务

systemctl restart postgresql-13

4、集群测试

master 查看同步状态

select client_addr,sync_state from pg_stat_replication;

master 查看进程

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值