MySQL备份理论及mysqldump用法
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,为什么备份:灾难恢复:硬件故障(冗余)、软件故障(bug)、自然灾害、******、误操作、...测试:测试时,为了模仿真实环境中用户访问情况,通常需要用真实数据去做测试。备份恢复的原则:策略正确:平
千家信息网最后更新 2025年01月23日MySQL备份理论及mysqldump用法
为什么备份:
- 灾难恢复:硬件故障(冗余)、软件故障(bug)、自然灾害、******、误操作、...
- 测试:测试时,为了模仿真实环境中用户访问情况,通常需要用真实数据去做测试。
备份恢复的原则:
- 策略正确:平时要设计好备份还原所涉及到的人员,确保能做正确的事。
- 执行不出问题:平时做演练,以确保出现问题时,能做正确的事情。
- 出问题时做正确的事情。
异地灾备
- 必要性:防止同一台机器、同一个网络环境中、同一个物理机房不可用导致服务不可用。
- 备份项:配置文件,周边配置,周期性计划任务。
备份注意事项:
- 能容忍最多丢失多少数据:决定了使用的备份手段和工具
- 恢复数据需要在多长时间内完成
- 电商站点若发生故障,数据恢复时,一小时损失可能数以亿计数据。若用二进制文件恢复,可能恢复时长极长,且可能因业务量大,单条语句写入二进制文件顺序不同导致数据与真实数据不一致。
- 需要恢复哪些数据
- 线上生产数据集,线上认证,配置等
- 数据备份后需要经常测试备份的可用性,另一方面也可以增强恢复操作的效率,在真正需要恢复数据时做到有条不紊。
数据备份的类型
根据备份的数据集的范围可分为完全备份和部分备份
- 完全备份:备份整个数据集
- 部分备份:备份整个数据集中的一部分,如部分表。
全量备份、增量备份、差异备份
- 全量备份:备份全部数据
- 增量备份:备份自上一次完全备份或增量备份以来变化的那部分数据
- 差异备份:仅备份自上一次完全备份以来变化的那部数据
根据备份方式分为物理备份和逻辑备份
- 物理备份:直接复制数据文件
- 逻辑备份:从数据库导出数据另存在一个或多个文件中
- 根据数据服务是否在线可分为热备、温备、冷备
- 热备:读写操作均可进行的状态下所做的备份
- 温备:可读但不可写状态下进行的备份;
- 冷备:读写操作均不可进行的状态下所做的备份;最可靠,但却是最不可行的。可借助主从复制实现。
备份时需要考虑到的因素:
- 要不要锁定资源,锁定资源多长时间?
- 备份过程的时长?
- 备份时的服务器负载?
- 恢复过程的时长?
备份工具
mysqldump
- mysql服务自带的备份工具,逻辑备份工具.
- 可以做到完全、部分备份
- 对InnoDB支持热备,对MyISAM存储引擎支持温备。
cp/tar
- lvm2:快照(请求一个全局锁),之后立即释放锁,达到几乎热备的效果;物理备份;
- 注意:不能仅备份数据文件;要同时备份事务日志;
- 前提:要求数据文件和事务日志位于同一个逻辑卷;
- lvm2:快照(请求一个全局锁),之后立即释放锁,达到几乎热备的效果;物理备份;
Innobackup/xtrabackup
- 由Percona提供,开源工具,支持对InnoDB做热备,物理备份工具;
- 支持完全备份、部分备份;完全备份、增量备份;完全备份、差异备份;
- mysqlhotcopy:几乎冷备
- select:据说相当LOW
- 备份:SELECT cluase INTO OUTFILE 'FILENAME';
- 恢复:CREATE TABLE
- 导入:LOAD DATA
mysqldump用法
特点:支持逻辑备份、完全备份、部分备份;
- 逻辑备份:数据服务要正常运行,监听在某个端口,mysqldump可以通过端口访问mysql。
- 通过SELECT语句查询后导出至一个文件,恢复时通过INSERT语句把所有查询结果插入至数据库。
- 有可能会丢失精度
mysqldump用法:
- SYNOPSIS:
- mysqldump [OPTIONS] database [tables]
- mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] 备份指定表
- mysqldump [OPTIONS] --all-databases [OPTIONS] 备份所有表
OPTIONS
- --all-databases 备份所有库
- --databases db1,db2.... 备份指定一到多个数据库:
- db 备份单个数据库中的所有目标对象(不会自动创建库,只是备份库中的表、代码、存储过程、存储函数、触发器以及事件调度器等)
- db table1,table2... 备份指定的表
MyISAM存储引擎:最多支持温备,备份时要锁定所有要备份表(若是备份哪个表锁定哪个表,还原时各表时间点不一致)
- -x, --lock-all-tables 锁定所有库的所有表,读锁
- -l, --lock-tables 锁定指定库所有表
InnoDB存储引擎:支持温备和热备;
- --single-transaction 创建一个事务,基于此快照执行备份;必须加上这个选项才支持热备
- 在REPEATABLE-READ隔离级别,mysqldump连进数据库时看到的视图是一致的,都是启动事务那一刻的状态。在这种情况下,启动一个事务,备份的所有数据都是这个时间点的。
其它选项:
- -R, --routines 备份指定库的存储过程和存储函数;
- --triggers 备份指定库的触发器
- -E, --events 备份事件调度器
- --master-data[=#] 在备份的目标文件中记录一个CHANGE MASTER TO语句,记录备份的那一刻处于哪个二进制文件的哪个位置。
- mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,在slave上导入数据时就会执行这个语句,salve就会根据指定这个文件位置从master端复制binlog。默认情况下这个值是1。
- 记录下来一个注释的CHANGE MASTER TO 语句,仅为我们参考使用,不打算用它来设定从服务器复制线程的启动通常就设置为2。
- --flush-logs 锁定表完成后,即进行日志刷新操作;
- SYNOPSIS:
备份
数据
文件
支持
语句
存储
工具
逻辑
服务
事务
数据库
物理
部分
增量
备份工具
时间
状态
过程
测试
一致
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
重庆pdu服务器专用电源厂商
飙酷车神2怎么连接服务器
数据库技术参数设计
国产服务器机箱批发
个人数据库管理软件中文最新版
sky服务器错误怎么回事
安卓8以上连接不上数据库
网络安全等级保护和分级保护
网络安全预防的主要措施
河北it软件开发的行业须知
盛大云免费服务器
上海安卓软件开发收费报价表
公司服务器机柜厂商
互联网科技与创新金句
网络营销软件开发程序
网络安全案例简单
分布式软件开发专业
恒生软件开发试用工资
fifa21数据库编辑器
果肉饮料店软件开发
瑞庭网络技术58同城
网络安全教育手抄
c 数据库持久化
接口数据库安全
校园网采用的网络技术
华为服务器的认证培训
软件开发文档排版公众号
浙江告警日志审计服务器
河南电商系统软件开发
学软件开发南宁