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即可.
随机推荐
- jQuery LigerUI系列:ligerComboBox
1. ligerComboBox参数.方法及事件 1.1 参数 2. ligerComboBox示例 2.1 初始化HTML select控件 <link href="/Scripts ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查
系列目录 文章于2016-12-17日重写 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下. 这讲主要是,制作漂亮的工具栏,虽 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(11)-系统日志和异常的处理①
系列目录 系统需要越来越自动化,我们需要引入日志记录和异常捕获管理员的操作记录需要被记录,看出哪些模块是频繁操作,分析哪些是不必要的功能,哪些是需要被优化的.系统的异常需要被捕获,而不是将系统出错显示 ...
- 设计模式(十):从电影院中认识"迭代器模式"(Iterator Pattern)
上篇博客我们从醋溜土豆丝与清炒苦瓜中认识了“模板方法模式”,那么在今天这篇博客中我们要从电影院中来认识"迭代器模式"(Iterator Pattern).“迭代器模式”顾名思义就是 ...
- js获取屏幕宽高
最近想自己实现一个全屏滚动. 结果一开始就遇到了问题.因为不知道如何获取一个页面屏幕的高度. 网上所有的博客都是复制粘贴. 网页可见区域宽:document.body.clientWidth 网页可见 ...
- LinqToDB 源码分析——前言
记得笔者进入公司的时候接触的第一个ORM框架是Entity Framework.为了Entity Framework也看了不些的英文资料(不是笔者装B哦).正式使用三个月后.笔者对他有一个全面性的认识 ...
- jquery获取dropdownlist的value和text值
1.jquery //获取value值 $("#ddlSubmodel").val(); //获取text值 $("#ddlSubmodel").find(&q ...
- 是时候 UWP 了 !
什么是 UWP? 很多程序员都有一个梦想:希望自己开发的软件能够轻而易举的在所有平台上运行,而不是把同样的需求,用不同的技术.工具重新开发才能够运行在所有平台上.这就是跨平台,很多软件从业者都在为这个 ...
- Servlet3.0的可插拔功能
如果说 3.0 版本新增的注解支持是为了简化 Servlet/ 过滤器 / 监听器的声明,从而使得 web.xml 变为可选配置, 那么新增的可插性 (pluggability) 支持则将 Servl ...
- MySQL时间分组查询
表TESTER 字段:id -- INT date -- TIMESTAMP 1.如何按年.月.日分组查询? select DATE_FORMAT(date,'%Y-%m-%d') time, ...