前言
如题,本篇纯理论(有点大杂烩了,如有侵权请联系立即删除,感谢)
脚本备份可以参考MySQL脚本备份+备份结果邮件告警通知
备份&恢复,https://blog.csdn.net/qyf158236/article/details/109220563
下边2图源自,这篇的博客整理的也相当到位,https://www.cnblogs.com/liangshaoye/p/5464794.html
以下理论参考,https://zhuanlan.zhihu.com/p/92865874
逻辑备份和物理备份
逻辑备份
逻辑备份用于备份数据库的结构(CREAET DATABASE、CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小、跨SQL服务器、需要修改数据等场景。如mysqldump
命令就是产生一个逻辑备份工具,使用mysqldump
输出的文件包含CREATE TABLE
和INSERT
语句,能够直接重建表内容和表结构。
使用逻辑备份有以下优势和劣势:
优势
- 可移植性高,SQL语句可直接适用于其他SQL服务器;
- 在数据恢复之前可增加、修改数据;
- 数据恢复粒度小可以是服务器、数据库、表级别;
- 使用文本格式,可读性高;
劣势
- 备份时需要访问mysql服务器,影响其他客户端;
- 需要将数据转换成逻辑格式(SQL,CSV);
- 如果命令运行在客户端,mysql服务器还需要将数据发送给客户端;
- 因为输出格式为文本文件,占用空间较大;
物理备份
物理备份是包括存储数据库内容的目录和文件的副本,这种类型的备份适用于需要在出现问题时快速恢复的大型重要数据库。
优势
- 完整的Mysql文件和目录备份,只需要复制文件不需要转换,速度比逻辑备份更快;
- 除了备份数据,还能备份配置文件和日志文件;
- 不需要运行Mysql服务器就可以完成备份;
- 备份工具简单使用cp、scp、tar命令即可完成备份;
劣势
- 可移植性不高,恢复数据只适用于相同或类似的机器上;
- 为了保持数据库文件的一致性,需要停机备份;
- 恢复粒度不能按表或用户恢复;
在线备份-热和离线-冷备份
在线备份需要mysql服务器处理运行状态,以便备份工具从mysql服务器中获取数据。离线备份表示mysql服务器处理停止状态。两种备份形式也可以称为“热备份”和“冷备份“。
在线备份的主要特性
- 备份不需要停机,对其他客户端影响较小其他连接能够正常访问mysql服务器(依赖操作类型,如读操作);
- 备份需要加锁,以免在备份期间对数据做出修改;
离线备份的主要特性
- 备份期间服务器不可用;
- 备份过程更简单,不会受到客户端的干扰;
逻辑备份(mysqldump使用)
mysqldump
属于逻辑备份命令,使用mysqldump
备份的优势是它非常方便和灵活,可以直接编辑输出文件或者使用导入到其他的SQL服务器中去,但是它不能用作备份大量数据的快速解决方案,对于大数据量,即使备份花费的时候可以接受,但是恢复数据也可能会非常缓慢,因为执执行SQL语句会涉及磁盘I/O进行插入,创建索引等。mysqldump
的使用方式非常简单:
shell> mysqldump [options] db_name [tbl_name …]
shell> mysqldump [options] --databases db_name …
shell> mysqldump [options] --all-databases
使用mysqldump
备份时要注意:数据库的一致状态,在执行mysqldump
命令时要保证数据不会再发生变更,保持数据的一致性有二种方法:
- 使Mysql服务器只读
- 使用事务加上隔离级别:
REPEATABLE READ
使用REPEATABLE READ
事务隔离级别执行mysqldump
命令(使用事务保持数据库的一致状态):
mysqldump --master-data=2 \ --flush-logs \ --single-transaction \ --all-databases > /backup/date +%F-%H
-mysql-all.sql
备份主要参数说明:
-
–master-data: 将二进制日志文件的名称和位置备份
-
【–single-transaction:开始备份之前设置事务隔离级别为REPEATABLE READ然后发送一个START TRANSACTION命令】
数据库备份类型
忘记参考哪个了,好像是51上的
备份类型 | 描述 |
---|---|
逻辑备份 | 这种类型的备份是通过使用create database、create table和insert等SQL语句保存表示逻辑数据库结构的信息来创建的。当您想要从一个MySQL版本升级到另一个版本时,这种类型的备份是理想的,但是它是一种较慢的备份方法。 |
物理备份 | 这种类型的备份是对实际数据库文件或磁盘分区的备份,这种类型的备份可以非常快地进行备份和恢复。 |
完整备份 | 完整备份是包含数据库中所有内容的独立备份,然后可以在另一台服务器上恢复。完整备份可以是逻辑备份,也可以是物理备份。 |
增量备份 | 这种类型的备份只包含上次备份更改后的数据。这种类型的备份的优点是速度更快,因为没有太多的数据要备份,但是缺点是需要更长的时间来恢复。 |
固定点备份 | 这是在确切时刻的备份,通常您关闭数据库(或静止模式)然后进行备份。 |
热备份 | 在数据库运行时采用这种类型的备份,在备份期间不会阻止读取和写入 |
温备份 | 这种类型的备份是在数据库运行时进行的,但是不会阻止读取,但禁止写入对数据库进行任何修改。 |
冷备份 | 类似于固定点的备份,因为数据库在备份开始之前关闭 |