先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
2、为业务提供不间断服务
实际生产环境对数据库的要求,首先就是具备7×24×365不间断服务的能力,这也是一定要备份数据库的其中原因之一。
数据库的备份方式
常用的备份方式包括以下:
- 逻辑备份
- 物理备份
1、逻辑备份
逻辑备份其实就是利用MySQL数据库自带的mysqldump命令,或者使用第三方的工具,然后把数据库里的数据以SQL语句的方式导出成文件的形式。在需要恢复数据时,通过使用相关的命令(如:source )将备份文件里的SQL语句提取出来重新在数据库中执行一遍,从而达到恢复数据的目的。
实例如下:
mysqldump -A -B --single-transaction >/server/backup/mysql_$(date +%F).sql
一般备份时都会进行压缩处理,以节省磁盘空间,如下
mysqldump -A -B --single-transaction |gzip>/server/backup/mysql_$(date +%F).sql.gz
恢复操作
cd /server/backup/
gzip -o mysql_$(date +%F).sql.gz
mysql -uroot -pMyadmin -h mysqldb.mingongge.com
source /server/backup/mysql_$(date +%F).sql
逻辑备份的优点与使用场景
优点:简单,易操作,自带工具方便、可靠。
使用场景:数据库数据量不大的情况可以使用,数据量比较大(超过20G左右)时备份速度比较慢,一定程度上还会影响数据库本身的性能。
2、物理备份
物理备份就是利用命令(如cp、tar、scp等)直接将数据库的存储数据文件复制一份或多份,分别存放在其它目录,以达到备份的效果。
这种备份方式,由于在备份时数据库还会存在数据写入的情况,一定程度上会造成数据丢失的可能性。在进行数据恢复时,需要注意新安装的数据的目录路径、版本、配置等与原数据要保持高度一致,否则同样也会有问题。
所以,这种物理备份方式,常常需要在停机状态下进行,一般对实际生产中的数据库不太可取。因此,此方式比较适用于数据库物理迁移,这种场景下这种方式比较高效率。
物理备份的优点及使用场景
优点:速度快,效率高。
场景:可用于停机维护及数据库物理迁移场景中。
实际生产环境中,具体使用哪种方式,就需要看需求与应用场景所定。
全量与增量备份概述
在介绍完备份方式之后,再来介绍一下,增量与全量备份这两个概念。
什么是全量备份?
全量备份:就是将数据库中的所有数据,或者是某一个特定的库里的所有数据,一次全部备份下来。
备份数据库中所有数据
mysqldump -A -B --single-transaction |gzip>/server/backup/All_data_$(date +%F).sql.gz
备份某个库的数据
mysqldump -A -B --single-transaction testDB1|gzip>/server/backup/testDB1_$(date +%F).sql.gz
什么是增量备份?
增量备份:指的是上一次全量备份之后到下一次全量备份这前这段时间内数据库所更新或者是增加的数据,将其备份下来。
注:全量备份是一个文件,而增量备份则是MySQL的binlog日志文件。所以常说的增量备份就是备份binlog日志文件。
两者的区别在哪?
全量备份:需要的备份时间长一点,恢复时间会短一点,因为文件数少,维护方便。但是,全量备份的文件大,占用一定的磁盘空间,全理备份时会一定程序上影响数据库的性能(这也就是为什么在0:00点备份的原因),也因文件大的原因,不便于服务器本地保存过多文件,重要业务的全量备份文件可能需要手工下载或迁移到服务器之外的存储空间中。
增量备份:备份简单,恢复时复杂一点,因为文件数量多,需将所有binlog文件解析成SQL语句,如下:
mysqlbinlog testDB1-bin.000001 testDB1-bin.000002 >./bin.sql
然后,再通过恢复的方式进行恢复
mysql -uroot -pMyadmin -h mysqldb.mingongge.com
source /server/backup/bin.sql
或者如下操作
cd /server/backup
mysql testDB1 <./bin.sql
备份与恢复实践操作
对于Mysql数据库的备份,一般采取脚本+定时任务进行日常备份。
常用执行策略是:
- 每天0:00执行一次全量备份
- 按业务需求执行增量备份
分享一个我在一个创业公司初期的一个备份方案实例
阿里云数据库服务器备份方案
方案一:
目前数据库是主从同步,从库开启binlog日志功能进行异地备份,就目前数据量而言,只需要在从库的基础上进行定时全量与增量备份数据库即可。
1、创建备份目录
mkdir /server/backup
2、备份数据库到指定目录
mysqldump --single-transaction -F -B phoenix_coupon_production|gzip >/server/backup/phoenix_$(date +%F).sql.gz
mysqldump --single-transaction -F -B ywotx|gzip >/server/backup/ywotx_$(date+%F).sql.gz
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)**
[外链图片转存中…(img-Uh5IK0zd-1713191638455)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!