MySQL冷备份及恢复
在《MySQL备份类型》一节介绍过冷备份,冷备份可以称为 Offline Backup(离线备份)。这种备份最为简单,一般只需要复制相关的数据库物理文件到另外的位置即可。
由于 MySQL 服务器中的数据文件是基于磁盘的文本文件,所以最简单、最直接的备份操作,就是将数据文件直接复制出来。但是由于 MySQL 服务器的数据文件在运行时期,总是处于打开和使用状态,因此备份文件不一定有效。为了解决该问题,在复制数据文件时,需要先停止 MySQL 服务器。
这样做的好处是可以保证数据库的完整性,备份过程简单且恢复速度相对快一些,但是关闭数据库会影响现有业务的进行。服务器停止运行期间,用户不能再继续访问网站。例如,一些电商网站店庆促销时,如果为了备份要停库,那么带来的代价损失将不可估量。所以冷备一般用于不是很重要、非核心的业务上面。
冷备份的优点如下:
冷备份的缺点如下:
数据库的物理文件主要由数据库的数据文件、日志文件以及配置文件等组成。MySQL 系统有一些共有的日志文件和系统表的数据文件。每种存储引擎的物理文件也不一样,不了解的可阅读学习《不同存储引擎的数据表在文件系统里是如何表示的》一节。
冷备的备份与恢复过程也很简单。仅仅需要如下几步:
1)为了保证所备份数据的完整性,在停止 MySQL 数据库服务器之前,需要先执行 FLUSH TABLES 语句将所有数据写入到数据文件的文本文件里。
2)停掉 MySQL 服务,命令(2种方式)如下:
3)备份过程就是复制整个数据目录到远程备份机或者本地磁盘上,Linux 和 Windows 命令如下:
备份到本次磁盘也可以手动复制上述相关目录里的数据文件。
4)恢复过程就更简单了,仅仅需要把已备份的数据目录替换原有的目录就可以了,最后重启 MySQL 服务。
由于 MySQL 服务器中的数据文件是基于磁盘的文本文件,所以最简单、最直接的备份操作,就是将数据文件直接复制出来。但是由于 MySQL 服务器的数据文件在运行时期,总是处于打开和使用状态,因此备份文件不一定有效。为了解决该问题,在复制数据文件时,需要先停止 MySQL 服务器。
这样做的好处是可以保证数据库的完整性,备份过程简单且恢复速度相对快一些,但是关闭数据库会影响现有业务的进行。服务器停止运行期间,用户不能再继续访问网站。例如,一些电商网站店庆促销时,如果为了备份要停库,那么带来的代价损失将不可估量。所以冷备一般用于不是很重要、非核心的业务上面。
冷备份的优点如下:
- 备份简单、快速,只要复制相关文件即可。
- 备份文件易于在不同操作系统,不同 MySQL 版本上进行恢复。
- 恢复相当简单,只需要把文件恢复到指定位置即可。
- 恢复速度快,不需要执行任何 SQL 语句,也不需要重建索引。
- 低度维护,高度安全。
冷备份的缺点如下:
- 备份过程中,数据库不能做其它的工作,且必须是关闭状态。
- InnoDB 存储引擎冷备的文件通常比逻辑文件大很多,因为表空间存放着很多其它的数据,如 undo 段,插入缓冲等信息。
- 若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
- 冷备也不总是可以轻易的跨平台。操作系统、MySQL 的版本、文件大小写敏感和浮点数格式都会成为问题。
数据库的物理文件主要由数据库的数据文件、日志文件以及配置文件等组成。MySQL 系统有一些共有的日志文件和系统表的数据文件。每种存储引擎的物理文件也不一样,不了解的可阅读学习《不同存储引擎的数据表在文件系统里是如何表示的》一节。
冷备的备份与恢复过程也很简单。仅仅需要如下几步:
1)为了保证所备份数据的完整性,在停止 MySQL 数据库服务器之前,需要先执行 FLUSH TABLES 语句将所有数据写入到数据文件的文本文件里。
2)停掉 MySQL 服务,命令(2种方式)如下:
- mysqladmin -uroot -proot shutdown
- NET START mysql
3)备份过程就是复制整个数据目录到远程备份机或者本地磁盘上,Linux 和 Windows 命令如下:
- Scp -r /data/mysql/ root@远程备份机ip:/新的目录
- Copy -r /data/mysql/ 本地新目录
备份到本次磁盘也可以手动复制上述相关目录里的数据文件。
4)恢复过程就更简单了,仅仅需要把已备份的数据目录替换原有的目录就可以了,最后重启 MySQL 服务。
上面我们介绍了如何通过数据文件实现数据备份和恢复。需要注意的是,通过复制数据文件这种方式实现数据恢复时,必须保证两个 MySQL 数据库的主版本号一致。只有两个 MySQL 数据库主版本号相同时,才能保证它们的数据文件类型是相同的。恢复数据是数据库维护中最常用的操作,利用备份文件可以将 MySQL 数据库服务器恢复到备份时的状态,这样就可以将管理员的非常操作和计算机的故障造成的相关损失降到最小。
关于 MySQL 数据库服务器的版本号
第一个数字表示主版本号,例如 MySQL 5.5.21 和 MySQL 5.5.01 这两个版本的主版本号都是 5,所以这两个数据库拥有相同类型的数据文件。所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算