SQL Server备份历史记录分析
2008-10-24 10:07:07 来源:WEB开发网问题
在数据库管理员的日常任务中,数据库备份占据了很重要的位置。这个任务一般通过维护计划、定期的SQL Server Agent Jobs或者第三方工具的执行来完成。考虑到备份的重要性,有必要定期地分析这个过程的性能和效率。那么我们要如何才能洞察任何数据备份过程的性能呢?
专家解答
让我们通过一些不同的脚本来看看能够洞察到什么。为了达到这篇文章的目的,我在这个例子中创建了一个叫做BackupReport的数据库。基于测试目的,执行全日志,差异日志和事务日志来列出脚本的值。查看下面的脚本:
脚本 – 创建备份过程统计数据 |
SELECT s.database_name, m.physical_device_name,cast(s.backup_size/1000000 as varchar(14))+' '+'MB' as bkSize,CAST (DATEDIFF(second,s.backup_start_date , s.backup_finish_date)AS VARCHAR(4))+' '+'Seconds' TimeTaken,s.backup_start_date,CASE s.[type]WHEN 'D' THEN 'Full'WHEN 'I' THEN 'Differential'WHEN 'L' THEN 'Transaction Log'END as BackupType,s.server_name,s.recovery_modelFROM msdb.dbo.backupset sinner join msdb.dbo.backupmediafamily mON s.media_set_id = m.media_set_idWHERE s.database_name = 'BackupReport'ORDER BY database_name, backup_start_date, backup_finish_date |
这是基于我们例子的结果:
现在,我们具有某个特定数据库的所有备份过程的统计数据。有了这些数据,我们可以分析某个具体时期或不同备份类型的变化。
定制化脚本
l 这个脚本针对的是SQL Server 2005。如果你要在SQL Server 2000中运行这个脚本,那么接着你必须把列'recovery_model'从选择列表中删除。
l 这个脚本将创建由WHERE从句提供的某个特定数据库的数据。如果你想产生所有数据库的统计数据,那么只要修改上述脚本中的WHERE从句。
l 脚本的产生时间只有几秒。要获得几分钟或者几小时的时间,只需要把脚本第二行的datediff参数改成要求的时间单元。
l Msdb数据库中的backupset表具有额外的信息。如果需要额外的信息,那么下面列中的任何一列都可以增加到SELECT语句中。
列表 | 信息 |
[name] | 备份的逻辑名称 |
[user_name] | 执行备份的用户 |
[description] | 备份的描述 |
[first_lsn] | 第一个日志序列号 |
[last_lsn] | 最后一个日志序列号 |
[checkpoint_lsn] | 检查点日志序列号 |
[database_creation_date] | 数据库的创建日期 |
[compatibility_level] | 备份数据库的兼容性级别 |
[machine_name] | 开始备份的SQL Server名称 |
[is_password_protected] | 数据库备份有密码保护或者没有密码保护 |
[is_readonly] | 数据库备份被读取或者没有读取 |
[is_damaged] | 数据库备份损坏或者不损坏 |
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››备份Chrome(谷歌)浏览器扩展程序的技巧
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
更多精彩
赞助商链接