[英]Can't restore master/slave replication from Percona backup (slave server)
A slave is restored from a master
backup created with Percona xtrabackup从使用 Percona xtrabackup 创建的
master
备份恢复从属
On the master binlog is set to expire in 14 days and this backup is less than 24 hours old在 master binlog 上设置为 14 天后过期并且此备份不到 24 小时
expire_logs_days = 14
service mysql stop
rm -r /var/lib/mysql/*
# backup is unzipped into /var/lib/mysql
xtrabackup --prepare --target-dir=/var/lib/mysql
chown -R mysql.mysql /var/lib/mysql
service mysql start
# get gtid
line=$(head -n 1 "/var/lib/mysql/xtrabackup_binlog_info")
gtid=$(echo $line | awk -F '[ ,]' '{print $3}')
mysql -u root -pPASS -e "reset master; SET GLOBAL gtid_purged='$gtid'; CHANGE MASTER TO MASTER_HOST='$master_host', MASTER_USER='repl', MASTER_PASSWORD='$master_pass', MASTER_AUTO_POSITION=1; start slave"
mysql -u root -pPASS -e "show slave status\G;"
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: server.com
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File:
Read_Master_Log_Pos: 4
Relay_Log_File: rep-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File:
Slave_IO_Running: No
Slave_SQL_Running: Yes
Replicate_Do_DB: mydb
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: 0
Relay_Log_Space: 154
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: 1236
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID sets and the missing purged transactions are too long to print in this message. For more information, please see the master's error log or the manual for GTID_SUBTRACT.'
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: fe51e8df-b7c4-11e9-be21-4061862b8d34
Master_Info_File: /mnt/HC_Volume_8355755/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp: 210211 10:50:32
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set: 3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477,
94bb04d3-6c4e-11eb-8631-96000080ccbb:1-2
Auto_Position: 1
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
mysql-bin.000025 217141189 3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477,
fe51e8df-b7c4-11e9-be21-4061862b8d34:1-25059775
The gtid
value extracted from the file: 3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477
从文件中提取的
gtid
值: 3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477
Have also tried to fetch the second uid in /var/lib/mysql/xtrabackup_binlog_info
by doing还尝试通过执行来获取
/var/lib/mysql/xtrabackup_binlog_info
中的第二个 uid
gtid=$(tail -n 1 "$mysql_dir/xtrabackup_binlog_info")
Nothing works.. Same error没有任何作用..同样的错误
show master status
on master returns在主退货时
show master status
3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477,
fe51e8df-b7c4-11e9-be21-4061862b8d34:1-25203198
I found the solution here https://www.percona.com/doc/percona-xtrabackup/2.3/howtos/setting_up_replication.html我在这里找到了解决方案https://www.percona.com/doc/percona-xtrabackup/2.3/howtos/setting_up_replication.html
I was missing the xtrabackup --move-back
command我错过了
xtrabackup --move-back
命令
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.