sql 主从结构
时间: 2025-09-03 20:23:56 AIGC 浏览: 10
### SQL 主从复制原理
SQL 主从复制是一种常见的技术架构,用于提升系统的高可用性、容灾能力和读写分离能力。它通过将主库的数据变化记录传输到从库并应用这些变化,使得多个数据库实例之间保持一致。
#### 数据复制的核心机制
主从复制的工作原理基于日志文件的传递和解析。对于 PostgreSQL 和 MySQL 这样的关系型数据库系统,主要依赖于二进制日志(binlog)或类似的事务日志[^1]。以下是两种常见数据库的具体实现方式:
- **PostgreSQL**: 使用 WAL (Write-Ahead Logging),即预写式日志。WAL 记录了每次修改前后的状态差异,并将其发送给从节点以完成同步[^2]。
- **MySQL**: 利用了 Binlog 日志进行增量更新通知。Master 节点会把所有的 DDL/DML 操作都记录下来形成 binlogs 文件;Slave 接收到后先存储为 relay logs 并执行其中的内容来达到最终的一致性[^4]。
#### 配置流程概述
无论是哪种具体的 RDBMS 实现方案,在设置上大体遵循以下几个方面的要求:
1. **环境准备**
- 确保 Master 和 Slave 上运行着相同版本号的服务程序以及兼容的操作系统平台[^3].
2. **参数调整**
- 开启必要的功能选项比如 binary logging 或 wal shipping.
- 设置唯一的 server id 来区分各个参与方的身份标识.
3. **初始化数据迁移**
- 将现有生产环境中完整的快照导出导入至目标副本位置处作为初始基线资料源.
4. **建立网络通信链路**
- 定义好双方之间的认证授权细节以便安全地交换敏感信息流.
5. **启动同步进程**
- 执行特定命令让下游开始追踪上游的变化轨迹直至完全追平为止.[^5]
下面分别给出针对这两种主流产品的实际部署指南片段供参考学习之用。
---
### PostgreSQL 主从配置示例
```bash
# 修改 postgresql.conf 启动归档模式和支持逻辑解码等功能
wal_level = replica
archive_mode = on
max_wal_senders = 3
hot_standby = on
# 创建物理级基础备份
pg_basebackup -D /path/to/standby/data/directory --format=tar \
--gzip --progress --checkpoint=fast --write-recovery-conf=yes \
-X stream -P -v -U replicator_user -h primary_host_ip_address
# 编辑 recovery.conf 添加如下内容指向远程主机地址端口等必要字段项
primary_conninfo='host=primary_host_ip port=port_number user=username password=password'
restore_command='/usr/bin/pg_receivewal --directory=/var/lib/postgresql/wals %f'
# 最后再重启 standby service 即可生效新的角色定位设定
service postgresql restart
```
---
### MySQL 主从配置示例
```sql
-- 在 master 中创建专用账户授予相应权限
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
-- 查看当前的日志坐标值用来告知 slave 如何衔接后续动作
SHOW MASTER STATUS;
-- 登陆到 slave 设备里做关联映射处理
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='repl',
MASTER_PASSWORD='password', MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=log_position_value;
START SLAVE;
```
以上仅为简化版说明文档摘选部分重点环节而已,请务必参照官方手册深入研究每一个细枝末节之处才能确保整个过程万无一失!
---
阅读全文
相关推荐

















