WEB开发网
开发学院数据库MSSQL Server SQL Server备份历史记录分析 阅读

SQL Server备份历史记录分析

 2008-10-24 10:07:07 来源:WEB开发网   
核心提示:问题 在数据库管理员的日常任务中,数据库备份占据了很重要的位置,SQL Server备份历史记录分析,这个任务一般通过维护计划、定期的SQL Server Agent Jobs或者第三方工具的执行来完成,考虑到备份的重要性,l Msdb数据库中的backupset表具有额外的信息,如果需要额外的信息,有必要定期地分析这

问题

在数据库管理员的日常任务中,数据库备份占据了很重要的位置。这个任务一般通过维护计划、定期的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_model

FROM msdb.dbo.backupset s

inner join msdb.dbo.backupmediafamily m

ON s.media_set_id = m.media_set_id

WHERE s.database_name = 'BackupReport'

ORDER BY database_name, backup_start_date, backup_finish_date

这是基于我们例子的结果:

SQL Server备份历史记录分析

现在,我们具有某个特定数据库的所有备份过程的统计数据。有了这些数据,我们可以分析某个具体时期或不同备份类型的变化。

定制化脚本

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]

数据库备份损坏或者不损坏

Tags:SQL Server 备份

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接