数据备份全备

备份命令 :mysqldump把数据库的数据以sql语句导出属于逻辑备份

格式 :

mysqldump -uroot -p123456 -S 多实例的mysql.sock 数据库名 >/备份的文件名        #单库备份
egrep -v '#|\*|--|^$' /备份文件名 #检查备份的结果

恢复数据:

mysql -u用户名 -p密码 库名</备份文件名      #把备份的文件导入mysql

备份单个表

mysqldump -uroot -p123456 -S /多实例.sock 库名 表名>/备份文件名  #不加-B前边是库后边是表

恢复单个表

mysql -u用户名 -p密码 库名</备份文件名      #把备份的文件导入mysql

mysqldump 的参数

-B 库名   #在备份文件里增加创建数据库和进入数据库的命令 加-B就算数据库被drop掉也可以直接恢复

mysqldump -uroot -p123456 -S /多实例mysql.sock -B 库名>/备份文件          #备份 可备份多个库 -B 库名1 库名2 库名N  
mysql -uroot -p123456 -S /多实例mysql.sock <备份文件                 #恢复

 -d  备份表结构

mysqldump -uroot -p123456 -S /多实例.sock -d 库名 表名>/备份文件名

-t  只备份表内数据

mysqldump -uroot -p123456 -S /多实例.sock -t 库名 表名>/备份文件名

-A  备份所有数据

mysqldump -uroot -p123456 -S /多实例mysql.sock -A -B --events>/备份文件名      #-A需和-B和--events连用

-F  刷新binlog文件使用后新的binlog文件记录日志

mysqldump -uroot -p123456 -S /多实例mysql.sock -A -B -F --events>/备份文件名 

|gzip  将mysqldump全备的文件进行压缩

mysqldump -uroot -p123456 -S /多实例mysql.sock -A -B -F --events|gzip>/备份文件名       #用于数据库数据过大

备份时锁表   myisam引擎用:-x  innodb引擎用: --single-transaction    #这两个要放在前边 

mysqldump -uroot -p123456 -S /多实例mysql.sock -x --events  -A -B -F| gzip >/备份文件名     #myisam引擎 

mysqldump -uroot -p123456 -S /多实例mysql.sock --single-transaction --events -A -B -F| gzip >/备份文件名   #innodb引擎

--master-data=1    记录日志文件名和偏移量  --master-data=2记录偏移量并做注释 #在使用主从复制时不需要在change master里写入日志文件名和偏移量

mysqldump -uroot -p123456 -S /多实例mysql.sock --events --single-transaction -A -B -F --master-data= | gzip >/备份文件名

--master-data=2

--master-data=1

数据备份增备

增量备份是利用mysql的binlog日志记录的sql语句完成增量备份的,当执行一次完全备份后,记录当前binlog日志的位置,做增量备份时,只需要从全备记录的binlog日志位置开始把往后记录的所有sql语句导入mysql即可

增量备份就是要开启binlog日志,然后结合全备做增备

vim my.cnf           #修改主库的配置文件  
[mysqld]            #参数要放在my.cnf中的[mysqld]模块下,否则会出错。
log-bin = /data//mysql-bin #binlog日志的位置

mysqlbinlog命令 查看binlog日志内容

#按位置查找
mysqlbinlog mysql-bin. --start-position= --stop-position= -r /root/321
查看binlog日志 从12099位置开始看   到12299位置结尾的内容不被包含 把12099到12299的内容导入到文件321里 -r等于重定向>
可以只设置--start-position=12099 既从12099位置一直到结尾 也可以只设置--stop-position=12299 既从开头到12299结束
#按时间查找
mysqlbinlog mysql-bin.000001 --start-datetime="2018-08-06 6:18:35" --stop-datetime="2018-08-06 6:43:21"
#和位置一样只是查询方法不同 不建议用,不准确
mysqlbinlog mysql-bin. -d 库名   #截取指定库binlog日志

如果企业中不小心drop或update掉了数据内容,可以选择停库,全备恢复,把binlog日志的内容用mysqlbinlog导出来找到里面的drop或update的sql语句删掉然后恢复增量备份即可

如果是update破坏数据 会更麻烦一些,

全备和增倍的频率

每天00:00做全备

优点:恢复时间短,维护成本低      缺点:占用空间和占用资源多.

每周一00:00做一次全备

优点:占用空间小,占用系统资源少,无需锁表,用户体验好一些        缺点:维护成本高,恢复麻烦,时间长

企业是怎样做备份的

企业场景全量和增量的频率是怎么做的呢?。
1)中小公司,全量一般是每天一次, 业务流量低谷执行全备, 备份时会锁表。。
2)单台数据库,如何增量。用rsync (配合定时任务频率大点或者inotify, 主从复制)把所有binlog 备份到远程服务器,尽量做主从复制。。
增量备份的例子: rsync -avz /data/3306/ mysql-bin.000* rsync_ backup@ 10.0.0. l8::backup --password-file=/etc/rsync.password.
3)大公司周备,每周六00点一次全量,下周日-下周六00点前都是增量。
优点:节省备份时间,减小备份压力。缺点:增量的binlog文件副本太多,还原会很麻烦。
4)一主五从,会有一个从库做备份,延迟同步。。

增量回复的核心思想

增量恢复的核心思想:
1、流程制度控制。如果不做,面临服务和数据二选一

2、延迟备份来解决。信息做监控,黑名单, 白名单机制。

3、业务需求容忍度,可量化的目标,根据需求选择停库或锁表或者容忍丢失部分数据

恢复备份案例

全备之前,启动bin-log功能可以看到bin-log日志文件mysql-bin.000001

0:00做全备,定时任务后刷新binlog,使其用新文件名记录日志
0:00-10:00 全备后的新数据记录到新binlog日志文件里 mysql-bin.000002
10:00 出现错误
10:10收到消息恢复mysql

恢复步骤

锁库
首先恢复全备
然后在binlog里找出错误原因 再恢复到错之前的binlog增量
10:00-10:10由于已经错误了 所以没有写入的数据

mysql之备份与恢复的更多相关文章

  1. MySQL的备份与恢复

    Linux下的mysql的备份与恢复 备份: 比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump 命令格式如下: [root@linuxsir01 root]# ...

  2. MySQL增量备份与恢复实例【转】

    小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份.增量备份的原理就是使用了mysql的binlog日志.本次操作的 ...

  3. Mysql 数据备份与恢复,用户创建,授权

    Mysql 数据备份与恢复,用户创建,授权 1. Mysqldump >outfile.sql 2. Mysql –uxxx –pxxx < backfile.sql 3. Create  ...

  4. 2020重新出发,MySql基础,MySql数据库备份与恢复

    @ 目录 MySQL数据库备份与恢复 数据库为什么需要备份 MySQL备份类型 MySQL热备份及恢复 逻辑备份 mysqldump SELECT INTO-OUTFILE mydumper 裸文件备 ...

  5. MySQL的备份与恢复理解与备份策略

    MySQL的备份主要分为逻辑备份和物理备份 逻辑备份 在MySQL中逻辑备份的最大优点是对各种存储引擎都可以用同样的方法来备份.而物理备份则不同,不同的存储引擎有着不同的备份方法.Mysql中的逻辑备 ...

  6. MySQL的备份与恢复具体解释

    MySQL数据备份 在mySQL里面,有逻辑备份和物理备份.逻辑备份最大长处是对于各种存储引擎,都能够使用相同的方法来备份. 而物理备份则不同.不同的存储引擎有着不同的备份方法. 逻辑备份与恢复 备份 ...

  7. MYSQL的备份与恢复--逻辑备份mysqldump

    目录 0.备份与恢复概述 1.逻辑备份-完整备份与恢复 2.逻辑备份-增量备份与恢复 (1)环境准备 (2)恢复全量数据 (3)恢复增量备份 3.新来的开发妹子删了库! (1)模拟环境准备 (2)全备 ...

  8. MYSQL的备份与恢复--物理备份xrabackup

    目录 1.数据库完整备份与恢复 (1)环境准备 (2)完全备份恢复流程 2.数据库增量备份与恢复 (1)增量和差异概述 (2)增量备份和恢复 3.数据库差异备份与恢复 4.简单命令进行物理备份 5.实 ...

  9. Mysql—数据备份与恢复

    数据备份 # 备份单个数据库 [root@localhost ~]# mysqldump -h主机名 -u用户名 -p密码 数据库名字 > 备份的数据库名字.sql [root@localhos ...

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

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

随机推荐

  1. sql 批量触发器

    SET QUOTED_IDENTIFIER ON SET ANSI_NULLS ON GO ALTER TRIGGER [dbo].[tr_insert_update_delete_sscode] O ...

  2. 读书笔记《Oracle从入门到精通》

    目录 一.SQL基础 1.SQL种类 2.常用数据类型 3.DDL 4.约束 5.DML语句 二.SELECT语句 1.结果集'*'与指定列 2.拼接符 || 3.substr函数 4.instr函数 ...

  3. 2、screen工具

    1.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远 ...

  4. (备忘)Java数据类型中String、Integer、int相互间的转换

    1.Integer转换成int的方法 Integer i; int k = i.intValue();即Integer.intValue(); 2.int转换成Integer int i; Integ ...

  5. 【转】Linux设置和查看环境变量的方法

    转: http://www.jb51.net/LINUXjishu/77524.html 1. 显示环境变量HOME $ echo $HOME /home/redbooks 2. 设置一个新的环境变量 ...

  6. 树莓派3B+一个外接显示器影响有线网卡无法启动的BUG

    在给一块用了不到一年的树莓派3B+重装官方系统时发现了一件诡异的事情,树莓派的有线网络会在重启后自动停掉,只有无线模块正常.即右上角的网络图标显示一个红叉叉. 在多次重装未果后,发现一个命令可以让有线 ...

  7. STM32 ARM调试问题总结

    文章转载自:http://xfjane.spaces.eepw.com.cn/articles/article/item/77908 基于ADS的ARM调试有关问题总结 1.  在添加文件的过程中你可 ...

  8. 身份证js正则

    /* 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位 ...

  9. Resource ResourceLoader

    DefaultResourceLoader   -- > ResourceLoader 方法 ResourceLoader getResource(String location); Class ...

  10. 集成 jpush

    给 iOS 应用添加推送功能是一件比较麻烦的事情,本篇文章收集了集成 jpush-react-native 的常见问题,目的是为了帮助用户更好地排查问题 1. 收不到推送 确保是在真机上测试,而不是在 ...