在MySQL Cluster集群上,可以在管理节点上使用start backup命令实现数据库的在线备份,在还原时可以使用ndb_restore命令来进行数据库的还原。
使用MySQL Cluster的start backup,可以生成以下三种格式的备份文件:
1.BACKUP-backup-id.node_id.ctl
ctl控制文件存储表定义以及其他对象的元数据(metadata)。
2.BACKUP-backup-id.node_id.data
data数据文件,保存的是表中的记录行,由于数据节点分片的原因,每个节点上文件的数据是不一致的。
3.BACKUP-backup-id.node_id.log
log日志文件保存已提交的事物记录。
上述文件中,backup-id是备份标识,node_id是数据节点的唯一编号。
在一个sql节点创建测试数据库
mysql> create database clusterdb;use clusterdb;
mysql> create table simples (id int not null primary key) engine=ndb;
mysql> insert into simples values (1),(2),(3),(4);
mysql> select * from simples;
集群节点情况:
在管理节点运行备份:start backup
在数据节点查看备份情况:
进去一个数据节点删除测试数据库clusterdb中的表simples
进入数据节点2还原数据 输入命令:
./ndb_restore -c 192.168.0.13 -n 2 -b 2 -m -r --backup-path=/usr/local/mysql/data/BACKUP/BACKUP-2/
查看恢复了部分数据
在后续节点上还原时就不需要指定-m选项来还原metadata
./ndb_restore -c 192.168.0.13 -n 3 -b 2 -r --backup-path=/usr/local/mysql/data/BACKUP/BACKUP-2/
数据已经恢复!