您的位置:首页 > 数据库 > SQL

mysqldump VS mysqlhotcopy及脚本实例

2014-05-01 11:59 246 查看

 1.mysqlhotcopy

- 优点

  - 速度快

- 缺点

  - 只支持MyISAM引擎

  - 需要安装perl语言及配置支持环境,因为hotcopy由perl写成

  - 选项参数较少,功能不够强大,比如不提供--where选项,无法选取某部分数据备份

  - 只能运行在数据库目录所在的机器上

  

2.mysqldump

- 优点

  - 支持MyISAM和innodb引擎

  - 只要装了mysql就可以用,无需别的操作,不存在平台兼容问题

  - 参数较多,功能强大,可以备份整个数据库,也可以备份单个表,还可以备份单个表的部分数据

  - 可生成多种文件,还可以用于从一个MySQL服务器向另一个服务器复制数据

- 缺点

  - 速度没有那么快

3.综述

如果你只是想临时复制一张表,或者一个数据库,且数据库引擎都是MyISAM,使用速度较快的mysqlhotcopy比较方便;但是如果你需求比较特别,想备份一张表的部分数据,需要使用mysqldump

4.样例脚本

#!/bin/sh
# sh script for mysqldump

# 数据库信息
mysqlRoot=test
mysqlPWD=secret
mysqlHost=xxx.xxx.x.xxx
database=site_xxx

# 备份目录
backupDir=./mysqlbackup

# 如果备份目录不存在,则创建
if [ ! -e $backupDir ]; then
echo "新建备份目录./mysqlbackup"
mkdir $backupDir
fi

# 输入需要备份的时间段
read -p "备份起始日期" startdate
read -p "备份结束日期" enddate

# 查询当月记录文件夹,有删除,没有创建
dir=`date --date=$startdate +%Y%m`
backupPath=$backupDir/$dir
if [ -e $backupPath ]; then
rm -rf $backupPath
echo "删除记录目录"
fi

mkdir -p $backupPath
echo "新建./mysqlbackup/"$dir

# 执行mysqldump命令
for table in click custom close goodslog order pageview visit scroll visit_goal daily_click
do
mysqldump -u$mysqlRoot -h$mysqlHost -p$mysqlPWD $database $table --where="date between '$startdate' and '$enddate'" > $backupPath/$table.csv
echo $table "backup"
done
echo "backup over"


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息