SQL Server数据库管理是一项复杂而又充满压力的工作。数据库管理员的职责覆盖性能,业务数据以及SQL Server数据库的完整性和安全性。
SQL Server数据库管理是一项复杂而又充满压力的工作。数据库管理员的职责覆盖性能,业务数据以及SQL Server数据库的完整性和安全性。为了履行他们的职责并让保证业务数据可用性,DBA必须对SQL Server进行例行检查以监控它们的状态。
那么,SQL Server有哪些关键任务需要DBA放到日常list中的呢?本文就将介绍六个SQL Server DBA的日常职责。
验证所有的SQL Server实例状态良好
检查网络上每个SQL Server的连接性,确保所有的SQL Server实例状态良好。确保所有在SQL Server实例上的数据库是在线的。除此之外,验证硬盘上数据库数据的存储,这可以通过对每个SQL Server实例上的每个数据库执行Database Consistency Checker(数据库一致性检查器DBCC)的CHECKDB命令来完成。PHYSICAL_ONLY和DBCC CHECKDB结合使用可以执行更快,这在数据库非常大和服务器并不强大的时候是很有用的。
检查SQL Server错误日志的异常事件
无论设计并测试的数据库如何完善,也是有可能发生错误的。SQL Server在操作系统和应用程序日志文件中存储了警告以及错误消息,所以每天审查错误日志有助于快速而轻松地识别在SQL Server环境中已经发生的异常错误和安全问题。默认情况下,SQL Server会保留一份当前日志和6份归档日志。你可以使用SQL Server Management Studio Log Viewer(SQL Server管理平台日志查看器)或sp_readerrorlog未记录存储过程来查看SQL Server错误日志。
验证所有既定工作执行是否成功
管理SQL Server Agent的工作是DBA的一项重要职责,因为它们对于任何SQL Server环境都是至关重要的。它们被创建并安排来执行关键业务和操作任务。因此,对于跟踪所有未执行成功的既定工作是很重要的。
SQL Server Agent存储了任务,警报和操作的历史信息。历史信息是存储在msdb数据库的sysjobhistory表中的。你可以用Job Activity Monitor(任务活动监控器)来查看任务和任务步骤的历史。此外,你还可以在sysjobhistory中查询失败任务。例如,可以从下面的查询看出是追踪了过去24小时的失败任务:
验证数据库是否成功备份
一个DBA的关键管理任务之一是定期备份数据库。这是因为可靠的备份在确保数据恢复中是最为重要的工具。因此,对于DBA来说,检查数据库备份并验证它们已经成功创建和保存在安全位置是很重要的。
SQL Server在msdb数据库中保存了关于每份成功备份的信息。关于每个成功备份操作的信息是存储在backupset表中的,而关于每个备份物理文件的信息则存在backupmediafamily表中。举例来说,我写了以下查询,它可以用来为任意给定的SQL Server实例检查所有数据库的备份状态:
监控磁盘空间
检查在每个SQL Server上的空闲空间的数量并确保不是处在低磁盘空间状态。为了获得最佳性能,建议所有磁盘应至少保持15%或更多的可用空闲空间。如果磁盘空间相比前一天有重大变动,你还应该调查磁盘空闲空间波动的原因。通常来说事务日志的异常增长可以引起磁盘空间的重大变动。
要监控磁盘空间,你可以使用未记录的存储过程xp_fixeddrives.但是xp_fixeddrives是有限制的,即它只能用于返回关于固定硬盘的信息,而非安装点。要监控操作系统卷上的空闲空间,包括安装点,你可以使用sys.dm os volume stats动态管理功能。这一动态管理功能会返回关于数据库文件所在的操作系统卷的信息。例如,你可以如下一样查询此动态管理功能,来获取任意给定SQL Server实例上的硬盘空闲空间信息:
或者,你可以编写一个PowerShell脚本或公共语言运行时(CLR),过程来监控磁盘和安装点的空闲空间。
检查数据库大小和增长设置
SQL Server实例上的数据库大小是一个可测量的量,应该对每个单独的SQL Server实例进行追踪。要这样做的原因是如果数据库或事务文件耗尽空间,那么其所有正在执行的事务都会失败。因此,监控和管理数据库的增长是至关重要的。
你可以使用sys.master文件系统视图来监控数据库增长设置和文件大小。此系统视图会为所有数据库返回所有文件的状态,也包括那些处于离线状态的。例如,以下查询会为每个数据库返回每个数据库文件的文件名,大小,位置和增长设置。
网友评论