以下都以在linux操作系统上的mysql为例

mysqldump备份

mysqldump实际就是将数据库中的数据转化为建库、建表和插入记录的sql语句

1.备份一个数据库 [或其中几个表],不指定表表示备份整个数据库,指定表表示备份指定的表

在系统命令下:mysqldump -u用户 -p密码 库 [表1  表2  表3   …]  > /opt/backname.sql

[root@oldboy opt]# mysqldump -uroot -poldboy oldboy student >/opt/studentbak.sql

备份一个库或其中的表时,备份语句中不包含建库语句,因此还原时需要指定数据库

如果备份整个库时加上-B参数,备份语句中会包含建库和切库语句如mysqldump -uroot -poldboy -B oldboy,-B参数不适用于备份表

2.备份多个数据库

在系统命令下:mysqldump -u用户 -p密码 --databases 库1  库2  库3  … > /opt/backname.sql

mysqldump -u用户 -p密码 --B 库1  库2  库3  … > /opt/backname.sql

[root@oldboy opt]# mysqldump -uroot -poldboy --databases oldboy oldboy_utf8 >/opt/multidbback.sql

3.备份所有数据库

在系统命令下:mysqldump -u用户 -p密码 --all-databases > /opt/backname.sql

[root@oldboy opt]# mysqldump -uroot -poldboy --all-databases >/opt/alldbback.sql

参考视频 http://edu.51cto.com/course/808.html

备份时可同时对备份的结果通过gzip压缩

mysqldump -uroot -poldboy oldboy student | gzip > /opt/studentbak.sql

mysql备份时常用参数

备份时加--compact参数,会在备份结果中省去一些无用信息,简化输出 ,一般在调试时使用,生产上不使用

[root@oldboy opt]# mysqldump -uroot -poldboy --compact oldboy > /opt/dbak.sql

备份时加-d参数,只备份表结构,即--no-data

[root@oldboy opt]# mysqldump -uroot -poldboy -d oldboy student > /opt/dbak.sql

备份时加-t参数,只备份数据

[root@oldboy opt]# mysqldump -uroot -poldboy -t oldboy student > /opt/tbak.sql

备份时加-B参数,备份多个数据库,即--databases

[root@oldboy opt]# mysqldump -uroot -poldboy -B --events |gzip > /opt/Abak.sql

备份时加-A参数,备份所有数据库,即--all-databases

[root@oldboy opt]# mysqldump -uroot -poldboy -A -B --events |gzip > /opt/Abak.sql

备份时加-F参数,切割bin log,即--flush-logs

[root@oldboy opt]# mysqldump -uroot -poldboy -B -F oldboy|gzip > /opt/Abak.sql

备份时加--maste-date=1(或2,1指定logbin日志及位置时不注释,2注释)参数,会在备份结果中指出从哪个binlog开始恢复

[root@oldboy opt]# mysqldump -uroot -poldboy --compact --master-data=1 oldboy > /opt/masterbak.sql

备份时加-x参数,锁表

备份时加-l参数,只读锁表

备份时加--events参数,备份数据库事件

备份时加--single-transaction参数适合innoDB事务数据库备份,原理是将本次会话的隔离级别设定为repeatable read,以确保本次会话dump时,不会看到其他会话已经提交了的数据

mysql备份还原

1.还原一个数据库,需指定数据库(如果备份时加了-B参数,则不需要指定数据库)

在linux系统下:mysql  -u用户 -p密码 库 < /opt/backname.sql

[root@oldboy opt]# mysql -uroot -poldboy oldboy  < /opt/testback.sql

2.还原多个数据库:mysql  -u用户 -p密码 < /opt/backname.sql

mysql -uroot -poldboy < /opt/twodbback.sql

source还原

在数据库下:source 备份路径及文件名

Mysql>source /opt/oldboyB.sql

如果备份文件中不包含建库语句,则需先通过use切换到对应的库,再source还原

生产场景备份参数使用

myisam:mysqldump -uroot -poldboy -A -B -x --master-data=1 --events|gzip > /opt/all.sql.gz(混合引擎备份,以myisam为主)

innodb:mysqldump -uroot -poldboy -A -B --master-data=1 --single-transaction --events|gzip > /opt/all.sql.gz

5.5.35以前默认是myisam引擎,5.5.35以后默认是innodb,现在推荐使用innodb方式备份

mysql的mysqldump备份合何时派上用场

1.迁移或者升级数据库时

2.增加从库的时候

3.人为的DDL、DML误操作语句,主库和从库都会误操作,因此需要备份

4.跨机房灾备,需要备份到异地

(因为硬件或特殊异常情况导致主库和从库宕机,主从可以互相切换,无需备份)

mysql增量恢复的必备条件:开启binlog日志,存在一份全备和全备之后到出现问题时间点的所有增量binlog

通过将修改变量sql_log_bin为OFF,可临时不记录binlog,在用binlog进行恢复时不将执行的操作记录到binlog

全量备份:备份数据库中所有的数据

增量备份:上次全量备份之后、到下次备份时间点之间更新的数据。对于mysql来说,binlog就是增量数据。

一般由于人为或者程序逻辑的方式在数据库执行了误操作

按天备份:

每天的24:00:00全量备份,每天的数据增量备份即binlog

优点:恢复时间短,维护成本低

缺点:占用空间大,占用资源多,经常锁表影响用户体验

按周备份

每周日24:00:00全量备份,每天的数据增量备份binlog

缺点:占用空间小,占用资源少,无需锁表,用户体验好

缺点:恢复时间长,维护麻烦,成本高

企业场景:

1.中小公司,全量一般是每天一次,在业务流量低估时执行全备,备份时锁会表

2.单台数据库,用rsync(配合定时任务,或者inotify,主从辅助),把所有binog备份到远程服务器,尽量做主从复制

3.大公司周备,本周到下次周备之前都是增量备份,节省备份时间,减小备份压力,但是增量binlog文件副本太多,还原麻烦

4.一般一主多从,会有一个从库做备份,延迟同步

转载于:https://www.cnblogs.com/Forever77/p/10049718.html

mysql备份与还原-mysqldump备份、mysql与source还原相关推荐

  1. mysql ibdata1 解析_详解MySQL表空间以及ibdata1文件过大问题

    ibdata1文件过大 原因分析 ibdata1是一个用来构建innodb系统表空间的文件,关于系统表空间详细介绍参考MySQL官网文档 上面是一个数据库的ibdata1文件,达到了780多G,而且还 ...

  2. dump mysql_mysql/mariadb知识点总结(28):mysql备份工具之mysqldump

    这篇文章包含了很多知识点,而这些知识点在之前的文章中都已经总结过,所以,如果阅读时遇到障碍请参考之前的文章. mysql系列文章列表直达链接:mysql知识点总结 如果你只是想找一些mysqldump ...

  3. mysql dump 查看器_mysql备份之mysqldump工具

    参考文档: 利用mysqldump+二进制日志实现备份恢复数据库:http://www.178linux.com/60616 mysql进阶篇(三种备份方法总结:lvm, mysqldump, xtr ...

  4. mysql dba系统学习(16)mysql的mysqldump备份 mysql dba系统学习(17)mysql的备份和恢复的完整实践

    mysql数据库的备份恢复 mysqldump备份数据库 -B, --databases     Dump several databases. Note the difference in usag ...

  5. Java中使用mysqldump实现mysql数据库备份并将sql文件打成zip压缩包

    场景 在Java代码中调用mysqldump命令实现对指定的mysql数据库和指定的表导出为sql文件. 并将sql文件进行压缩成zip存储备份. mysqldump 简介 mysqldump 是 M ...

  6. mysql 恢复数据库 source_mysql数据库备份及恢复命令 mysqldump,source的用法 | 很文博客...

    mysql数据库备份及恢复命令 mysqldump,source的用法,需要的朋友可以参考下. 还原一个数据库:mysql -h localhost -u root -p123456 www d:\w ...

  7. 远程工具连接mysql备份_MySQL远程连接 备份还原

    连接远程数据库 mysql -h 数据库地址 -P 端口号 -u 用户名 -p mysql -h 127.0.0.1 -P 3307 -uroot -p 备份数据库, 热备份 mysqldump -h ...

  8. php mysql 备份还原_PHP执行Mysql数据库的备份和还原

    使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先查出需要备份的表的 ...

  9. mysql 5.6.17 备份还原_mysql 备份和恢复

    7. 备份和恢复 本章主要会介绍: 1.备份的类型:逻辑备份,物理备份,全备和增量4种 2.创建备份的方法 3.还原方法,包括还原到时间点 4.备份计划,压缩和加密 5.表维护,恢复损坏的表 7.1备 ...

最新文章

  1. 【枚举】【SPFA】Urozero Autumn Training Camp 2016 Day 5: NWERC-2016 Problem I. Iron and Coal
  2. 42 Ansible配置
  3. ipad2“新瓶装老酒” 苹果创新乏力?
  4. LBS突围:从微信到微博
  5. 什么是JVM内存模型
  6. 怎么修改ipv4服务器,如何修改ipv4 wins 服务器地址
  7. path.join 和 path.resolve的区别
  8. tesseract4.0.0 中文语言包_一份TensorFlow2.0中文教程
  9. Redis连接池Lettuce Jedis 区别
  10. 【操作系统/OS笔记15】死锁的系统模型,死锁的处理办法,银行家算法与死锁检验算法
  11. echarts x轴文字个数太多_echartsX轴文本数据太长溢出问题
  12. 刷机-升级到3.90M33-3的方法
  13. PS 2020版本放大工具无法鼠标左右拖动精细放大的解决方案
  14. java利用itext编辑pdf
  15. 基于微信视频直播如何做收费直播(微信公众号直播)?
  16. zoj 1582 Careless Tony(水!)
  17. jbod ugood 磁盘驱动状态_Win10扫描修复磁盘驱动器错误全攻略
  18. js 中断函数执行_javascript 终止函数执行操作
  19. 【设计模式】-创造篇-单例
  20. 基于Android的备忘录软件,基于Android的手机备忘录软件设计

热门文章

  1. boost::graph::distributed::distributed_queue用法的测试程序
  2. boost::describe模块实现pp_call的测试程序
  3. GDCM:目录条目的测试程序
  4. boost:验证Boost概念检查的class_requires 库应该在预期的时间内捕获错误
  5. VTK:可视化之WindowSize
  6. VTK:PolyData之DataSetSurfaceFilter
  7. VTK:图片之RGBToHSV
  8. OpenCV gapi模块API的引用(附完整代码)
  9. OpenCV检测子像素中的角点位置
  10. C语言求在算术级数中找到缺少的数字(附完整源码)