我们正在使用主服务器的完整备份恢复我们的从服务器,并收到一堆重复的密钥错误。一旦从站被追上,它就不会抛出任何错误(只有当它落后于主站时)。我们复制所有数据库表。我们使用一个 MariaDB Galera 集群作为主,一个 MariaDB 实例作为从。
这些是完成的步骤:
通过检查变量获取 master 的 GTID "gtid_binlog_position"
。保存此值。
使用以下命令备份 master:
mysql -u -p --routines --triggers --single-transaction --gtid --master-data --dump-slave --add-drop-database <dbnames> | gzip > /tmp/backup.sql.gz
.
完成此备份大约需要 20 分钟。
将数据库导入从属。
运行RESET SLAVE ALL
,并将 GTID 位置设置为第一步中的值。这是通过命令完成的SET GLOBAL gtid_slave_pos = "<gtid from step 1>";
,然后CHANGE MASTER TO ...
在此之后,我收到"Duplicate Entry for key 'PRIMARY', error code 1062"
错误。
这些是使用的设置:
[mysqld]
innodb_buffer_pool_size = 6G
gtid_domain_id=100
log-slave-updates=true
open_files_limit=1000000
innodb_large_prefix = on
innodb_file_format = barracuda
innodb_file_per_table …
Run Code Online (Sandbox Code Playgroud)