命令介绍
mysqlhotcopy 只是简单的缓存写入和文件复制的过程,其使用 LOCK TABLES、FLUSH TABLES 和 CP 来进行快速备份,占用资源和备份速度比 mysqldump 快很多很多。特别适合大的数据库,但需要注意的是:mysqlhotcopy 只支持 MyISAM 引擎
原理:先将需要备份的数据库加上一个读锁,然后用FLUSH TABLES将内存中的数据写回到硬盘上的数据库,最后,把需要备份的数据库文件复制到目标目录。
命令格式
[root@localhost ~]# mysqlhotcopy [option] db_name1 db_name2 backup_dir
db_name:数据库名称
backup_dir:备份到哪个目录下
安装 mysqlhotcopy
使用 mysqlhotcopy 需要安装 perl 支持,因为 mysqlhotcopy 是 prel 语言写的。
所以使用前先安装一下啊以下三个 perl 包:
yum install -y perl perl-DBI perl-DBD-MySQL
安装好了之后就可以直接使用 mysqlhotcopy 了。
常用选项
选项 | 说明 |
---|---|
–help | 查看mysqlhotcopy帮助; |
–allowold | 如果备份目录下存在相同的备份文件,将旧的备份文件加上_old; |
–keepold | 如果备份目录下存在相同的备份文件,不删除旧的备份文件,而是将旧的文件更名; |
–flushlog | 刷新二进制日志文件 |
–noindices | 只备份数据文件,不备份索引文件; |
–user=用户名 | 用来指定用户名,可以用-u代替; |
–password=密码 | 用来指定密码,可以用-p代替。使用-p时,密码与-p之间没有空格; |
–port=端口号 | 用来指定访问端口,可以用-P代替; |
–socket=socket文件 | 用来指定socket文件,可以用-S代替; |
参考文献:
https://blog.csdn.net/zmj_88888888/article/details/9167345