MySQL 数据库的备份与恢复
一、MySQL 常见的备份方式
1. 直接拷贝数据库文件(物理拷贝)
2. 使用 mysqldump 工具备份
3. 使用 mysqlhotcopy 工具备份
4. 使用 mysql 的主从同步复制,实现数据实时同步备份
二、MySQL 物理数据文件结构介绍
1. 日志文件
- 错误日志 err log
- 二进制日志 binary log
- 更新日志 update log
- 查询日志 query log
- 慢查询日志 slow query log
- innodb 的 redo 日志
2. 数据文件
>>>对于 myisam 来说:
- 表结构信息:.frm
- 数据信息:.myd
- 数据索引信息;.myi
>>>对于 Innodb 来说:
- 独享表空间:.ibd
- 共享表空间:.ibdata
3. 系统文件
- 配置文件:my.cnf
- 进程文件:xxx.pid
- socket文件:xxx.sock
4. replication 文件
- master.info:存储在 slave 端目录下,关于 master 和 slave 相关信息
- relay log:存储 I/O 进程从 master 读取的 bin-log 信息,然后由 slave 端的 SQL 线程从该 binary log 中读取解析过的日志信息,转化成 slave 所能执行的 query 语句
- index:则是存放 binary log 的路径,也就是目录文件
三、使用 mysqldump 备份与恢复
1. 备份原理
mysqldump 备份原理比较简单,先查出需要备份的表结构,在文本文件中生成一个 create 语句;然后将表中的所有数据记录转换成一条 insert 语句;通过这些语句就能够创建表并插入数据。
2. 备份一个数据库
基本语法:
>>> mysqldump -u username -p dbname table1 table2 ... > BackupName.sql
实例说明:
mysqldump -u root -p test person > /tmp/backup.sql
3. 备份多个数据库
基本语法:
mysqldump -u username -p --databases dbname2 dbname2 > BackupName.sql
实例说明:
mysqldump -u root -p --databases test mysql > /tmp/backup.sql
4. 备份所有数据库
基本语法:
mysqldump -u username -p -all-databases > BackupName.sql
实例说明:
mysqldump -u -root -p -all-databases > /tmp/all.sql
5. 数据恢复
基本语法:
mysql -u root -p [dbname] < backup.sql
实例说明:
mysql -u root -p < /tmp/backup.sql
四、直接复制数据库目录
MySQL 有一种非常简单的备份方法,就是将 MySQL 中的数据库文件直接复制出来。这是最简单,速度最快的方法。不过在此之前,要先将服务器停止,这样才可以保证在复制期间数据库的数据不会发生变化。如果在复制数据库的过程中还有数据写入,就会造成数据不一致。这种情况在开发环境可以,但是在生产环境中很难允许备份服务器。
注意:这种方法不适用于 InnoDB 存储引擎的表,而对于 MyISAM 存储引擎的表很方便。同时,还原时 MySQL 的版本最好相同。
五、使用 mysqlhotcopy 快速备份
1. mysqlhotcopy 安装
2. 语法和常用选项
3. 实例备份
4. 实例恢复
六、备份策略
待续。
---------- 本文结束 ----------
MySQL 数据库的备份与恢复的更多相关文章
- Linux下MySQL数据库的备份与恢复
Linux下MySQL数据库的备份与恢复 作者:Grey 原文地址: Github 语雀 博客园 基于版本 MySQL5.7 Deepin Linux 15.11 xtrabackup-2.4.18 ...
- mysqldump使用方法(MySQL数据库的备份与恢复)
#mysqldump --help 1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbn ...
- mysql数据库的备份与恢复
假定我们的目标数据库是 test, 表是 user.假定mysql的用户名和密码均为 root. 备份与恢复所用的程序分别是mysql软件包提供的 mysqldump 命令和 mysql 命令.思想很 ...
- MySQL数据库的备份与恢复命令
1.数据库导出SQL脚本 启动MySQL服务器 输入:mysqldump -u root -p 数据库名>生成脚本文件路径 输入登录密码,回车键 例如: $ mysql.server star ...
- 中小型mysql数据库的备份与恢复
#转载请联系 备份到桌面 cd /home/chichung/Desktop # 切换到桌面 mysqldump -u root -p db_jingdong>jd.sql # 重定向写入 jd ...
- mysql数据库数据备份与恢复
备份数据: C:\Users\Administrator>mysqldump -uroot --password -v test01 test02 >e:\temp\\a3.sql Ent ...
- *CentOS下简单的MySQL数据库操作
1.登录成功之后退出的话,直接输入quit或者exit即可.
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐) vs lang ...
- CentOS6.5下简单的MySQL数据库操作
1.登录成功之后退出的话,直接输入quit或者exit即可.
随机推荐
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 使用注解匹配Spring Aop切点表达式
Spring中的类基本都会标注解,所以使用注解匹配切点可以满足绝大部分需求 主要使用@within()/@target @annotaton() @args()等... 匹配@Service类中的所有 ...
- BVT & BAT (版本验证测试和版本验收测试)
BVT & BAT 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.BVT: (Build Verification Test ) BVT的概念: BVT(版本验证测试)是在所有开发 ...
- Android笔记——Bundle类的作用
Bundle类用作携带数据,它类似于Map,用于存放key-value键值对形式的值.相对于Map,它提供了各种常用类型的putXxx()/getXxx()方法,如:putString()/getSt ...
- Java总结篇系列:Java泛型
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(Stri ...
- 【兼容写法】HttpServerUtility.Execute 在等待异步操作完成时被阻止。关键词:MVC,分部视图,异步
异常处理汇总-后端系列 http://www.cnblogs.com/dunitian/p/4523006.html MVC6之前的版本,对分部视图的异步支持不是很好 问题: 视图里面有分布视图:@{ ...
- SQL Server中TOP子句可能导致的问题以及解决办法
简介 在SQL Server中,针对复杂查询使用TOP子句可能会出现对性能的影响,这种影响可能是好的影响,也可能是坏的影响,针对不同的情况有不同的可能性. 关系数据库中SQL语句只 ...
- Ubuntu 安装 CLI 并运行 ASP.NET Core 1.0
Ubuntu 下载地址:http://www.ubuntu.org.cn/download/desktop 注:目前 CLI 的安装命令只支持 Ubuntu 14.04,暂不支持 Ubuntu 14. ...
- VMware-存储断网之后无法添加vmx到清单
由于发生了单点故障,笔者最近处理了一个case,其中一些经验非常希望和大家分享. 问题原因: Technorati 标签: VMware,虚拟机,vmx,锁定,干货 某环境使用VMware的ESXi5 ...
- zeroclipboard浏览器复制插件使用记录
一个简单例子: <html> <body> <button id="copy-button" data-clipboard-text="Co ...