MySQL NDB 集群数据库的备份计划不是 innoDB

1 mysql backup ndbcluster

我有一个将增长超过 250GB 的数据库,所有数据都在 NDB 引擎(2 个数据节点)中,没有其他用于数据存储的 mysql 引擎。

  • MySQL Cluster NDB 数据库备份的最佳方法或计划是什么。

  • MySQL Enterprise Backup(MySQL Cluster CGE 的一部分)或任何其他工具是否为 NDB 进行备份?

  • 像我这样的初学者可以轻松完成这些 NDB 备份还是需要专业技能?

亲切的问候,

JP *_*han 5

您应该阅读更多有关集群的文章以更好地理解。我在此处列出了使用 4 个数据节点场景进行集群备份和恢复的步骤。

1.MySQL集群原生备份工具(ONLINE Backup)与恢复

1.1

ndb_mgm> START BACKUP <Option>

<Option>:NOWAIT, WAIT STARTED, WAIT COMPLETED
Run Code Online (Sandbox Code Playgroud)

NOWAIT - 这会立即向显示器返回响应并开始备份,而无需等待来自数据节点的响应。

WAIT STARTED - 仅当所有数据节点都返回响应表明备份已开始时,才会向显示器返回响应。

WAIT COMPLETED - 仅当所有数据节点都返回响应表明备份已成功完成时,才会向显示器返回响应。
在大多数情况下,使用 START BACKUP WAIT COMPLETED 是最好的选择:

 ndb_mgm> START BACKUP WAIT COMPLETED
Run Code Online (Sandbox Code Playgroud)

在磁盘上创建的文件

1.1.1 .ctl - 这组文件(标记为backup-..ctl)是来自集群的每个数据节点的元数据。

1.1.2 .log - 这组文件(标记为backup-..log)包含UNDO 日志文件,以保持备份一致并确保在备份过程中不需要锁定。

1.1.3 .Data - 这组文件(标记为备份——..Data)包含整个系统的数据。

1.2 中断正在进行的备份。

如果中止成功,将显示一条消息,说明这一点并发出错误(这是意料之中的)。如果输入了备份 ID,但没有与该 ID 关联的备份发生,则有响应但没有发出错误:

ndb_mgm> ABORT BACKUP <backup id> 
ndb_mgm> ABORT BACKUP 6
Run Code Online (Sandbox Code Playgroud)

1.3 ndb_mgm> <node_id> REPORT BackupStatus

此命令在备份期间随时为 node_id 或使用 ALL 的所有数据节点提供有关集群备份的状态报告。

1.4 恢复集群备份

1.4.1 关闭集群再重启管理节点

1.4.1.1

 ndb_mgm>SHUTDOWN
Run Code Online (Sandbox Code Playgroud)

1.4.1.2

/usr/local/mysql/bin/ndb_mgmd 
Run Code Online (Sandbox Code Playgroud)

1.4.2 启动并清空数据节点:-

在恢复备份之前,重要的是启动和清空数据节点。这是通过使用 --initial 选项启动每个数据节点来完成的。

./ndbd  --initial
Run Code Online (Sandbox Code Playgroud)

1.4.3 恢复集群备份

1.4.3.1 ndb_mgm> ENTER SINGLE USER MODE [Node-Id of First Free Slot]

1.4.3.2 在操作系统控制台中,从 /var/lib/mysqlcluster/BACKUP/BACKUP-1/ 目录输入以下命令:

ndb_restore -m -r -b 1 -n 2   /* -- For First DataNode*/
ndb_restore -r -b 1 -n 3      /*-- For Second DataNode */
Run Code Online (Sandbox Code Playgroud)

1.4.3.3

ndb_mgm> EXIT SINGLE USER MODE
Run Code Online (Sandbox Code Playgroud)

2. 通过 MySQLDump Utility 备份 MySQL Cluster

2.1

shell> mysqldump -u root -p --lock-tables Dd_Name > Db_Name-backup.sql
Run Code Online (Sandbox Code Playgroud)

2.2 恢复mysqldump文件

shell> mysql -u root -p < Db_Name-backup.sql
Run Code Online (Sandbox Code Playgroud)