阿晨的运维笔记 | Ubuntu部署PostgreSQL集群

2021/7/24 2:08:57

本文主要是介绍阿晨的运维笔记 | Ubuntu部署PostgreSQL集群,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

开始部署之前,建议先按照Ubuntu切换到国内镜像源操作一下,能省下大把宝贵时间!

安装Postgresql

echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-9.6 # 自行选择合适版本
## 更多参考 https://www.postgresql.org/download/linux/ubuntu/

修改配置文件

sudo vim /etc/postgresql/9.6/main/postgresql.conf
listen_addresses = '*'
max_connections = 1000
logging_collector = on
## 更多参考 https://www.postgresql.org/docs/current/static/runtime-config.html
 
sudo vim /etc/postgresql/9.6/main/pg_hba.conf
host    all             all             0.0.0.0/0             md5
## 更多参考 https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
   
sudo service postgresql restart

修改默认用户Postgres的密码

sudo -u postgres psql
# ALTER USER postgres WITH PASSWORD 'postgres';
# \q
exit

搭建集群

搭建集群不是必须的,但是如果是生产环境,建议还是操作一下,毕竟数据重于泰山!

下面以简单的一主一从抛砖引玉一下

主机ip
Master节点10.10.10.10
Slave节点10.10.10.9

Master节点和Slave节点分别按照第一步安装并配置完成postgres后,开始搭建集群。

master节点

1、修改配置

sudo vi /etc/postgresql/9.6/main/postgresql.conf
listen_addresses = '*'
wal_level = hot_standby
archive_mode = on
archive_command = 'test ! -f /var/lib/postgresql/9.6/archive/%f && cp %p /var/lib/postgresql/9.6/archive/%f'
max_wal_senders = 16
wal_keep_segments = 100
hot_standby = on
logging_collector = on
## 更多参考 https://www.postgresql.org/docs/current/static/runtime-config.html

sudo vi /etc/postgresql/9.6/main/pg_hba.conf
host    all             all             10.0.0.0/8              md5
host    replication     repuser         10.0.0.0/8              md5
## 更多参考 https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
  
sudo -upostgres mkdir /var/lib/postgresql/9.6/archive
sudo chmod 0700 /var/lib/postgresql/9.6/archive
  
sudo service postgresql restart

2、创建工作账户repuser

slave节点就是通过repuser进行复制操作的。

sudo -upostgres createuser --replication repuser
sudo -upostgres psql
postgres=# \password repuser
<password>
## 更多参考 https://www.postgresql.org/docs/current/static/user-manag.html

slave节点

1、先停止服务

sudo service postgresql stop

2、由master节点导入数据(postgres 免密码登录 repuser role)

sudo -upostgres vi /var/lib/postgresql/.pgpass
10.10.10.10:5432:*:repuser:<password>
127.0.0.1:5432:*:repuser:<password>
 
sudo chmod 0600 /var/lib/postgresql/.pgpass
sudo mv /var/lib/postgresql/9.6/main /var/lib/postgresql/9.6/main.bak
sudo -upostgres pg_basebackup -D /var/lib/postgresql/9.6/main -F p -X stream -v -R -h 10.10.10.10 -p 5432 -U repuser

3、修改配置

sudo vi /var/lib/postgresql/9.6/main/recovery.conf
standby_mode = 'on'
primary_conninfo = 'user=repuser host=10.10.10.10 port=5432'
trigger_file = 'failover.now'

## 更多参考 https://www.postgresql.org/docs/current/static/recovery-config.html
  
sudo vi /etc/postgresql/9.6/main/postgresql.conf
hot_standby = on

4、重启并检查服务

sudo service postgresql start
sudo service postgresql status
...
Active: active (exited)

sudo -upostgres psql
psql (9.6.12)
...

测试集群

master节点进行增删改操作,对照看slave节点是否能够从master节点复制操作

常用命令

sudo service postgresql start
sudo service postgresql status
sudo service postgresql restart

更多常用命令,可以查看我的另一篇文章:阿晨的运维笔记 | Postgres常用命令

后面我还会讲一下DockerKubernetes部署PostgreSQL的方法,关注我,第一时间可以收到推送哦!

image-20210723185904932
我是阿晨,在技术的道路上我们一起砥砺前行!



这篇关于阿晨的运维笔记 | Ubuntu部署PostgreSQL集群的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程