备份策略三、使用mysqldump备份数据库
mysqldump是采用SQL级别的备份机制,它将数据表导成SQL脚本文件,在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。mysqldump比直接拷贝要慢些。关于mysqldump的更详细解释见最后的附录。
对于中等级别业务量的系统来说,备份策略可以这么定:第一次完全备份,每天一次增量备份,每周再做一次完全备份,如此一直重复。而对于重要的且繁忙的系统来说,则可能需要每天一次全量备份,每小时一次增量备份,甚至更频繁。为了不影响线上业务,实现在线备份,并且能增量备份,最好的办法就是采用主从复制机制(replication),在slave机器上做备份。
备份策略布置:
(1)、创建备份目录
Shell>mkdir/tmp/mysqlbackup
Shell>mkdir/tmp/mysqlbackup/daily
(2)、启用二进制日志
采用binlog的方法相对来说更灵活,省心省力,而且还可以支持增量备份。
启用binlog时必须要重启mysqld。首先,关闭mysqld,打开/etc/my.cnf,加入以下几行:
[mysqld]
log-bin
然后启动mysqld就可以了。运行过程中会产生HOSTNAME-bin.000001以及HOSTNAME-bin.index,前面的文件是mysqld记录所有对数据的更新操作,后面的文件则是所有binlog的索引,都不能轻易删除。关于binlog的更详细信息请查看手册。
(3)、配置SSH密钥登录,用于将MySQL备份传送到备份服务器(如果备份服务器为Windows,请跳过此部)。
1)、在MySQL所在服务器(192.168.0.20)生成SSH密钥
[root@lab~]#ssh-keygen-trsa
Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/root/.ssh/id_rsa)://直接回车
Enterpassphrase(emptyfornopassphrase)://直接回车,不使用密码
Entersamepassphraseagain://直接回车,不使用密码
Youridentificationhasbeensavedin/root/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.
Thekeyfingerprintis:
c2:96:9f:2d:5a:8e:08:42:43:35:2f:85:5e:72:f8:1croot@lab
2)、在备份服务器(192.168.0.200)上创建目录,修改权限,并传送公钥。
[root@lab~]#ssh192.168.0.200"mkdir.ssh;chmod0700.ssh"
Theauthenticityofhost'192.168.0.200(192.168.0.200)'can'tbeestablished.
RSAkeyfingerprintis37:57:55:c1:32:f1:dd:bb:1b:8a:13:6f:89:fb:b8:9d.
Areyousureyouwanttocontinueconnecting(yes/no)?yes
Warning:Permanentlyadded'192.168.0.200'(RSA)tothelistofknownhosts.
root@192.168.0.200'spassword://输入备份服务器的root密码
[root@lab~]#scp.ssh/id_rsa.pub192.168.0.200:.ssh/authorized_keys2
root@192.168.0.200'spassword:
id_rsa.pub100%2180.2KB/s00:00
3)、测试SSH登录
[root@lab~]#ssh192.168.0.200//测试SSH登录
Lastlogin:FriNov1610:34:022007from192.168.0.20
[root@lib~]#
(4)、设置crontab任务,每天执行备份脚本
shell>crontab-e
#每个星期日凌晨3:00执行完全备份脚本
03**0/root/MySQLBackup/mysqlFullBackup.sh>/dev/null2>&1
#周一到周六凌晨3:00做增量备份
03**1-6/root/MySQLBackup/mysqlDailyBackup.sh>/dev/null2>&1
mysqlFullBackup.sh注释:
#!/bin/sh
# Name:mysqlFullBackup.sh
# PS:MySQL DataBase Full Backup.
# Write by:i.Stone
# Last Modify:2007-11-17
#
# Use mysqldump --help get more detail.
#
# 定义变量,请根据具体情况修改
# 定义脚本目录
scriptsDir=`pwd`
# 定义数据库目录
mysqlDir=/usr/local/mysql
# 定义用于备份数据库的用户名和密码
user=root
userPWD=111111
# 定义备份目录
dataBackupDir=/tmp/mysqlbackup
# 定义邮件正文文件
eMailFile=$dataBackupDir/email.txt
# 定义邮件地址
eMail=alter@somode.com
# 定义备份日志文件
logFile=$dataBackupDir/mysqlbackup.log
DATE=`date -I`
echo "" > $eMailFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
cd $dataBackupDir
# 定义备份文件名
dumpFile=mysql_$DATE.sql
GZDumpFile=mysql_$DATE.sql.tar.gz
# 使用mysqldump备份数据库,请根据具体情况设置参数
$mysqlDir/bin/mysqldump -u$user -p$userPWD /
--opt --default-character-set=utf8 --extended-insert=false /
--triggers -R --hex-blob --all-databases /
--flush-logs --delete-master-logs /
--delete-master-logs /
-x > $dumpFile
# 压缩备份文件
if [[ $? == 0 ]]; then
tar czf $GZDumpFile $dumpFile >> $eMailFile 2>&1
echo "BackupFileName:$GZDumpFile" >> $eMailFile
echo "DataBase Backup Success!" >> $eMailFile
rm -f $dumpFile
# Delete daily backup files.
cd $dataBackupDir/daily
rm -f *
# Delete old backup files(mtime>2).
$scriptsDir/rmBackup.sh
# 如果不需要将备份传送到备份服务器或备份服务器为Windows,请将标绿的行注释掉
# Move Backup Files To Backup Server.
#适合Linux(MySQL服务器)到Linux(备份服务器)
$scriptsDir/rsyncBackup.sh
if (( !$? )); then
echo "Move Backup Files To Backup Server Success!" >> $eMailFile
else
echo "Move Backup Files To Backup Server Fail!" >> $eMailFile
fi
else
echo "DataBase Backup Fail!" >> $emailFile
fi
# 写日志文件
echo "--------------------------------------------------------" >> $logFile
cat $eMailFile >> $logFile
# 发送邮件通知
cat $eMailFile | mail -s "MySQL Backup" $eMail
前一篇:MySQL 备份
相关推荐
mysql备份和恢复方案mysql备份和恢复方案mysql备份和恢复方案mysql备份和恢复方案mysql备份和恢复方案mysql备份和恢复方案mysql备份和恢复方案mysql备份和恢复方案mysql备份和恢复方案mysql备份和恢复方案mysql备份...
MySQL 备份和恢复策略二:使用mysqlhotcopy备份数据库 分类: 数据库 2011-03-09 15:20 204人阅读 评论(0) 收藏 举报 二、使用mysqlhotcopy备份数据库(完全备份,适合小型数据库备份) mysqlhotcopy 是一个 PERL ...
MySQL 数据库备份 和 恢复
实验报告六 MYSQL备份与恢复.docx
linux运维学习笔记:Mysql备份与恢复
生产中Mysql备份恢复的形式,基于mysqldump备份及原理,基于Xtrabcackup备份及原理,表空间传输,binlog备份(增量),基于mysql全备+增备的恢复Tips
絕對值得一看的MySQL資源,學習MySQL的必學部分
《Effective MySQL之备份与恢复》对照讲解不同的备份和恢复策略,将帮助您防止MySQL数据因范围广泛的各种灾难受到损坏。主要内容理解不同备份策略如何影响锁定和系统可用性了解静态备份选项和时间点要求的重要性体会...
NBU 备份mysql
用命令的形式 备份和恢复 mysql数据库 主要有一些备份和恢复中出现的注意事项!
mysql的备份和恢复基础知识(全量备份和增量备份)-详细笔记文档总结
详细解释mysql的备份、恢复的策略! 备份策略一:直接拷贝数据库文件(不推荐) 备份策略二:使用mysqlhotcopy备份数据库(完全备份,适合小型数据库备份) 备份策略三:使用mysqldump备份数据库(完全+增量备份,...
MySQL备份与恢复,里面都做了详细解析.ppt
此文档中详细的记载了Mysql数据库的备份与恢复知识,你可以按着文档中的教程自学成材,希望可以帮助到你!
本人自己对mysql的总结 ,包括mysql的数据备份和恢复,以及个人总结的mysql考试题目
目前 MySQL 支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。...
mysql数据库备份和恢复工具以及源码 。
Mysql数据备份与恢复操作文档.md
go-mydumper 一个多线程的MySQL备份和恢复工具
MYSQL备份和恢复.pdf