database-replication-setup
27
总安装量
4
周安装量
#13761
全站排名
安装命令
npx skills add https://github.com/dengineproblem/agents-monorepo --skill database-replication-setup
Agent 安装分布
github-copilot
3
opencode
2
antigravity
2
codex
2
kimi-cli
2
Skill 文档
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 ÑегÑлÑÑно
- ÐокÑменÑиÑÑйÑе пÑоÑедÑÑÑ Ð²Ð¾ÑÑÑановлениÑ