MySQL→PostgreSQL 主从架构迁移方案(读写分离版)

Posted on Thu 09 October 2025 in 数据库 • Tagged with PostgreSQL, MySQL, 迁移, 读写分离, 高可用

目标:用 PostgreSQL 的 WAL + Streaming Replication 实现“写走主、读走从”,并提供生产可用的高可用与连接层方案,附配置模板与运维脚本示例。适配 PostgreSQL 16/17/18。


1. 架构总览

1.1 基础拓扑(最小可用)

App(写) ─────────►  Primary(主)
                ╲
                 ╲ WAL Stream
                  ╲
App(读) ───────────► Standby1(从)
                   ► Standby2(从)
  • 写请求:直连主库。
  • 读请求:直连从库(或通过中间层,见 §4)。
  • 主从:物理复制(Streaming Replication),异步或半同步可选。

1.2 生产级拓扑(推荐)

               +-------------------+
               |    pgbouncer      |  连接池(减少连接抖动)
               +-------------------+
                        │
                 +--------------+
                 |   Pgpool-II  |  SQL解析级读写分离/健康检查/故障转移脚本
                 +--------------+
                     │     │
                (Write)   (Read)
                     │     │
                   Primary  ──┬── Standby1
                              └── Standby2

        +-------------------+
        | Patroni + etcd    |  主从编排/自动 …

Continue reading

MySQL与PostgreSQL全面对比与压测方案

Posted on Sun 15 December 2024 in 数据库 • Tagged with MySQL, PostgreSQL, 数据库对比, 压测, Python, 性能优化

MySQL与PostgreSQL全面对比分析,包括核心技术差异、性能测试、Python操作示例及压测方案。帮助开发者选择适合业务场景的数据库系统。


Continue reading

MySQL Docker开发环境配置指南

Posted on Tue 19 March 2024 in 开发工具 • Tagged with MySQL, Docker, 数据库, 开发环境

如何使用Docker启动MySQL开发环境

目录结构

MySQL_Docker/
├── docker-compose.yml    # Docker Compose 配置文件
├── .env                 # 环境变量配置
├── config/
│   └── my.cnf          # MySQL 配置文件
├── data/               # MySQL 数据目录 (挂载)
└── logs/               # MySQL 日志目录 (挂载)

配置文件说明

1. docker-compose.yml 配置要点

version: '3.8'
services:
  mysql:
    image: mysql:8.0
    container_name: mysql-server
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root123}
      MYSQL_DATABASE: ${MYSQL_DATABASE:-testdb}
      MYSQL_USER: ${MYSQL_USER:-testuser}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD:-testpass}
    ports:
      - "${MYSQL_PORT:-3306}:3306"
    volumes:
      - ./data:/var/lib/mysql
      - ./logs:/var/log/mysql
      - ./config/my.cnf:/etc/mysql/conf.d/my.cnf

重要配置说明: - restart: unless-stopped - 容器异常退出时自动重启 - environment - 环境变量配置,支持从.env文件读取 - volumes - 数据持久化配置,确保数据安全 - ports - 端口映射,允 …


Continue reading