服务器重启后,主服务器复制中断

服务器重启后,主服务器复制中断

我有一个主主复制,配置如下。由于某些补丁,我们必须重新启动两个主服务器。但是当我检查时,复制已损坏。

大师 1:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0

bind-address=Master 1
port=3306
query_cache_size=16M
query_cache_limit=4M
tmp_table_size=64M
max_heap_table_size=64M
key_buffer_size=32M
table_open_cache=32
innodb_file_per_table=1
max_connections=1000
server_id=2
binlog_format='MIXED'
log-bin=/var/log/mariadb/mariadb-bin.log
max_allowed_packet=1000M
general_log=1
auto_increment_increment=2
auto_increment_offset=2



[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

大师2:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
bind-address=Master2
port=3306
query_cache_size=16M
query_cache_limit=4M
tmp_table_size=64M
max_heap_table_size=64M
key_buffer_size=32M
table_open_cache=32
innodb_file_per_table=1
#innodb_force_recovery=5
max_connections=1000
server_id=1
binlog_format='MIXED'
log-bin=/var/log/mariadb/mariadb-bin.log
max_allowed_packet=1000M
general_log=1
auto_increment_increment=2
auto_increment_offset=1

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

在配置时,我进行了大量研究,发现如果我们设置增量值,则复制会在复制崩溃后恢复,但就我而言,我看到复制中断并出现以下错误。

错误:

190428 3:21:02 [错误] 从属 SQL:无法在表 nagios.nagios_servicestatus 上执行 Update_rows 事件;在“nagios_servicestatus”中找不到记录,Error_code:1032;处理程序错误 HA_ERR_KEY_NOT_FOUND;事件的主日志 mariadb-bin.000002,end_log_pos 259533668,Error_code:1032

190428 3:21:02 [警告] 从属:无法在“nagios_servicestatus”中找到记录 Error_code:1032

190428 3:21:02 [错误] 运行查询时出错,从属 SQL 线程中止。修复问题,并使用“SLAVE START”重新启动从属 SQL 线程。我们在日志“mariadb-bin.000002”位置 259532745 处停止

190429 9:31:32 [错误] 从服务器读取数据包时出错:查询期间与 MySQL 服务器失去连接 (server_errno=2013)

190429 9:31:32 [注意] 从属 I/O 线程在读取事件时被终止

190429 9:31:32 [注意] 从属 I/O 线程退出,读取日志“mariadb-bin.000002”,位置 369070380

190429 9:31:33 [注意] 从属 SQL 线程已初始化,在日志 'mariadb-bin.000002' 中的位置 259532745 开始复制,中继日志 './mariadb-relay-bin.000002' 位置:143476361

190429 9:31:33 [注意] 'SQL_SLAVE_SKIP_COUNTER=1' 在relay_log_file='./mariadb-relay-bin.000002'、relay_log_pos='143476361'、master_log_name='mariadb-bin.000002'、master_log_pos='259532745' 处执行,新位置在relay_log_file='./mariadb-relay-bin.000002'、relay_log_pos='143477368'、master_log_name='mariadb-bin.000002'、master_log_pos='259533752'

190429 9:31:33 [错误] 从属 SQL:无法在表 nagios.nagios_customvariablestatus 上执行 Update_rows 事件;在“nagios_customvariablestatus”中找不到记录,Error_code:1032;处理程序错误 HA_ERR_KEY_NOT_FOUND;事件的主日志 mariadb-bin.000002,end_log_pos 259534029,Error_code:1032

190429 9:31:33 [警告] 从属:无法在“nagios_customvariablestatus”中找到记录 Error_code:1032

190429 9:31:33 [错误] 运行查询时出错,从属 SQL 线程中止。修复问题,并使用“SLAVE START”重新启动从属 SQL 线程。我们在日志“mariadb-bin.000002”位置 259533752 处停止

我是否需要向 my.cnf 添加更多配置以便在重启后自动恢复复制?

谢谢,

答案1

我认为辅助主机未同步,应用程序访问辅助主机以更改记录,请检查主主机是否正常,并将应用程序连接指向该主机。如果您使用 haproxy,这对您来说可能更容易。我认为最好的选择是再次设置辅助主机。

相关内容