此文档以进程方式部署

docker 或 k8s 参考PostDock

单节点安装

1 docker 安装

1
docker run -d --name=postgres13 -p 5432:5432 -v /data/postgres-data/postgres13:/var/lib/postgresql/data -e POSTGRES_PASSWORD=qweasd postgres:13.9 -c shared_buffers=2560MB -c max_connections=5000

2 yum 源

1
2
# 最新命令参考: https://www.postgresql.org/download/linux/redhat/
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

3 安装 PostgreSQL

1
2
sudo yum
install -y postgresql13-server

4 pg 初始化

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

5 修改访问权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
vim  /var/lib/pgsql/13/data/postgresql.conf
listen_addresses = '*'
port = 5432

vim /var/lib/pgsql/13/data/pg_hba.conf
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
host all all 0.0.0.0/0 md5 # 注意这个,登录需要密码
# IPv6 local connections:
host all all ::1/128 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
host all all 0.0.0.0/0 ident

6 启动服务

1
2
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

7 配置权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo -u postgres psql postgres
could not change directory to "/home/xopsadmin/pipeline": Permission denied
psql (13.7)
Type "help" for help.
# 创建用户
postgres=# create user devops with password 'devops';
# 创建数据库
postgres=# create database vault_db owner devops;
# 授权
postgres=# grant all privileges on database vault_db to devops;
# 修改管理员密码
# ALTER USER postgres WITH PASSWORD 'postgres';
# 查看数据库
\list

备用数据库搭建

1 有几种方法可以对备用数据库进行分类:

1.1 根据复制的性质:

  • 物理备用数据库:复制磁盘块。
  • 逻辑备用数据库:流式传输数据更改。

1.2 通过事务的同步性:

  • 异步:可能会丢失数据。
  • 同步:不会丢失数据;主服务器中的提交等待备用服务器的响应。

1.3 通过用法:

  • 热备用:它们不支持连接。
  • 热备用:支持只读连接。

备份与恢复

后续使用的 PostgreSQL 由 db 团队提供,后面有空在研究