SCPPO:SQLServer数据库备份那些事儿
【前言】
??? 今天远程服务器,突然发现服务器一个盘(容量:1T)快满了,于是好奇点进去看看哪些东西占了这么多,经过排查后发现是SQLServer的备份文件,占据了绝大部分的空间;之前对SQLServer的备份也没有太多的关注,于是在解决这次盘容量慢的过程中,也有机会将SQLServer备份学习一下。 【有趣的事】???? 1、系统数据库的简单介绍:
????? (1)我们系统主要用到的库有三个(保密起见暂时用别名代替):数据库A,数据库B,数据库C ? ??? (2)设置的SQLServer备份策略:每天23:05进行备份;(参考:设置SQLServer数据库自动备份) ?????????????? ①备份文件(.bak文件):数据库A—1.66M;数据库B—120M;数据库C—6.56G; ?????????????? ②数据库A—(mdf:50M,ldf:82.9M);数据库B—(mdf:2.07G,ldf:18.4G);数据库C—(mdf:42.8G,ldf:29.7G)。 ???????????????????? ???? 2、解决盘容量的过程: ????? (1)意外的发现:当时发现盘的剩余容量不足10M根据数据库备份文件生成的时间发现,近几次,数据库B和数据库C都无备份文件;猜想:是由于空间不足导致两个大的数据库不进行备份。 ????? (2)如何解决那?发现里面备份的文件从去年的4月份开始到现在每天都有,于是乎请示组长是否要删除一些,组长回答说把老的删除,不过删除这些月份中每个月留一个月底,以备以后有问题查;自己将没删除之前的库文件截图,然后将去年四月份的到今年五月份每个月只留一个月底的做备份。盘容量腾出200G的空间。 ????? (3)在(1)中猜想的验证:等到第二天(原因:见1中(2)的备份策略)在此查看数据库ABC都正常备份。 ???? 3、正式数据库服务器上数据同步到测试服务器上 ????? (1)既然说到数据库这块儿,之前自己一直有个疑问:正式数据库和测试服务器数据如何同步的,借此机会请教下组长。 ????? (2)由于测试项目不需要数据与正式系统的数据一样是最新的,所以目前采用最简单的同步策略—手动。 ????? (3)手动同步具体步骤: ????????????????? ①将正式服务器上的数据库的最新备份文件dbk拷贝到测试服务器上 ????????????????? ②在测试服务器上进行还原 ????????????? ???? 4、延伸学习 ????? (1).dbk文件和mdf+ldf的有什么区别? ? ? ? ? ? 由于这块儿是微软不开源的技术,所以在网上查了些,又根据自己的经验说说自己的看法: ?????????????????①用途:.dbk只能用来备份;而mdf+ldf是正在使用的也可当做备份; ???????????????? ②可以简单理解成.dbk是mdf+ldf的压缩版,通过1中(3)的对比,微软的压缩率还是蛮高的;????????????????? ????? (2)根据三个库的大小特点发现mdf文件较大的是数据量比较大,而ldf文件大的是操作较多;比如:数据库C的数据新增的比较多,而更新操作则较少;而数据库B则是对数据的操作较多,而新增数据量较少;这和系统的应用也一一对应; ????? (3)请教一下老司机,可以利用数据库收缩来减少数据库所占空间,参考:数据库收缩详解; ????? (4)如果需要测试数据和正式数据实时同步怎么办那?参考:SQLServer数据库实时同步复制? 实时同步对技术难度以及服务器的性能有所影响,大家还是要根据自己的实际项目需求来选择,做好相应的平衡即可。??????????????????? 【总结】
?????? 1、正规的团队中作为开发是没有权限直接远程服务器的,但是在一些小项目中,总共就几个人做维护,当然没有必要招一个专门的DBA;各自有各自的好处,在正规大团队中学到的技术比较深,但是面比较窄,而小团队中面比较广,但是深度没那么深,这也是选进大公司与小公司的一个重要衡量吧!如何选择?自身根据自身目前所处的实际情况所决定; ?????? 2、好奇心会引导我们发现很多有趣的东西; ?????? 3、发现在开发过程中有扯皮的现象,解决办法:职责划分明确,另外个人勇于承担责任,发现问题及时将问题提出来,然后去解决,将系统当成是自己的事情;这样会收获更多,技术上如此为人处世上亦如此。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |