MySQL备份分类以及mysqldump的使用

Mysql备份

备份的类型

热备份,温备份,冷备份(根据服务器的状态)
  1. 热备份:读和写不受影响(数据库处于运行转态)
  2. 温备份:仅可以执行读操作(数据库处于关闭状态)
  3. 冷备份:离线备份,读写均不可以操作(将所有的数据都写入一个文件上)
物理备份与逻辑备份(从对象来分)
  1. ​ 物理备份:复制数据文件;(备份整个文件,速度相对逻辑备份更快,占用空间大)
  2. ​ 逻辑备份:将数据导出致文本文件中;(备份sql语句,速度较慢,占用空间小)
完全备份、增量备份、差异备份(从数据收集上来区分)
  1. ​ 完全备份:将所有的数据信息都进行一次备份,最完整,但占据内存较多,也比较耗时;
  2. ​ 增量备份:只备份和上次完全备份或增量备份以后变化的数据;
  3. ​ 差异备份:仅备份上次完全备份之后变化的数据;

对于增量备份和差异备份而言在这之前必须要有一次完全备份。

备份策略的例子:周日凌晨完全,一二增量,3差异,周四到周六做差异

备份内容

备份内容包括:数据文件,日志文件(比如事务日志,二进制日志)、存储过程、存储函数、触发器、配置文件,用于实现数据库备份的脚本等等…

备份工具

  1. MySQL自带的备份工具

    mysqldump逻辑备份工具,支持所有引擎,MyISAM引擎是温备份,InnoDB是热备份,备份速度中速,但是还原速度非常慢,但在实现还原的时候,具有很大的操作余地。具有很好的弹性。

    mysqlhotcopy 物理备份工具,但只支持MyISAM引擎,基本上属于冷备的范畴,物理备份,速度比较快。

  2. 文件系统备份工具

    cp 冷备份,支持所有引擎,复制命令,只能实现冷备份物理备份。使用归档工具,cp命令,对其进行备份的,备份速度快,还原速度几乎最快,但是灵活度很低,可以跨系统,但是跨平台能力很差。

    lvm 几乎是热备份,支持所有引擎,基于快照(LVM,ZFS)的物理备份,速度非常快,几乎是热备。只影响数据几秒钟而已。但是创建快照的过程本身就影响到了数据库在线的使用,所以备份速度比较快,恢复速度比较快,没有什么弹性空间,而且LVM的限制:不能对多个逻辑卷同一时间进行备份,所以数据文件和事务日志等各种文件必须放在同一个LVM上。而ZFS则非常好的可以在多逻辑卷之间备份

  3. 其它工具

    ibbackup 商业工具 MyISAM是温备份,InnoDB是热备份 ,备份和还原速度都很快,这个软件它的每服务器授权版本是5000美元。
    xtrabackup 开源工具 MyISAM是温备份,InnoDB是热备份 ,是ibbackup商业工具的替代工具。
    mysqlbackup ORACLE公司也提供了针对企业的备份软件MySQL Enterprise Backup简称:
    mysqlbackup。
    MySQL企业备份工具执行在线“热备“,无阻塞的MySQL数据库备份。全备份可以在所有InnoDB数据库上执行,而无需中断MySQL查询或更新。此外,支持增量备份,只备份自上次备份后有变化的数据。另外部分备份,支持特定的表或表空间按需要进行备份。

备份策略

  1. 直接拷贝数据库文件

    用此方式必须关闭mysql服务器,否则会导致拷贝不完全或失败。

    当你完成了备份时,需要重启服务器(如果关闭了它)或释放加在表上的锁定(如果你让服务器运行)。要用直接拷贝文件把一个数据库从一台机器拷贝到另一台机器上,只是将文件拷贝到另一台服务器主机的适当数据目录下即可。要确保文件是MyIASM格式或两台机器有相同的硬件结构,否则你的数据库在另一台主机上有奇怪的内容。
    (文件系统备份工具 cp)(适合小型数据库,是最可靠的)
    1、停止MySQL服务器。
    2、直接复制整个数据库目录。注意:使用这种方法最好还原到相同版本服务器中,不同版本可能不兼容。
    3、目标服务器上还原。
    4、目标服务器数据库目录授权,重启服务器测试。

  2. mysqldump备份数据库

完全备份+增加备份,速度相对较慢,适合中小型数据库;MyISAM是温备份,InnoDB是热备份

使用此方式,会将数据表导出成为一个SQL脚本文件,咋不同的版本之间升级常使用此方法。

示例:备份恢复单个数据库

[root@localhost /]# mysqldump -uroot -p123456 -B db1 > /tmp/db1_bf.sql;

	mysqldump中的参数:
			-B  在备份时,同时有如下两个语句,不加B没有这两句
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;

USE `db1`;
			-A  备份系统所有的数据库
			-Y	备份数据库所有表
			-y	不导出任何表的空间信息
			-h	要备份那个主机的数据库,写上机器的主机名或者是ip地址
			-add-drop-database	每个数据库创建之前添加drop数据库语句
			


恢复数据的两种方式
mysql -uroot -p123456 < /tmp/db1_bf.sql
二:登录数据库,在mysql中使用source 命令
source /path/xxx.sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张不会打篮球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值