Centos下mysql数据库备份与恢复的方法

作者: 关于计算机  发布:2019-12-09

Centos下mysql数据库备份与还原的不二秘技,centosmysql

黄金时代、mysqldump工具备份

mysqldump由于是mysql自带的备份工具,所以也是最常用的mysql数据库的备份工具。帮忙基于InnoDB的热备份。但出于是逻辑备份,所以速度不是赶快,切合备份数据量非常的小的现象。

mysqldump完全备份+二进制日志 —>完毕时间点过来

温备:

在使用MyISAM引擎中,只好接纳温备份,这时要防止数据的写入,所以先加上读锁

这个时候可以进来数据库手动加读锁。那样相比较劳苦,在mysqldump工具中央直属机关接有一个加锁的挑肥拣瘦

mysqldump --databases mydatabase --lock-all-tables --flush-logs> /tmp/backup-`date +%F-%H-%M`.sql

固然是本着某张表备份,只要在数据库名称后边加上表名称就行了

这边注意,要兑现时间点的重振旗鼓,加上--flush-logs选项,在接受备份文件恢复生机后,然后再根据二进制日志进行时间点的还原

时间点的回复措施

mysqlbinlog mysql-bin.000000x > /tmp/PointTime.sql

然后用mysql命令导入那个sql脚本就能够了

热备:
借使采取的是InnoDB引擎,就不用举行对数据库加锁的操作,加七个选用既可以够扩充热备份:--single-transaction
mysqldump --databases mydb --single-transaction  --flush-logs --master-data=2 > /tmp/backup-`date +%F-%H-%M`.sql

注意点
光复的每二十五日关闭二进制日志
mysql>set sql_log_bin=0;

例子:

# vim /usr/work/newsbackup.sh
# //填写以下内容
#!/bin/bash
# Program
# use mysqldump to Fully backup  news database data per week!
#History(版本)
#  2015-07-27 first
#path(定义目录)
BakDir=/usr/work/mysql/backup
Days=7  #DAYS=7代表删除7天前的备份,即只保留如今7天的备份
DelDate=` date -d -7day +%Y%m%d `   #去除ftp服务器空间7天前的备份
echo "You are in backup dir"
FileDate=$(date +%Y%m%d).sql.gz
echo $FileDate
cd $BakDir
File=$Date.sql
#归纳的备份
#mysqldump -u root news > $FileDate
#比如选择的是InnoDB引擎,就不要进行对数据库加锁的操作,加叁个选项不仅能够扩充热备份:--single-transaction
#mysqldump -u root news  --single-transaction >$FileDate
#对备份的数码继续回退
mysqldump -u root news  --single-transaction |gzip >/$BakDir/$FileDate
echo "Your database backup successfully completed"
#压缩有的多少开展传
echo FTP to FtpServer
ftp -ivn << EOF
#张开服务器连接
open 192.168.1.125
#用户 密码
user administrator zzf
#开荒路径
cd   newsbackup
#放入文件
put  $FileDate
#把劳务上7天前的多寡进行删减
delete $DelDate.sql.tz $DelDate.sql.tz
#退出ftp服务器
bye
EOF

echo  delete $Days days ago files(删除ftp服务器上7天前的文件卡塔尔(英语:State of Qatar)
cd $BakDir

#除去7天前的备份文件(注意:{} ;中间有空格卡塔尔(قطر‎
find $BakDir/ "*.sql.gz" -mtime +$Days -exec rm {} ;

 

二、基于LVM快速照相备份

在大意备份中 ,有依据文件系统的情理备份(LVM的快速照相),也得以一向用tar之类的指令打包。但那些只能进行冷备份
区别的蕴藏引擎能备份的品级也不生机勃勃致,MyISAM能备份到表品级,而InnoDB不开启每表一文件的话就只好备份整个数据库。

下边就介绍下利用LVM的快照功用拓宽备份
为了安全 首先在数据库上强加读锁

mysql>FLUSH TABLES WITH READ LOCK;

刷新一下二进制日志,便于做时间点过来

mysql>FLUSH LOGS;

下一场创制快速照相卷

lvcreate –L 1G –s –n data-snap –p –r /dev/myvg/mydata

最后走入数据库释放读锁

UNLOCK TABLES;

挂载快速照相卷进行备份

mount –r /dev/myvg/data-snap /mnt/snap

接下来对/mnt/snap下的文件进行打包备份
平复的时候,关闭mysqld,然后备份二进制日志后将原来备份的文本还原进去,然后经过二进制日志还原到离谱的时间点(通过二进制还原时间点的时候绝不忘记了不常关张二进制日志)

风姿洒脱、mysqldump工具有份 mysqldump由于是mysql自带的备份工具,所以也是最常用的mysql数据库的备份...

本文由金沙澳门官网送注册58发布于关于计算机,转载请注明出处:Centos下mysql数据库备份与恢复的方法

关键词: