mysqldump:
优点: 官方自带备份命令, innodb引擎, Myisam引擎都适用
缺点: 备份时需锁表
具体命令:
sudo /usr/local/mysql/bin/mysqldump -uroot -p123456 \
--lock-all-tables --routines --triggers --events --master-data=2 --flush-logs \
--databases --databases account_dev company_dev marketing_dev > /data/archive/dbbackup/备份文件名.sql
常用参数说明:
--lock-all-tables #锁定所有表, 使用全局读锁,不允许任何修改操作
--routines #(备份存储过程、存储函数)
--triggers #(备份触发器)
--events #备份事件
--master-data=2
--flush-logs #在数据库导出之前先执行FLUSH LOGS
--databases #指定数据库
vim /data/dbbackup.sh # 脚本备份数据库
backup_dir="/data/archive/dbbackup"
mysqluser="root"
mysqlpwd="123456"
backuplog="/tmp/dbbackup.log"
echo "`date '+%F_%T'` 准备开始备份数据库"
sudo /usr/local/mysql/bin/mysqldump -u$mysqluser -p$mysqlpwd --lock-all-tables --routines --triggers --events --master-data=2 --flush-logs --databases account_dev company_dev marketing_dev > $backup_dir/`date '+%F_%H-%M-%S'`_backup.sql 2>>$backuplog
if [ $? -eq 0 ]; then
echo "`date '+%F_%T'` 备份数据库成功 " 1>>$backuplog 2>&1
else
echo "`date '+%F_%T'` 备份数据库失败, 请查看日志 $backuplog " 1>>$backuplog 2>&1
exit 1
fi