点击上方 SRE运维派,?关注我?,选择 设为星标
优质文章,及时送达
1 MySQL 备份和恢复
1.1 备份恢复概述
1.1.1 为什么要备份
尽管采取了一些管理措施来保证数据库的安全,但是在不确定的意外情况下,总是有可能造成数据的损失。
https://www.toutiao.com/article/6939518201961251359/
https://tech.sina.com.cn/roll/2020-02-26/doc-iimxyqvz6041173.shtml
在生产环境中可能会遇到各种状况导致数据丢失,最主要的导致数据丢失的原因有这几种:
硬件故障,软件故障,自然灾害,黑客攻击,误操作 (占比最大)
所以为了保证数据的安全,我们需要定期对数据进行备份。
备份就是为了防止原数据丢失,保证数据的安全。当数据库因为某些原因造成部分或者全部数据丢失后,备份文件可以帮我们找回丢失的数据。因此,数据备份是很重要的工作。
任何数据库都需要备份,备份数据是维护数据库必不可少的操作。
1.1.2 备份类型
相关概念
1.1.3 备份内容
数据库备份内容主要包括以下几个方面
数据库中的数据
二进制日志,InnoDB 事务日志
用户账号,权限配置,程序代码(视图,存储过程,触发器,事件调度器)
-
相关配置文件
1.1.4 备份策略
备份数据的策略要根据不同的应用场景进行定制,可以参考的内容主要有以下几个方面,我们可以根据不同的需求来制定符合当前业务和环境的数据库备份策略。
能容忍最多丢失多少数据
备份产生的负载
备份过程的时长
温备的持锁多久
恢复数据需要在多长时间内完成
-
需要备份和恢复哪些数据
1.1.5 还原要点
备份文件要异地(不同服务器)存放,不要把备份文件放在 MySQL 服务器上(不要把鸡蛋放在同一个篮子里面)
做还原测试:备份完成后,需要进行还原测试,要保证备份出来的数据能成功的还原回去
-
制定备份标准:将备份与还原流程进行规范化与制度化,形成技术文档
1.1.6 备份工具
cp,tar等复制归档工具:物理备份工具,适用所有存储引擎;只支持冷备;完全和部分备份
LVM 的快照:先加读锁,做快照后解锁,几乎热备;借助文件系统工具进行备份
mysqldump:逻辑备份工具,适用所有存储引擎,对 MyISAM 存储引擎进行温备;支持完全或部分备份;对 InnoDB 存储引擎支持热备,结合 binlog 的增量备份
xtrabackup:由 Percona 提供支持对 InnoDB 做热备(物理备份)的工具,支持完全备份、增量备份
MariaDB Backup:从 MariaDB 10.1.26 开始集成,基于 Percona XtraBackup 2.3.8 实现
mysqlbackup:热备份,MySQL Enterprise Edition 组件
-
mysqlhotcopy:PERL 语言实现,几乎冷备,仅适用于MyISAM存储引擎,使用LOCK TABLES、FLUSH TABLES 和 cp 或 scp 来快速备份数据库
1.1.7 冷备份和还原的实现
#10.0.0.164主机
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| discuz |
| eshop |
| information_schema |
| mysql |
| performance_schema |
| shopxo |
| sys |
| testdb |
| wordpress |
+--------------------+
9 rows in set (0.01 sec)
mysql> select count(*) from testdb.t1;
+----------+
| count(*) |
+----------+
| 8 |
+----------+
1 row in set (0.01 sec)
#停止服务
[root ~]# systemctl stop mysqld.service
#备份到远程主机,用SCP命令也可以
#如果配置文件有修改,则也需要备份
[root ~]# rsync -a /var/lib/mysql root@10.0.0.183:/root/data/
#10.0.0.183 远程主机上查看
[root ~]# ll /root/data/
total 4
drwxr-xr-x 12 mysql mysql 4096 Jan 2 13:18 mysql
#在10.0.0.183主机上还原
[root@rocky86 ~]# mv /root/data/mysql /var/lib/
mv: overwrite '/var/lib/mysql'? y
#远程主机开启服务
[root ~]# systemctl start mysqld.service
#测试
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| discuz |
| eshop |
| information_schema |
| mysql |
| performance_schema |
| shopxo |
| sys |
| testdb |
| wordpress |
+--------------------+
9 rows in set (0.00 sec)
mysql> select count(*) from testdb.t1;
+----------+
| count(*) |
+----------+
| 8 |
+----------+
1 row in set (0.01 sec)
— END —
-点击下方卡片关注-
点赞、转发、在看!
您的鼓励是对我最大的支持!

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!
优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、DIY体验、720全景展厅及3D虚拟仿真)、移动端应用(手机站、APP开发)、微信定制开发(微信官网、微信商城、企业微信)、微信小程序定制开发等一系列互联网应用服务。