1. mysqlhotcopy
这个命令会在拷贝文件之前会把表锁住,并把数据同步到数据文件中,以避免拷贝到不完整的数据文件,是最安全快捷的备份方法。
命令的使用方法是:
mysqlhotcopy -u root -p<rootpass>db1 db2 … dbn <output_dir>
如果需要备份全部数据库,可以加上–regexp=”.*”参数。
Mysqlhotcopy命令可自动完成数据锁定工作,备份时不用关闭服务器。它还可以刷新日志,使备份文件和日志文件的检查点能保持同步。
2. mysqldump
这个命令是用来把数据库倒成sql文件的,是非常古老的命令了。
命令的使用方法是:
mysqldump -u root -p<rootpass>–hex-blob db1 >db1.sql
加上–hex-blob参数以后,blob数据会被类似BASE64的方法转换为文本来存储在sql文件中,就不会导致sql文件格式问题了。经过测试,通过这种方法备份的blob数据再重新恢复回去能够完全正确。
如果要备份所有的数据库,可以加上–all-databases参数。
用mysqldump命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件。重复执行可定期更新远程数据库。
% mysqladmin -h remote_host create testdb
% mysqldump –opt testdb | mysql -h remote_host testdb
另外还可通过ssh远程调用服务器上的程序,如:
% ssh remote_host mysqladmin create testdb
使用mysqldump备份数据库
但远程备份一般都比较慢没办法保证数据库的一致性
例如:
备份所有库mysqldump -h xx.xx.xx.xx -P 3306 -uusername -ppassword --max_allowed_packet=1G -R -E -d --opt --flush-logs --default-character-set=utf8 --all-databases > backup.sql
备份单库
mysqldump -h xx.xx.xx.xx -P 3306 -uusername -ppassword --max_allowed_packet=1G -R -E -d --opt --flush-logs --default-character-set=utf8 dbname > backup.sql
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)