MySQL 备份与恢复

目录

4.1 MySQL数据库备份概述

4.1.1 数据备份的重要性

4.1.2 数据库备份类型

1.从物理与逻辑的角度分类

2.从数据库的备份策略角度分类

4.1.3 常见的备份方法

1.物理冷备份

2.专用备份工具 mysqldump 或 mysqlhotcopy

3.通过启用二进制日志进行增量备份

4.通过第三方工具备份

4.2 数据库完全备份操作

4.2.1 物理冷备份与恢复

1.备份数据库

2.恢复数据库

4.2.2 mysqldump 备份与恢复

1.备份数据库

        2.查看备份文件

        3.恢复数据库

4.3 MySQL 增量备份与恢复.

4.3.1 MySQL 增量备份概述

1.增量备份的特点        

2.MySQL 二进制日志对备份的意义

4.3.2 MySQL 增量恢复

        格式 1:从日志开头截止到某个时间点的恢复。​编辑

        格式2:从某个时间点到日志结尾的恢复。​编辑

        格式 3:从某个时间点到某个时间点的恢复​编辑

4.3.3 MySQL 企业备份案例

1.一般恢复

(1)添加数据库、表,录入信息

(2)先进行一次完全备份

(3)继续录入新的数据并进行增量备份

2.基于位置恢复

3. 基于时间点恢复

4.4制定企业备份策略的思路


4.1 MySQL数据库备份概述

        备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等。之前已经学习过如何安装 MySQL,本小节将从生产运维的角度了解备份恢复的分类与方法。

4.1.1 数据备份的重要性

        在企业中数据的价值至关重要,数据保障了企业业务的正常运行。因此,数据的安全性及数据的可靠性是运维的重中之重,任何数据的丢失都可能对企业产生严重的后果。通常情况下造成数据丢失的原因有如下几种:

  • 程序错误。
  • 人为操作错误。
  • 运算错误。
  • 磁盘故障。
  • 灾难(如火灾、地震)和盗窃。

4.1.2 数据库备份类型

1.从物理与逻辑的角度分类

        数据库备份可以分为物理备份和逻辑备份。物理备份是对数据库操作系统的物理文件如数据文件、日志文件等)的备份。这种类型的备份适用于在出现问题时需要快速恢复的大型重要数据库。

        物理备份又可以分为冷备份(脱机备份)、热备份(联机备份)和温备份。

  1. 冷备份:在数据库关闭状态下进行备份操作。
  2. 热备份:在数据库处于运行状态时进行备份操作,该备份方法依赖数据库的日志文件。
  3. 温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作。逻辑备份是对数据库逻辑组件(如表等数据库对象)的备份,表示为逻辑数据库结构(CREATE DATABASE,CREATE TABLE 语句)和内容(INSERT语句或分隔文本文件)的信息。这种类型的备份适用于可以编辑数据值或表结构较小的数据量,或者在不同的机器体系结构上重新创建数据。

2.从数据库的备份策略角度分类

        从数据库的备份策略角度,数据库的备份可分为完全备份、差异备份和增量备份。

        完全备份:每次对数据进行完整的备份,即对整个数据库、数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,是差异备份与增量备份的基础。完全备份的备份与恢复操作都非常简单方便,但是数据存在大量的重复,并且会占用大量的磁盘空间,备份的时间也很长。
        差异备份:备份那些自从上次完全备份之后被修改过的所有文件,备份的时间节点是从上次完整备份起,备份数据量会越来越大。恢复数据时,只需恢复上次的完全备份与最近的-次差异备份。
        增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份。以上次完整备份或上次增量备份的时间为时间点,仅备份这之间的数据变化,因而备份的数据量小,占用空间小,备份速度快。但恢复时,需要从上一次的完整备份开始到最后一次增量备份之间的所有增量依次恢复,如中间某次的备份数据损坏,将导致数据的丢失。

4.1.3 常见的备份方法

        MVSQL数据库的备份可以采用很多种方式,如直接打包数据库文件(物理冷备份)、专用备份工具(mysqldump)、二进制日志增量备份、第三方工具备份等。

1.物理冷备份

        物理冷备份时需要在数据库处于关闭状态下,能够较好地保证数据库的完整性。物理冷备份一般用于非核心业务,这类业务一般都允许中断,物理冷备份的特点就是速度快,恢复时也是最为简单的。通常通过直接打包数据库文件夹(本章中的数据库文件夹位于/usr/local/mysql/data)来实现备份。

2.专用备份工具 mysqldump 或 mysqlhotcopy

        mysqldump 程序和 mysqlhotcopy 都可以做备份。mysqldump 是客户端常用逻辑备份程序,能够产生一组被执行以后再现原始数据库对象定义和表数据的 SQL语句。它可以转储一个到多个 MySQL 数据库,对其进行备份或传输到远程 SQL服务器。mysqldump 更为通用,因为它可以备份各种表。mysqlhotcopy 仅适用于某些存储引擎。
        mysqlhotcopy 是由 Tim Bunce 最初编写和贡献的 Per 脚本。mysqlhotcopy 仅用于备份 MyISAM 和 ARCHIVE 表。它只能运行在 UNIX 或 Linux上。因为使用范围很小,因此本文中不做详细介绍,如果同学们有兴趣可以在课下研究。

3.通过启用二进制日志进行增量备份

        MySQL支持增量备份,进行增量备份时必须启用二进制日志。二进制日志文件为用户提供复制,对执行备份点后进行的数据库更改所需的信息进行恢复。如果进行增量备份(包含自上次完全备份或增量备份以来发生的数据修改),需要刷新二进制日志。

4.通过第三方工具备份

        Percona XtraBackup 是一个免费的 MySQL 热备份软件,支持在线热备份 Innodb 和XtraDB,也可以支持 MVSQL 表备份,不过 MVISAM 表的备份要在表锁的情况下进行。本节对于 Percona XtraBackupr 的叙述是基于 2.4 版本的。

  • xtrabackup:是一个编译了的二进制文件,只能备份Innodb/Xtradb 数据文件
  • innodbackupex:是一个封装了xtrabackup 的 Per 脚本,除了可以备份Innodb/xtradb 之外,还可以备份 MySIAM。xbstream:是一个新组件,能够允许将文件格式转成
  • xbstream 格式或从 xbstream格式转到文件格式。

        xtrabackup 工具可以单独使用,但推荐使用 innobackupex 来进行备份,这是因为innobackupex本身就已经包含了 xtrabackup 的所有功能。

        xtrabackup 是基于 Innodb 的灾难恢复功能进行设计的,备份工具复制 Innodb 的数据文件。但是,由于不锁表,这样复制出来的数据将不一致。Innodb 维护了一个重做日志,包含 Innodb 数据的所有改动情况。在 xtrabackup 备份 Innodb 数据的同时,xtrabackup 还有另外一个线程用来监控重做日志,一但日志发生变化,就把发生变化的日志数据复制走。这样就可以利用重做日志做灾难恢复了。

4.2 数据库完全备份操作

4.2.1 物理冷备份与恢复

        物理冷备份一般用 tar 命令直接打包数据库文件夹,而在进行备份之前需要使用'systemctl stop mysqld”命令关闭 mysqld 服务。

1.备份数据库

        创建一个/backup 目录作为备份数据存储路径,使用tar 创建备份文件。整个数据库文件夹备份属于完全备份。

2.恢复数据库

        执行下面操作将数据库文件/usr/local/mysql/data/转移至 bak 目录下,模拟故障</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值