FaceBook的MySQL 5.6包括对mysqldump的增强,以支持MyRocks的一致性备份。 要使用mysqldump进行MyRocks备份,您需要使用FaceBook的MySQL 5.6构建 mysqldump
与InnoDB一样,MyRocks 支持与mysqldump一致的逻辑性备份,具有相同的选项。
以下是一个例子:
mysqldump -h 127.0.0.1 -P 3306 --default-character-set=binary --single-transaction --master-data=2
Facebook的mysqldump检查default_storage_engine全局变量。它的default_storage_engine是RocksDB,mysqldump 采用一致的RocksDB备份。 如果是InnoDB,mysqldump会才采用一致的InnoDB备份。
在进行逻辑备份时要记住的一件事情是–order-by-primary选项,它会转储按其主键排序的每个表的行。 这在批量加载的时候非常有用,因为它允许MyRocks直接写入RocksDB中的SST文件,从而绕过了将数据写入MemTable的需要(因此也跳过了所有以下的压缩) 批量加载的一个要求是主键的数据按顺序加载。
我们在我们的mysqldump版本中添加了一个–rocksdb-bulk-load选项,它将使用set rocksdb_bulk_load ON/OFF 包装存储,从而在MyRocks中启用批量加载。