SQL Server中聚合历史备份信息对比数据库增长的方法
很多时候,在我们规划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连接的密码的方法
不知道所写的这个标题是否能完全表达出我想要说的意思,但我自己感觉是没有完全表达出来的,所以还是请大家看正文吧,呵呵! 问题描述:许多WEB开发人员(还有那些通过WEB注入来入侵的黑客们),手里应该都有不少的SQL数据库连接吧?一般会在SQL企业管理器里建几个组,然后各个组里面有许多的连接实例,比如下图(图1): (图1) 随着时间流逝,很久没有再使用过的SQL连接实例,密码你可能已经忘了(或者是你根本就没有去记过这些SQL连接的用户名和密码),那当有一天你想再找回这些SQL连接的密码时,你可能会
-
MySQL备份与恢复之保证数据一致性(5)
在上一篇文章中我们提到热拷贝(MySQL备份与恢复之热拷贝),热拷贝也就是在MySQL或者其他数据库服务在运行的情况下使用mysqlhotcopy命令进行备份.这篇文章我们讲解怎样保证数据一致性.现在假设有这样一种情况,我们总是在凌晨对数据库进行备份,假设在凌晨之后发生数据库异常,并且导致数据丢失.这样凌晨之前的数据我们已经做了备份,但是凌晨到发生异常这段时间的数据就会丢失(没有binlog的情况下).好在InnoDB存储引擎支持事务,也支持Binlog,凌晨到发生异常这段时间的数据就可以通过日
-
SqlServer备份数据库的4种方式介绍
1.用sqlserver的维护计划 在这里我就不给截图演示了,这个比较简单,无非就是通过sqlserver自己的维护计划拖拽出2个一个'备份数据库'任务和一个'清除维护'任务. 需要注意的点: 1)有备份任务里边选择备份的库尽量选'所有用户数据库'这项,以免选择了特定数据库备份以后某天添加了新数据库却忘了勾选导致丢备份. 2)选项验证备份集完整性和压缩备份尽量都选上. 3)备份的路径尽量别选磁盘根目录. 2.通过脚本+作业的方式备份数据库(非xp_cmdshell).如果是多个库的话自己写个游标
-
MySQL备份与恢复之冷备(1)
用一句话概括冷备,就是把数据库服务,比如MySQL,Oracle停下来,然后使用拷贝.打包或者压缩命令对数据目录进行备份.如果数据出现异常,则可以通过备份数据恢复.冷备一般需要定制计划,比如什么时候做备份,每次对哪些数据进行备份等等.但是由于这样的备份占用过多的空间,对大数据量的环境下不一定适合,故生产环境很少使用. 冷备示意图 冷备实验 第一步,创建测试数据库,插入测试数据 mysql> use larrydb; Database changed mysql> show tables; +-
-
企业管理器备份和还原SQL Server数据库
在日常的数据库操作中,我们常常对数据库进行备份操作,以方便在数据库发生灾难时对数据库进行还原,从而确保数据库的安全性.SQL Server数据库使用企业管理器可以简单直观地完成这些操作,还可以每天自动备份数据库.本文我们就介绍了这一过程,接下来就让我们来一起了解一下吧. 一.备份数据库 1.打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server. 2.SQL Server组-->双击打开你的服务器-->双击打开数据库目录. 3.选择你的数据库名称(如论坛数据库F
-
如何备份MySQL数据库
在MySQL中进行数据备份的方法有两种: 1. mysqlhotcopy 这个命令会在拷贝文件之前会把表锁住,并把数据同步到数据文件中,以避免拷贝到不完整的数据文件,是最安全快捷的备份方法. 命令的使用方法是: mysqlhotcopy -u root -p<rootpass> db1 db2 - dbn <output_dir> 如果需要备份全部数据库,可以加上–regexp=".*"参数. Mysqlhotcopy命令可自动完成数据锁定工作,备份时不用关闭服
-
Linux下自动备份MySQL的方法
Linux下可以利用crontab系统每天定时备份MySQL数据库,以下是详细步骤: 1.创建保存备份文件的路径/mysqldata #mkdir /mysqldata 2.创建/usr/sbin/bakmysql文件 #vi /usr/sbin/bakmysql 输入 rq=` date +%Y%m%d ` tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql 或者写成 rq=` date +%Y%m%d ` mysqldump –all-dat
-
MySQL备份与恢复之热备(3)
在上两篇文章(MySQL备份与恢复之冷备,MySQL备份与恢复之真实环境使用冷备)中,我们提到了冷备和真实环境中使用冷备.那从这篇文章开始我们看下热备.显然热备和冷备是两个相对的概念,冷备是把数据库服务,比如MySQL,Oracle停下来,然后使用拷贝.打包或者压缩命令对数据目录进行备份:那么我们很容易想到热备就是在MySQL或者其他数据库服务在运行的情况下进行备份.但是,这里存在一个问题,因为生产库在运行的情况下,有对该库的读写,读写频率有可能高,也可能低,不管频率高低,总会就会造成备份出来的
-
sql server 2005数据库备份还原图文教程
首先.点击桌面的"SQL Server Management Studio"打开,sql2005的管理器,点击"连接"登录,如图: 一.新建数据库 1.新建数据库 右键点击"数据库"--"新建数据库",如图: MSSQL2005备份还原图文教程 填写数据库名,如mydata,选择数据库保存路径,一般可以保持默认地址,点击"确定". 2.新建用户 右键点击"安全性"--"登录名&
-
MySQL备份与恢复之热拷贝(4)
在上一篇文章中我们提到热备,热备也就是在MySQL或者其他数据库服务在运行的情况下进行备份.本文分享另外一种备份的方法,也就是热拷贝.热拷贝跟热备很类似,只不过热备使用mysqldump命令,热拷贝使用mysqlhotcopy命令.热拷贝的优势在于支持服务运行中进行备份,速度快,性能好:劣势在于只能备份MyIsam的表,无法备份InnoDB的表.所以在生产环境中应该酌情使用. 示意图 热备模拟 第一步,热拷贝 [root@serv01 databackup]# mysqlhotcopy -uro
-
MySQL使用命令备份和还原数据库
数据库在使用当中都会有数据库备份工作,当数据库发生严重错误无法启动,或者数据丢失时可以及时有效地恢复数据.文章简单介绍如何备份和还原MySQL数据库. 备份数据库 使用mysqldump命令备份数据库 复制代码 代码如下: # 如果要将game数据库进行备份: mysqldump -u root -p game > game_backup.sql # 如果希望备份所有的数据库: mysqldump -u root -p --all-databases > all_backup.sql 还原数据
-
SQL Server远程定时备份数据库脚本分享
经常会有定时备份SQL Server数据库的需要.定时备份到本机的话,还是挺容易的,计划任务就可以完成,但如果是整机挂了,那备份到本机是没意义的,那么就需要来考虑备份到局域网中,其它电脑里. 下面就分享一份在网上找了之后,自己再简单整理过的代码,配合 SQL Server 代理中的作业功能,已经稳定运行一个星期了,每小时就备份一次. 复制代码 代码如下: -- 创建网络映射(Y是盘符:IP地址后面要带共享文件夹的名称:password是密码,双引号引起:account是远程电脑的登录名) exe
-
SQLSERVER数据备份文件的分割备份方法
当完整备份数据库的时候,我们有时候可能会遇到一种极端情况,比如服务器上C,D,E三个盘符都只剩下5G空间了 但是如果要完整备份业务库需要12G的空间,那么这时候怎么办呢? 使用文件组备份吗?但是数据库没有做表分区,没有分多个文件组,就只有一个主文件组啊 这时候我们可以使用备份文件分割 我使用自己机器示范一下,我的机器上有一个Temp2的数据库,数据库大小为1GB 备份 我们做一个Temp2数据库的完整备份 复制代码 代码如下: DECLARE @CurrentTime VARCHAR(50),
-
sqlserver找回企业管理器的方法
打开SQL Server企业管理器,突然弹出一个窗口,内容是: 错误提示: "Microsoft Management Console --------- MMC 不能打开文件 C:Program FilesMicrosoft SQL Server80ToolsBinnSQL Server Enterprise Manager.MSC. 这可能是由于文件不存在,不是一个 MMC 控制台,或者用后来版本的 MMC 创建.也可能是由于您没有访问此文件的足够权限. 郁闷,前一分钟还是好好的,怎么现在就
-
MySQL备份与恢复之真实环境使用冷备(2)
在上一篇文章(MySQL备份与恢复之冷备)中,我们提到了冷备.但是有个问题,我们存储的数据文件是保存在当前本地磁盘的,如果这个磁盘挂掉,那我们存储的数据不就丢失了,这样备份数据不就功亏一篑,劳而无功.所以真实环境中我们多准备几块磁盘,然后再在这些磁盘上搭建LVM,把MySQL的数据目录挂载到LVM上,这样数据就不是存储在当前磁盘上,就可以保证数据的安全性. 示意图 真实环境使用冷备模拟 第一步,需要提前规划好磁盘,这里做模拟,添加两磁盘 第二步,对磁盘进行分区 [root@serv01 ~]
随机推荐
- 渗透中用openrowset搞shell的方法
- 在DIV+CSS排版中新闻列表的制作方法
- SQL Server中利用正则表达式替换字符串的方法
- vue.js入门(3)——详解组件通信
- iis加载不到php.ini的解决方法
- JAVA中 终止线程的方法介绍
- Java 继承方法实例详解
- ASP编程入门进阶(十四):Browser & Linking
- 原生js实现jquery函数animate()动画效果的简单实例
- PHP实现基于mysqli的Model基类完整实例
- c语言可变参数实现示例
- PHP数组对比函数,存在交集则返回真,否则返回假
- JavaScript事件委托技术实例分析
- 浅析js 文字滚动效果
- 实现复选框全选/全不选切换
- Java多线程基础 线程的等待与唤醒(wait、notify、notifyAll)
- FileSystemObject 对象
- 详解CentOS6.5 安装 MySQL5.1.71的方法
- jquery分页插件jpaginate在IE中不兼容问题
- 详解javascript跨浏览器事件处理程序