MySQL 数据库的备份与恢复

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 一、MySQL 常见的备份方式 1. 直接拷贝数据库文件(物理拷贝) 2. 使用 mysqldump 工具备份 3. 使用 mysqlhotcopy 工具备份 4. 使用 mysql 的主从同步复制,实现数据实时同步备份   二、MySQL 物理数据文件结构介绍 1.

一、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. 实例恢复

 

六、备份策略

待续。

 

---------- 本文结束 ----------

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
35 2
|
2天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
10 0
|
7天前
|
SQL 关系型数据库 MySQL
MySQL环境搭建——“MySQL数据库”
MySQL环境搭建——“MySQL数据库”
|
7天前
|
SQL NoSQL 关系型数据库
初识MySQL数据库——“MySQL数据库”
初识MySQL数据库——“MySQL数据库”
|
9天前
|
关系型数据库 MySQL 数据库
数据库基础(mysql)
数据库基础(mysql)
|
9天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
34 3
|
10天前
|
存储 关系型数据库 MySQL
【后端面经】【数据库与MySQL】为什么MySQL用B+树而不用B树?-02
【4月更文挑战第11天】数据库索引使用规则:`AND`用`OR`不用,正用反不用,范围中断。索引带来空间和内存代价,包括额外磁盘空间、内存占用和数据修改时的维护成本。面试中可能涉及B+树、聚簇索引、覆盖索引等知识点。MySQL采用B+树,因其利于范围查询和内存效率。数据库不使用索引可能因`!=`、`LIKE`、字段区分度低、特殊表达式或全表扫描更快。索引与NULL值处理在不同数据库中有差异,MySQL允许NULL在索引中的使用。
16 3
|
12天前
|
关系型数据库 MySQL 数据库连接
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
35 11
|
15天前
|
数据库
使用Navicat Premium 12进行数据库定期自动备份(定时任务)--图文详解
使用Navicat Premium 12进行数据库定期自动备份(定时任务)--图文详解
19 0
|
15天前
|
SQL 存储 关系型数据库
mysql数据库备份与恢复
mysql数据库备份与恢复