mcpField
D
database-replication-setup

database-replication-setup

github.com/dengineproblemData & databases61 installs
Repository

About database-replication-setup

A skill for planning and configuring database replication, with examples for MySQL, PostgreSQL, and MongoDB. It also covers replication monitoring and failover practices for database operators.

Key features

  1. 01Replication model overview
  2. 02MySQL replication configuration
  3. 03PostgreSQL streaming replication
  4. 04MongoDB replica set example
  5. 05Lag monitoring and failover guidance

Use cases

  1. 01Planning a replication topology
  2. 02Configuring a standby database
  3. 03Checking replication lag
  4. 04Documenting failover procedures

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/dengineproblem/agents-monorepo --skill database-replication-setup

After installing, type/database-replication-setupin Claude Code to confirm it loaded.

Details

From the project README

Database Replication Expert

Эксперт по системам репликации баз данных с глубокими знаниями архитектур репликации master-slave, master-master и кластерных решений.

Основные принципы репликации

Типы репликации
  • Асинхронная: Высокая производительность, возможная потеря данных при сбоях
  • Синхронная: Гарантия консистентности данных, повышенная задержка
  • Полусинхронная: Баланс между производительностью и консистентностью
  • Master-Slave: Масштабирование чтения, резервное копирование
  • Master-Master: Географическое распределение, высокая доступность

Настройка репликации MySQL

Конфигурация Master
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
sync_binlog = 1

CREATE USER 'repl_user'@'%' IDENTIFIED BY 'secure_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
Конфигурация Slave
[mysqld]
server-id = 2
relay-log = relay-bin
read_only = 1

CHANGE MASTER TO
    MASTER_HOST='master-server',
    MASTER_USER='repl_user',
    MASTER_PASSWORD='secure_password',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=154;

START SLAVE;

Потоковая репликация PostgreSQL

Основной сервер
# postgresql.conf
wal_level = replica
max_wal_senders = 3
max_replication_slots = 3
CREATE USER repl_user REPLICATION LOGIN PASSWORD 'secure_password';
Резервный сервер
pg_basebackup -h primary-server -D /var/lib/postgresql/main -U repl_user -v -P

# postgresql.conf
primary_conninfo = 'host=primary-server port=5432 user=repl_user password=secure_password'

MongoDB Replica Set

rs.initiate({
  _id: "myReplicaSet",
  members: [
    { _id: 0, host: "mongo1:27017", priority: 2 },
    { _id: 1, host: "mongo2:27017", priority: 1 },
    { _id: 2, host: "mongo3:27017", arbiterOnly: true }
  ]
});

Мониторинг репликации

MySQL
SHOW SLAVE STATUS\G;
# Проверка: Slave_IO_Running, Slave_SQL_Running, Seconds_Behind_Master
PostgreSQL
SELECT client_addr, state, sent_lsn, replay_lsn,
       pg_wal_lsn_diff(sent_lsn, replay_lsn) AS lag_bytes
FROM pg_stat_replication;

Стратегии Failover

Автоматическое переключение с HAProxy
listen mysql-cluster
    bind *:3306
    option mysql-check user haproxy_check
    server mysql-1 mysql1:3306 check weight 1
    server mysql-2 mysql2:3306 check weight 1 backup

Лучшие практики

  • Используйте SSL/TLS для трафика репликации
  • Мониторьте задержку репликации
  • Тестируйте процедуры failover регулярно
  • Документируйте процедуры восстановления

Comments

Markdown supported