Mysql-Cluster
如何將 MySQL 集群 (NDB) 備份遷移到不同的 ndb 集群?
我有兩個 MySQL 集群 (NDB),Prod 和 Dev。每個集群包含 SQL 節點、管理節點和數據節點。使用以下文章在一個集群上完成備份:
https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-backup-using-management-client.html
如何將創建的備份文件導入到單獨的 MySQL Cluster?即用產品數據刷新開發集群。
備份似乎與創建它的集群相關聯。有沒有辦法使用備份文件在單獨的集群上進行“恢復”?
可以在不同的集群上恢復備份。我自己做過很多次。在 NDB 的情況下,僅備份和恢復過程並不那麼簡單。
- 使用 mysqldump 備份 NDB 表結構。
- 進行 NDB 備份。
- 在新集群上恢復 mysqldump 備份。
- 使用 ndb_restore 恢復 NDB 數據(在兩個數據節點上)。
- 重建索引(命令必須只在一個數據節點上執行)。
我正在使用以下步驟來執行備份和恢復。在第一步中,我生成轉儲腳本以備份方案結構。
echo "select concat('mysqldump --opt --no-data ', table_schema, ' ', table_name, ' > ', table_schema, '/', table_name, '.mysqldump') from tables where engine='ndbcluster' and table_schema 不在 ('mysql');" | mysql -NB information_schema > dumpscript.sh ndb_mgm -e "開始備份 222 等待完成" [將 BACKUP/BACKUP-222 目錄從源數據節點複製到目標數據節點] [恢復mysqldump文件] ndb_restore --nodeid=10 --no-binlog --restore_data --disable-indexes --parallelism=1024 --promote-attributes --backupid=222 --exclude-databases=ndbinfo --backup_path=/mysql/cluster/備份/備份-222/ ssh othernode ndb_restore --nodeid=11 --no-binlog --restore_data --disable-indexes --parallelism=1024 --promote-attributes --backupid=222 --exclude-databases=ndbinfo --backup_path=/mysql/集群/備份/備份-222/ ndb_restore --nodeid=10 --no-binlog --backupid=222 --exclude-databases=ndbinfo --backup_path=/mysql/cluster/BACKUP/BACKUP-222/ --rebuild-indexes --parallelism=512
如果這看起來太簡單 - 請記住,如果有外鍵,您將不得不刪除並稍後重新創建外鍵。:)