Mysql数据库备份与恢复

一、备份概述

1.1 为什么需要备份

数据是企业的核心资产,数据库备份的重要性不言而喻。常见的数据丢失原因包括:

风险类型 描述
硬件故障 磁盘损坏、服务器宕机
软件错误 Bug导致数据损坏、误操作
人为错误 误删数据、错误更新
安全事件 黑客攻击、勒索软件
自然灾害 火灾、水灾、断电

1.2 备份类型对比

类型 说明 优点 缺点
物理备份 直接复制数据库文件 速度快、恢复简单 跨平台性差、占用空间大
逻辑备份 导出SQL语句 可读性强、跨平台 备份/恢复速度慢
全量备份 备份所有数据 恢复简单完整 占用空间大、耗时长
增量备份 备份自上次备份后的变化 节省空间和时间 恢复复杂
差异备份 备份自上次全量备份后的变化 介于全量和增量之间 恢复较复杂
热备份 在线备份,不锁表 不影响业务 需要事务支持
冷备份 停机备份 一致性好 影响业务

1.3 备份策略设计原则

python

复制代码
备份策略原则 = [
    "RPO(恢复点目标):可容忍的数据丢失量",
    "RTO(恢复时间目标):可容忍的恢复时间",
    "3-2-1原则:至少3份备份,2种介质,1份异地",
    "定期测试恢复:备份的有效性必须验证",
    "备份加密:保护敏感数据",
    "备份保留周期:根据合规要求设定"
]

二、逻辑备份与恢复

2.1 mysqldump基础用法

bash

复制代码
# 基本语法
mysqldump -u [用户名] -p [选项] [数据库名] > 备份文件.sql

# 备份单个数据库
mysqldump -u root -p school > school_backup.sql

# 备份多个数据库
mysqldump -u root -p --databases school blog > multiple_db.sql

# 备份所有数据库
mysqldump -u root -p --all-databases > all_db.sql

# 只备份表结构,不备份数据
mysqldump -u root -p --no-data school > school_structure.sql

# 只备份数据,不备份表结构
mysqldump -u root -p --no-create-info school > school_data.sql

# 备份指定表
mysqldump -u root -p school students teachers > school_tables.sql

2.2 mysqldump常用选项

bash

复制代码
# 常用选项详解

# 1. 事务一致性(InnoDB推荐)
mysqldump -u root -p --single-transaction school > backup.sql

# 2. 锁定所有表(MyISAM推荐)
mysqldump -u root -p --lock-all-tables school > backup.sql

# 3. 备份存储过程和函数
mysqldump -u root -p --routines school > backup.sql

# 4. 备份触发器
mysqldump -u root -p --triggers school > backup.sql

# 5. 备份事件
mysqldump -u root -p --events school > backup.sql

# 6. 添加DROP语句
mysqldump -u root -p --add-drop-database school > backup.sql

# 7. 完整备份(包含所有对象)
mysqldump -u root -p \
    --single-transaction \
    --routines \
    --triggers \
    --events \
    --add-drop-database \
    --databases school > full_backup.sql

# 8. 压缩备份
mysqldump -u root -p school | gzip > school_backup.sql.gz

# 9. 带条件的备份
mysqldump -u root -p school students \
    --where="age > 18" > adult_students.sql

# 10. 排除某些表
mysqldump -u root -p school \
    --ignore-table=school.logs \
    --ignore-table=school.temp > backup.sql
相关推荐
AIminminHu2 小时前
OpenGL渲染与几何内核那点事-项目实践理论补充(一-1-(4):GstarCAD / AutoCAD 客户端相关产品 —— 深入骨髓的数据库哲学)
数据库·几何·cad开发
二等饼干~za8986682 小时前
豆包GEO优化源码开发全解析:技术架构、实现逻辑与实操指南
数据库·sql·重构·架构·mybatis·音视频
青梅煮酒与君饮3 小时前
深度刨析RAG检索增强
数据库·人工智能·深度学习·语言模型·知识图谱
NineData3 小时前
MySQL到StarRocks 同步链路中的建表、DDL 跟随与数据校验
运维·数据库·starrocks·mysql·数据迁移·数据库管理工具·ninedata
fen_fen3 小时前
DB2表创建与Python插入、查询实操解析
数据库·oracle
zdl6863 小时前
MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
数据库·microsoft
gechunlian883 小时前
MySQL - Navicat自动备份MySQL数据
android·数据库·mysql
快乐非自愿3 小时前
MySQL优化全攻略:索引、SQL与分库分表的最佳实践
android·sql·mysql
u86883 小时前
大模型呼叫中心助力物业报修自动化
运维·数据库·自动化