You've already forked www.colben.cn
update
This commit is contained in:
69
content/post/postgresql-replication.md
Normal file
69
content/post/postgresql-replication.md
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
title: "Postgresql 主从"
|
||||
date: 2019-11-04T02:09:29+08:00
|
||||
lastmod: 2019-11-04T02:09:29+08:00
|
||||
tags: ["postgresql", "replcation", "同步"]
|
||||
categories: ["database"]
|
||||
---
|
||||
|
||||
# 主库配置
|
||||
- 修改 postgresql.conf
|
||||
```
|
||||
listen_address = '*'
|
||||
wal_level = replica
|
||||
wax_wal_senders = 10
|
||||
wal_keep_segments = 64
|
||||
hot_standby = on
|
||||
```
|
||||
- 启动主库 postgresql-10 服务
|
||||
```bash
|
||||
systemctl start postgresql-10
|
||||
```
|
||||
- 创建同步账户
|
||||
```sql
|
||||
create user replica superuser password '123456';
|
||||
-- 这里可以只赋予 replication 权限,后面从库复制初始数据库时使用其他有权限帐号
|
||||
```
|
||||
- 修改 pg_hba.conf
|
||||
```
|
||||
host replication replica samenet md5
|
||||
```
|
||||
|
||||
# 从库配置
|
||||
- 停止从库 postgresql-10 服务,清空数据库目录
|
||||
```bash
|
||||
systemctl stop postgresql-10
|
||||
rm -rf /var/lib/pgsql/10/data/*
|
||||
```
|
||||
- 从主库复制初始数据库
|
||||
```bash
|
||||
pg_basebackup \
|
||||
-h <主库ip> \
|
||||
-U replica \
|
||||
-F p \
|
||||
-X stream \
|
||||
-P -R \
|
||||
-D /var/lib/pgsql/10/data/ \
|
||||
-l backup_20191104
|
||||
```
|
||||
- -h 指定连接的数据库的主机名或IP地址
|
||||
- -U 指定连接的用户名
|
||||
- -F 指定了输出的格式,支持p(原样输出)或者t(tar格式输出)
|
||||
- -X 表示备份开始后,启动另一个流复制连接从主库接收WAL日志
|
||||
- -P 表示允许在备份过程中实时的打印备份的进度
|
||||
- -R 表示会在备份结束后自动生成recovery.conf文件
|
||||
- -D 指定备份写入的数据目录,需要与数据库配置的数据库目录一致,初次备份之前从库的数据目录需要手动清空
|
||||
- -l 表示指定一个备份的标识
|
||||
|
||||
# 检查状态
|
||||
- 检查从库进程
|
||||
```bash
|
||||
ps -ef|grep postgres
|
||||
# 可以看到 wal sender 和 receiver process 两个进程
|
||||
```
|
||||
- 从库为只读模式,无法进行 增/删/改 操作
|
||||
- 主库查看 replication 客户端
|
||||
```sql
|
||||
select client_addr,sync_state from pg_stat_replication;
|
||||
```
|
||||
|
Reference in New Issue
Block a user