postgresql主从 pgpool 源码ubuntu部署
由于postgresql主从和pgpool部署方式相似,可以在同一篇文章中介绍它们的源码ubuntu部署过程。
- 安装依赖
在开始安装postgresql和pgpool之前,需要先安装一些依赖库:
sudo apt-get update
sudo apt-get install -y build-essential libreadline-dev zlib1g-dev flex bison libxml2-dev libxslt-dev libssl-dev libpq-dev libcurl4-gnutls-dev
- 安装postgresql
首先,需要从postgresql官网下载源码包。下载链接:https://www.postgresql.org/ftp/source/
选择一个稳定版本的源码包下载下来,比如:
wget https://ftp.postgresql.org/pub/source/v13.2/postgresql-13.2.tar.gz
解压源码包:
tar -zxvf postgresql-13.2.tar.gz
进入解压后的目录:
cd postgresql-13.2
执行以下命令编译和安装:
./configure --prefix=/usr/local/pgsql
make
sudo make install
这里指定了安装路径为/usr/local/pgsql,可以根据自己的需要修改。
- 配置postgresql
在安装完成后,需要对postgresql进行一些配置。首先,需要创建一个postgres用户和一个pgdata目录:
sudo mkdir /usr/local/pgsql/data
sudo chown postgres /usr/local/pgsql/data
sudo su postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
执行initdb命令后,会在/usr/local/pgsql/data目录下生成一些必要的文件。
接下来,需要修改/usr/local/pgsql/data/postgresql.conf文件,将以下参数进行设置:
listen_addresses = '*'
max_connections = 100
wal_level = replica
archive_mode = on
archive_command = 'cp %p /var/lib/postgresql/archive/%f'
max_wal_senders = 10
wal_keep_segments = 32
hot_standby = on
这里指定了postgresql监听所有IP地址,最大连接数为100,启用了归档模式并将归档文件存储在/var/lib/postgresql/archive目录下,同时指定了最大的WAL发送进程数和保留的WAL段数,以及启用了热备模式。
接下来,需要修改/usr/local/pgsql/data/pg_hba.conf文件,添加以下内容:
host replication all 0.0.0.0/0 md5
这里指定了允许0.0.0.0/0的IP地址使用md5认证方式进行复制。
最后,需要重启postgresql服务:
sudo systemctl restart postgresql
- 安装pgpool
pgpool是一个连接池和负载均衡器,可以将多个postgresql实例组成一个集群,并提供高可用性和负载均衡功能。
首先,需要从pgpool官网下载源码包。下载链接:http://www.pgpool.net/mediawiki/index.php/Downloads
选择一个稳定版本的源码包下载下来,比如:
wget http://www.pgpool.net/mediawiki/download.php?f=pgpool-II-4.1.2.tar.gz
解压源码包:
tar -zxvf pgpool-II-4.1.2.tar.gz
进入解压后的目录:
cd pgpool-II-4.1.2
执行以下命令编译和安装:
./configure --prefix=/usr/local/pgpool
make
sudo make install
这里指定了安装路径为/usr/local/pgpool,可以根据自己的需要修改。
- 配置pgpool
在安装完成后,需要对pgpool进行一些配置。首先,需要修改/usr/local/pgpool/etc/pgpool.conf文件,将以下参数进行设置:
listen_addresses = '*'
port = 5432
backend_hostname0 = 'localhost'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/usr/local/pgsql/data'
backend_flag0 = 'ALLOW_TO_FAILOVER'
这里指定了pgpool监听所有IP地址和5432端口,将localhost作为第一个后端服务器,指定了后端服务器的端口、权重、数据目录和故障转移标志。
接下来,需要修改/usr/local/pgpool/etc/pool_hba.conf文件,添加以下内容:
host all all 0.0.0.0/0 md5
host all all ::/0 md5
这里指定了允许0.0.0.0/0和::/0的IP地址使用md5认证方式连接pgpool。
最后,需要重启pgpool服务:
sudo /usr/local/pgpool/bin/pgpool -m fast stop
sudo /usr/local/pgpool/bin/pgpool -D
- 测试配置
现在已经完成了postgresql主从和pgpool的源码ubuntu部署,可以进行测试以确保配置正确。
首先,需要在主服务器上创建一个测试数据库:
sudo su postgres
/usr/local/pgsql/bin/createdb testdb
接下来,在主服务器上创建一个测试表并插入一些数据:
/usr/local/pgsql/bin/psql testdb
CREATE TABLE test_table (id SERIAL PRIMARY KEY, value TEXT);
INSERT INTO test_table (value) VALUES ('test');
然后,在从服务器上启动复制进程:
/usr/local/pgsql/bin/pg_basebackup -h 主机IP地址 -D /usr/local/pgsql/data -P -U replication -v -x
这里指定了主服务器的IP地址、从服务器的数据目录和使用replication用户进行复制。
最后,在pgpool服务器上连接测试数据库并执行查询:
/usr/local/pgpool/bin/psql -h pgpool服务器IP地址 -p 5432 -U postgres testdb
SELECT * FROM test_table;
应该能够看到之前在主服务器上插入的数据。
至此,postgresql主从和pgpool的源码ubuntu部署已完成。
原文地址: https://www.cveoy.top/t/topic/yJX 著作权归作者所有。请勿转载和采集!