玩转mysql备份

相关名词解释:
 全量: 全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份。
 增量: 增量数据是从上次全量备份之后,更新的新数据。(binlog就是增量数据)
      譬如:上次全量备份时间是2017/01/02,那么之后产生的binlog日志就是增量数据(mysql-bin.000024)
 举例说明:
     相对于2017/01/02全量备份的增量是:
             从2017/01/02全量备份刷新binlog后开始到下次全量备份之前的binlog数据称为这次全量备份的增量数据
     结论: 周一的全量 加周一的增量就是周二的全量,因此周二全量有了,周一的全量和增量就没用了。
相关参数解释:
  -A   全部库
  -B   指定库
  -F   刷新binlog
  -S   备份远程库用
  -h   远程IP
  -p   远程端口
  -u   用户名
  -P   密码
  --lock-all-tables    锁全表
  --single-transaction 锁innodb表

对整个数据库进行备份:
  mysqldump -uroot -p123456 -S /var/lib/mysql/mysql.sock --events  -A --compact --default-character-set=utf8 -F |gzip  > mysql_all_$(date +%F).sql.gz
对数据库test进行一次全量备份:
  mysqldump -u root -p123456 -S /var/lib/mysql/mysql.sock --events --compact --default-character-set=utf8 -B test -F|gzip > mysql_test_$(date +%F).sql.gz
指定数据库备份:
  mysqldump -u root -p123456 -S /var/lib/mysql/mysql.sock --events --compact --default-character-set=utf8 -B test demo -F|gzip > mysql_test_$(date +%F).sql.gz
指定数据库中表备份:
  mysqldump -u root -p123456 -S /var/lib/mysql/mysql.sock --events --compact --default-character-set=utf8  test test_2 test_1  -F|gzip > mysql_test_$(date +%F).sql.gz

备份表结构:
  mysqldump -u root -p123456 -S /var/lib/mysql/mysql.sock --events --compact --default-character-set=utf8  -B test -d |gzip > mysql_test_$(date +%F).sql.gz
 
恢复备份:
scp ./mysql_test_2017-01-17.sql.gz [email protected]:/home/yeqing/
gunzip mysql_test_2017-01-17.sql.gz
或者 gzip -d mysql_test_2017-01-17.sql.gz
use test
set names utf8
source mysql_test_2017-01-17.sql
或者
mysql -uyeqing -p123456 < mysql_test_2017-01-17.sql

注意: 上述未加-A 或-B参数,就没有打开数据库语句: use database 所以,直接<导,不一定能成功。只能用source。

恢复增量(注意先恢复增量再恢复binglog)
mysqlbinlog mysql-bin.000010 > test.sql
mysql < test.sql

时间: 2024-10-06 10:53:03

玩转mysql备份的相关文章

mysql备份恢复详解

前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢

MySQL备份与增量备份

MySQL备份与增量备份 01)MySQL备份常用参数 -B 1.会备份创建和删除库的语句:2.备份多个库: --compact 去注释,适合调试 gzip 压缩:# mysqldump -uroot -pqb123 -S /data/3306/mysql.sock -F -B --master-data=2 mydb|gzip > /server/backup/bak_$(date +%F).sql.gz -A 备份所有库 -F 刷新binlog日志 --master-data=1/2 增加b

Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录

Mysql最常用的三种备份工具分别是mysqldump.Xtrabackup(innobackupex工具).lvm-snapshot快照.前面分别介绍了:Mysql备份系列(1)--备份方案总结性梳理Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录 废话不多说,下面即是使用lvm-snapshot快照方式备份mysql的操作记录,仅依据本人实验中使用而述. 操作记录:如下环

bat批处理实现mysql备份

一.新建bat文件,实现mysql备份功能.(即把txt文件后缀改为.bat) 代码解释: d:                                                                                    //选择d盘cd "D:\MySQL\MySQL Server 5.5\bin" //进入mysql安装目录下的bin文件set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

Mysql备份和恢复

Mysql备份和恢复 备份 热备,是指对数据库运行中直接进行备份,对正在运行的数据库没有任何影响: 冷备,是指在数据库停止(关闭)下进行备份,只需拷贝相关的数据物理文件: 温备,是指对数据库运行中直接进行备份,但对当前数据库操作有所影响,很少用. 按备份出来的文件内容分为: 逻辑备份: 裸文件备份. 逻辑备份后文件内容是可读的,通常是文本文件,内容一般是Sql语句或表内的实际数据,如mysqldump或select * into outfile等方法.适用于数据库的升级.迁移,恢复时间较长. 裸

MySQL备份数据库脚本

Windows @echo offmysqldump --add-drop-database --add-drop-table -u root -p123456 dbname > d:\db_backup\%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%_dbname.sql Linux #!/bin/shcd /usr/binDATE=`date +%Y-%m-%d`# 备份dbname数据库/usr

mysql 备份类型

如果数据库已经安装在raid01 或者raid10上面,那我们的数据库是否还需要备份 答:需要的,因为我们的raid只是为了保证硬件损坏而不会中断业务.但是软件上的故障或者人为删除数据库.raid是无法对数据进行还原的.因为你删除了的时候,假如是在raid上面,也会删除掉两份数据.因此数据库备份和raid 是两个不同层次的概念. mysql备份如何进行,以及应该备份哪些数据? 备份类型: 我们的数据库非常繁忙,每一秒都有读写操作.假如你执行一个拷贝命令,那你只能拷贝出来当时那个时间段的数据,后面

mysql备份

mysql备份与还原 备份:将当前已有的数据或记录保留 还原:将已保留的数据恢复到对应的表中 为什么要做备份还原? 1.防止数据丢失:被盗.误操作 2.保护数据记录 数据备份有很多种:数据表备份,单表备份,sql备份,增量备份 数据表备份:不需要通过sql来备份,直接进入数据库文件夹对表结构及数据进行复制,以后还原直接将数据放进去就行 数据表备份有前提条件:根据不同的存储引擎有不同的区别 存储引擎:mysql进行数据存储方式:主要有两用innodb和myisam(免费) 这种文件备份适合用myi

mysql备份与还原

防伪码:志向不过是记忆的奴隶,生气勃勃地降生,但却很难成长. 一.mysqldump备份结合binlog日志恢复 MySQL 备份一般采取全库备份加日志备份的方式,例如每天执行一次全备份,每小时执行一 次二进制日志备份.这样在 MySQL 故障后可以使用全备份和日志备份将数据恢复到最后一个 二进制日志备份前的任意位置或时间. 1.binlog介绍 mysql的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上 开启binlog),还包括了这些操作的执行时间.为了显示这些二进