时间:2021-07-01 10:21:17 帮助过:16人阅读
CentOS下使用mysqlhotcopy定时备份MySQL数据库(MyISAM存储引擎)
mysqlhotcopy与mysqldump比较:
前者是一个快速文件意义上的COPY,后者是一个数据库端的SQL语句集合。
前者只能运行在数据库目录所在的机器上,后者可以用在远程客户端,不过备份的文件还是保存在服务器上。
相同的地方都是在线执行 LOCK TABLES 以及 UNLOCK TABLES
前者恢复只需要COPY备份文件到源目录覆盖即可,后者需要导入SQL文件到原库中。(source 或 mysql < bakfile.sql)
前者只适用于 MyISAM 引擎,而后则则可同时使用于MyISAM引擎和InodDB引擎.
前者在使用前必须安装perl-DBD-mysql包,而后者则不需要.
使用mysqlhotcopy之前需要安装perl-DBI和DBD-mysql:
1
yum -y install perl perl-DBI
Shell脚本如下:
01
# Name:mysqlbackup.sh
02
# PS:MySQL DataBase Backup,Use mysqlhotcopy script.
03
# Last Modify:2008-06-12
04
# 定义变量,请根据具体情况修改
05
# 定义脚本所在目录
06
scriptsDir=`pwd`
07
# 数据库的数据目录
08
dataDir=/usr/local/mysql/var/
09
# 数据备份目录
10
tmpBackupDir=/tmp/mysqlblackup
11
backupDir=/home/backup/mysql
12
# 用来备份数据库的用户名和密码
13
mysqlUser=root
14
mysqlPWD='456123'
15
# 如果临时备份目录存在,清空它,如果不存在则创建它
16
if [[ -e $tmpBackupDir ]]; then
17
rm -rf $tmpBackupDir/*
18
else
19
mkdir $tmpBackupDir
20
fi
21
22
# 如果备份目录不存在则创建