12-数据备份
在前面章节中已经介绍过如何使用mysqldump工具对数据库进行逻辑备份。这个方法同样适合于MySQL Cluster,备份方法和其他存储引擎一样,唯一的区别是在任意一个SQL节点上都可以执行,这里不再赘述。
本节主要介绍 Cluster 的物理备份方法。以上文中的测试环境为例,启动管理服务器(ndb_mgm),并执行“start backup”命令启动备份。
ndb_mgm> start backup;
Waiting for completed, this may take several minutes
Node 3: Backup 1 started from node 1
Node 3: Backup 1 started from node 1 completed
StartGCP: 3010 StopGCP: 3013
Records: 4107 #LogRecords: 0
Data: 67440 bytes Log: 0 bytes
在备份日志中,需要注意“Backup 1”,它表示该备份的唯一 ID,如果做第二次备份,备份 ID会变成“Backup 2”。当日志中显示“Backup 1 started from node 1 completed”时,本次备份结束。备份的数据保存在每个数据节点下,具体备份路径是$MYSQL_HOME/data/BACKUP/BACKUP-备份ID。
上面的备份例子在两个数据节点下都可以看到备份数据。对于数据节点192.168.7.187,可以看到以下数据文件:
[zzx2@zzx BACKUP-1]$ pwd
/home/zzx2/mysql/data/BACKUP/BACKUP-1
[zzx2@zzx BACKUP-1]$ ls -ltr
total 60
-rw-rw-r-- 1 zzx2 zzx2 44 Dec 12 16:48 BACKUP-1.2.log
-rw-rw-r-- 1 zzx2 zzx2 6580 Dec 12 16:48 BACKUP-1.2.ctl
-rw-rw-r-- 1 zzx2 zzx2 34920 Dec 12 16:48 BACKUP-1-0.2.Data
对于数据节点192.168.7.55,可以看到以下数据文件:
[zzx2@test55 BACKUP-1]$ pwd
/home1/zzx2/mysql/data/BACKUP/BACKUP-1
[zzx2@test55 BACKUP-1]$ ls -ltr
total 60
-rw-rw-r-- 1 zzx2 zzx2 44 Dec 12 17:50 BACKUP-1.3.log
-rw-rw-r-- 1 zzx2 zzx2 6580 Dec 12 17:50 BACKUP-1.3.ctl
-rw-rw-r-- 1 zzx2 zzx2 32936 Dec 12 17:50 BACKUP-1-0.3.Data
细心的读者可能发现,以上两个节点上的数据文件名不一样,一个包含“.2”,另一个包含“.3”,这个数字表明了此备份是哪个数据节点上的数据(192.168.7.187为节点2,192.168.7.55为节点3)。
对于大数据量的备份,MySQL Cluster还提供了几个备份的参数可供调整,这些参数需要写在 config.ini的[NDBD DEFAULT]或者[NDBD]组中,对各参数的具体说明如下。
BackupDataBufferSize:将数据写入磁盘之前用于对数据进行缓冲处理的内存量。
BackupLogBufferSize:将日志记录写入磁盘之前用于对其进行缓冲处理的内存量。
BackupMemory:在数据库节点中为备份分配的总内存。它应是分配给备份数据缓冲的内存和分配给备份日志缓冲的内存之和。
BackupWriteSize:每次写入磁盘的块大小,适用于备份数据缓冲和备份日志缓冲。