我正在尝试获取一个作为主数据库但从另一台服务器复制一个数据库以将复制的数据库和本地数据库复制到另一个从属数据库的数据库。
SERVER1:master,只复制一个数据库,cdr。除了从属复制之外,我无权访问此服务器配置或数据库
SERVER2:主要生产数据库从 SERVER1 复制 cdr 数据库没有问题 这是一个 8TB 的数据库,大部分时间大约 10k qps。我唯一可以更改 my.cnf 并重新启动数据库的时间是深夜。
SERVER3:新服务器,试图从 SERVER2 复制它的数据和 SERVER1 的 cdr 数据库
我确实将 SERVER2 的 cdr 数据库从 SERVER1 复制到 SERVER3,但尝试重新配置 SERVER2 > SERVER3 以使其他数据库复制时破坏了它。
SERVER 1:将一个数据库 cdr 复制到 SERVER2
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: ahost
Master_User: replicator
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mariadb-bin.002513
Read_Master_Log_Pos: 56488490
Relay_Log_File: mysqld-relay-bin.004995
Relay_Log_Pos: 56488638
Relay_Master_Log_File: mariadb-bin.002513
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: cdr
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 56488490
Relay_Log_Space: 56488840
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1000024
1 row in set (0.00 sec)
SERVER 2:主生产服务器,一个数据库从 SERVER1 复制,cdr,这工作正常。我确实设法让 cdr 数据库从 SERVER2 复制到 SERVER3,但试图让其他数据库(如 rdrs)复制而破坏了它。
我的.cnf
[mysqld]
server-id = 500
expire_logs_days = 3
slave-skip-errors = 1062,1051
log_slave_updates=ON
replicate_do_db=cdr
log_bin = /var/lib/mysql/mysql-bin
SERVER 3:SERVER2 的从属服务器,应该从 SERVER2 复制所有内容,包括来自 SERVER1 的更新
我的.cnf
[mysqld]
server-id=1222
replicate-do-db=rdrs
replicate_do_db=cdr
replicate-do-table = clover.acct
log_slave_updates = ON
#replicate_ignore_table=clover.testdata_skiprep
show slave status
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: bhost
Master_User: replicationv2
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000462
Read_Master_Log_Pos: 286428248
Relay_Log_File: mysqld-relay-bin.000375
Relay_Log_Pos: 81106343
Relay_Master_Log_File: mysql-bin.000462
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: rdrs,cdr
Replicate_Ignore_DB:
Replicate_Do_Table: clover.acct
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 286428248
Relay_Log_Space: 286428823
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 500
1 row in set (0.00 sec)
我已经为此工作了几天,但无法弄清楚。我认为这很简单,但不确定缺少什么。我确实在 SERVER3 的中继日志中看到了查询,但它们没有执行。
为了将所有 Server2 复制到 Server3:
摆脱 Server2 上的所有 binlog_(do/ignore)。
摆脱 Server3 上的所有 (replicate/binlog)_(do/ignore)。