一、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天前的文件)
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,然后备份二进制日志后将原来备份的文件还原进去,然后通过二进制日志还原到出错的时间点(通过二进制还原时间点的时候不要忘了暂时关闭二进制日志)

转载于:https://www.cnblogs.com/running-mydream/p/4682182.html

Centos下mysql数据库备份与恢复的方法相关推荐

  1. centos mysql压缩文件直接恢复_Centos下mysql数据库备份与恢复的方法

    一.mysqldump工具备份 mysqldump由于是mysql自带的备份工具,所以也是最常用的mysql数据库的备份工具.支持基于InnoDB的热备份.但由于是逻辑备份,所以速度不是很快,适合备份 ...

  2. CentOS下MySQL数据库常用命令总结 (资源)

    2019独角兽企业重金招聘Python工程师标准>>> MySQL分支 Percona和MariaDB MySQL查询过程 注意 : 在进行 MySQL 的优化之前必须要了解的就是 ...

  3. CentOS下mysql数据库常用命令总结

    mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...

  4. linux mysql数据库优化_MySQL_Linux下MySQL数据库性能调优方法,以下的环境具备一定的代表性 - phpStudy...

    Linux下MySQL数据库性能调优方法 以下的环境具备一定的代表性,可以说是中小企业一般配置和工作环境.希望通过本文能让大家理解Linux下MySQL数据库性能调优方法. 硬件准备环境: 硬盘: 1 ...

  5. centos下MySQL Workbench连接时崩溃的解决方法

    centos下MySQL Workbench连接时崩溃的解决方法 参考文章: (1)centos下MySQL Workbench连接时崩溃的解决方法 (2)https://www.cnblogs.co ...

  6. CentOS6.8下MySQL数据库忘记root密码解决方法

    CentOS6.8下MySQL数据库忘记root密码解决方法 参考文章: (1)CentOS6.8下MySQL数据库忘记root密码解决方法 (2)https://www.cnblogs.com/vu ...

  7. MySQL数据库多种安装方法及企业级安装实践

    本文来自老男孩老师第三本书籍著作<老男孩的MySQL私房菜>第三章内容分享! 3.1 MySQL数据库的安装方法及选择 在当今的互联网企业里,MySQL数据库大多运行在Linux系列操作系 ...

  8. mysql中文问号 linux,解决Linux系统下Mysql数据库中文显示成问号的问题

    Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 (需暂停服务的方式) Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 本机采用Ubuntu16.04系统,tar方式安装My ...

  9. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

    阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...

最新文章

  1. Linux系统中创建大文件,并作为文件系统使用
  2. Error while adding the mapper ‘interface *****类‘ to configuration报错原因
  3. ​多任务学习漫谈:行梯度之事
  4. 阿里云服务网格 ASM 发布新功能:提供更精细化的服务治理能力
  5. W10系统matlab无法保存对该路径的更改 pathdef_MATLAB的运行与窗口介绍
  6. 【转】oracle内置函数 trunc 使用
  7. WinSock API相关函数
  8. Raki的读paper小记:Word2Vec
  9. 傅里叶变换对照表_实验室仪器中英文及缩写对照表
  10. pythonista模板_Python——Code Like a Pythonista: Idiomatic Python
  11. OS学习笔记-5(清华大学慕课)计算机体系结构与内存层次
  12. android studio内容提供者(查看短信的猫)点击查看短信,闪退,无法显示短信内容。(附程序源代码,以及解决办法)
  13. python分割pdf文档
  14. JAVA设计模式总结之六大设计原则
  15. Android使用mob实现第三方登录(Facebook、Twitter)
  16. CET-4 week 6th -- 后缀
  17. “电梯”英文域名Lifts.com超63.5万结拍
  18. 读围城论方鸿渐与孙柔嘉的爱情
  19. 区块链社区丨2020年区块链社区排名
  20. 5G网络逐渐普及TSINGSEE青犀视频云边端架构网页视频实时互动直播系统又将如何发展?

热门文章

  1. hive臨時udf與永久udf詳細操作流程
  2. intellij中的required和found各指什么
  3. Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
  4. Unrecognized option: -javaagent
  5. python2.x和python3.x-matplotlib中文显示为方块-中文不显示-故障原理研究与解决
  6. Rstudio修改背景颜色和源
  7. python中json格式数据输出实现方式(无unicode编码输出形式)
  8. linux为什么创建不了分区,linux下扩容磁盘扩展分区解决因无法创建新分区不能扩容lvm问题...
  9. 猴子选王c语言链表程序代码,c/c++编程题 之 猴子选大王(数组、链表两种方法)...
  10. 方差为什么用平方不用绝对值_为什么炖鸡汤,人们喜欢用母鸡而不用公鸡?原来差别这么大!...