• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    SQL Server中聚合历史备份信息对比数据库增长的方法
    POST TIME:2021-10-18 18:24

    很多时候,在我们规划SQL Server数据库的空间,或向存储方面要空间时,都需要估算所需申请数据库空间的大小,估计未来最简单的办法就是看过去的趋势,这通常也是最合理的方式。

    通常来讲,一个运维良好的数据库都需要做定期基线(baseline),有了基线才会知道什么是正常。一个简单的例子例如,一些人的血压平常偏低,那么80的低压对他来说就是不正常了。但现实情况是大多数系统并没有采集基线的习惯,因此在需要规划空间想要看历史增长时,就没有过去精确的数据了。

    一个解决办法就是通过查看历史备份的大小来看过去的数据增长趋势,数据库备份的时候不会备份整个文件,而只备份在FPS页中标记已经分配的页,可以出现数据库是20G,但备份只有3G的情况,因此数据库备份可以作为查看数据增长的依据。

    数据库在每次备份时都会在msdb.dbo.backupset表中记录备份的相关信息,因此可以通过下述查看来聚合历史备份信息,从而对比数据库的增长:

    SELECT
    [database_name] AS "Database",
    DATEPART(month,[backup_start_date]) AS "Month",
    AVG([backup_size]/1024/1024) AS "Backup Size MB"
    FROM msdb.dbo.backupset
    WHERE
     [database_name] = N'Adventureworks2012'
    AND [type] = 'D'
    GROUP BY [database_name],DATEPART(mm,[backup_start_date]);

    代码清单1.按月查看历史数据的增长

    结果如图1所示。

    图1.历史数据的增长

    其中,代码清单1中database_name换成你需要查看的数据库名称即可。

    注:SQL Server 2008之后引入了基于策略的管理,该策略会默认建立一个作业,如图2所示,该作业每天2点运行,会按照策略(历史记录保留天数,如图3所示)清理过期的历史记录。

    图2.查看策略管理

    图3.历史记录保留天数,默认为0,既永不清理

    该策略会对应建立一个作业(如图4所示)。

    图4.清理历史记录的作业

    如果该作业或人为建立的作业清除了msdb.dbo.backupset表中的数据,则代码清单1中的结果可能会受到一定影响。

    您可能感兴趣的文章:
    • 找回SQL企业管理器里的SQL连接的密码的方法
    • sqlserver找回企业管理器的方法
    • sql server 2005数据库备份还原图文教程
    • SQLSERVER数据备份文件的分割备份方法
    • 如何备份MySQL数据库
    • Linux下自动备份MySQL的方法
    • MySQL使用命令备份和还原数据库
    • SqlServer备份数据库的4种方式介绍
    • SQL Server远程定时备份数据库脚本分享
    • MySQL备份与恢复之冷备(1)
    • MySQL备份与恢复之真实环境使用冷备(2)
    • MySQL备份与恢复之热备(3)
    • MySQL备份与恢复之热拷贝(4)
    • MySQL备份与恢复之保证数据一致性(5)
    • 企业管理器备份和还原SQL Server数据库
    上一篇:将一个表中个某一列修改为自动增长的方法
    下一篇:SQL Server中调用C#类中的方法实例(使用.NET程序集)
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信