简介
mysqldump 客户端client 最初是由Igor Romanenko写的备份程序。可以用来备份一个数据库或是用于备份数据库中的collection,备份后可以产送给不同的数据库服务器(不仅仅是MariaDB或是MySQL)。dump操作包含SQL语句来创建和populate table。然而mysqldump同样支持生成CSV文件和类似XML格式的其他分割后的(delimited)格式。
如果想要在服务器端备份,同事你的tables都是MyISAM table,可以考虑使用mysqlhotcopy,后者备份和恢复都更快。
性能
mysqldump 在现代的硬件上消耗CPU资源很少,并且只用一个线程完成。该方法比较适合一个重负载的服务器。
磁盘的的每秒读写(Disk input/outputs per second , IOPS),可能会增加,原因有很多。当你在同一个数据库设备上做备份时会产生不必要的随机IOPS。在针对每个table的处理上dump操作顺序执行,这将导致一个full-table的扫描,同时会有很多table上的缓存页(buffer page)因为没有在内存中完全缓存而缺失。
因此比较好的建议是从一个network location中备份来减少磁盘IOPS,但是这种方案需要一个独立得网卡来保证regular traffic 保有足够的网络带宽。
使用
有三种主要的方式来使用mysqldump:
shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] --databases db_name ...
shell> mysqldump [options] --all-databases
mysqldump默认不会dump INFORMATION_SCHEMA数据库。在所有的MariaDB和MySQL 5.1.38+中,可以通过在命令行中设置来导出 INFORMATION_SCHEMA。
想要查看mysqldump支持的详细选项,执行:
mysqldump --help