mysqlhotcopy使用lock tables、flush tables和cp或scp来快速备份数据库.它是备份数据库或单个表最快的途径,完全属于物理备份,但只能用于备份MyISAM存储引擎和运行在数据库目录所在的机器上.与mysqldump备份不同,mysqldump属于逻辑备份,备份时是执行的sql语句.使用mysqlhotcopy命令前需要要安装相应的软件依赖包
看了文章想使用mysqlhotcopy工具,系统边没有自带MYSQL工具需要编译包。
总结思路:
1.故障情况
perl Makefile.PL中msyqldeep 0not found. 报错。(mysql缺少0深度变量)
2.make编译报错
/bin/sh: gcc: command not found make: ***[dbdimp.o] Error 127;(缺少gcc+编译源文件)
具体操作:
1.#yum install gcc
#rpm -qa | grep gcc
#make && make install (注意缺少依赖包,查看报错什么然后进行yum安装。)
#yum install perl-DBD* -y#wget https://cpan.metacpan.org/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.029.tar.gz(抓取网络包路径,最好浏览器打开试一试,有时候会地址更新)
#tar xvf DBD-mysql-4.029.tar.gz
#perl Makefile.PL
#make && make install
#echo $? (结果为0)
2.添加文件
# vim /usr/my.cnf --在配置文件中添加如下参数
#/etc/init.d/mysql restart (正常启动)
3.使用mysqlhotcopy工具操作 ---#mysqlhotcopy --help(查看版本好)
#mysqlhotcopy -u root -p system tong /opt/
#ll
# mysqlhotcopy -u root -prootroot mysql /opt/ (备份一个数据库到目录内)
# ll /opt/tong/
total 112
-rw-rw----. 1 mysql mysql 15 Jan 5 14:35 q.isl
-rw-rw----. 1 mysql mysql 8554 Jan 4 18:03 t.frm
-rw-rw----. 1 mysql mysql 98304 Jan 4 18:03 t.ibd
# ll /var/lib/mysql/tong
total 112
-rw-rw----. 1 mysql mysql 15 Jan 5 14:35 q.isl
-rw-rw----. 1 mysql mysql 8554 Jan 4 18:03 t.frm
-rw-rw----. 1 mysql mysql 98304 Jan 4 18:03 t.ibd
# mysqlhotcopy -u root -prootroot tong mysql /opt/tong (备份多个数据库到一个目录中)
# ll /opt/
total 8
drwxr-x---. 2 mysql mysql 4096 Jan 5 15:29 mysql
drwxr-x---. 2 mysql mysql 4096 Jan 5 15:29 tong
# ll/var/lib/mysql/{mysql,tong} -d
drwxr-xr-x. 2 mysql mysql 4096 Jan 5 15:29 /var/lib/mysql/mysql
drwxr-xr-x. 2 mysql mysql 4096 Jan 5 15:29 /var/lib/mysql/tong
# mysqlhotcopy -u root -psystem mysql./user*/ /opt/ (备份数据库中某一个表)
# ll /opt/mysql/
total 20
-rw-r--r--. 1 mysql mysql 10684 Jan 4 16:49 user.frm
-rw-r--r--. 1 mysql mysql 784 Jan 4 16:49 user.MYD
-rw-r--r--. 1 mysql mysql 2048 Jan 4 16:49 user.MYI
# ll/var/lib/mysql/mysql/user.*
-rw-r--r--. 1 mysql mysql 10684 Jan 4 16:49 /var/lib/mysql/mysql/user.frm
-rw-r--r--. 1 mysql mysql 784 Jan 4 16:49/var/lib/mysql/mysql/user.MYD
-rw-r--r--. 1 mysql mysql 2048 Jan 4 16:49/var/lib/mysql/mysql/user.MYI
# rm -rf/var/lib/mysql/tong (恢复数据库操作)
# mysql -u root -p
mysql> show databases; (查看数据库删除没,一般都删除掉了)
# cp -arp /opt/tong/var/lib/mysql/ --将备份的数据移到mysql数据根目录
# mysql -u root -p
mysql> u tong
Database changed
mysql> show tables;
+----------------+
| Tables_in_tong |
+----------------+
| t |
+----------------+
2 rows in set (0.00 sec)
mysql> exit
Bye
截图自己环境搭建的历史指令