概述
数据库巡检是数据库管理员保证数据库健康的必要维护项,全面的巡检可以及早的发现问题、解决问题、预防问题。今天主要分享一下sqlserver的一些巡检内容,仅供参考。
一、数据库空间及状态检查
1、所有数据库的大小
use dbname
go
exec sp_spaceused
go
2、所有数据库的状态
select name,
user_access_desc, --用户访问模式
state_desc, --数据库状态
recovery_model_desc, --恢复模式
page_verify_option_desc, --页检测选项
log_reuse_wait_desc --日志重用等待
from sys.databases ;
3、某个数据库的大小
按页面计算空间,有性能影响,基本准确,有时不准确
use dbname
go
exec sp_spaceused
go
4、对某个数据库,显示目录视图中的页数和行数错误并更正
--可以@updateusage = 'true',会运行dbcc updateusage
exec sp_spaceused @updateusage = 'true'
--显示目录视图中的页数和行数错误并更正
DBCC UPDATEUSAGE('test')
二、数据文件检查
1、查看某个数据库中的所有文件及大小
sp_helpfile
2、查看所有文件所在数据库、路径、状态、大小
select db_name(database_id) dbname,
type_desc, --数据还是日志
name, --文件的逻辑名称
physical_name, --文件的物理路径
state_desc, --文件状态
size * 8.0/1024 as '文件大小(MB)'
from sys.master_files
3、按区extent计算空间,没有性能影响,基本准确
这里把TotalExtents*64/1024,单位为MB,同时也适用于计算tempdb的文件大小,但不包括日志文件
dbcc showfilestats
三、日志文件检查
1、查看日志文件所在数据库、路径、状态、大小
select db_name(database_id) dbname,
type_desc, --数据还是日志
name, --文件的逻辑名称
physical_name, --文件的物理路径
state_desc, --文件状态
size * 8.0/1024 as '文件大小(MB)'
from sys.master_files
where type_desc = 'LOG'
2、所有数据库的日志的大小,空间使用率
dbcc sqlperf(logspace)
四、数据文件、日志文件的I/O统计信息
1、数据和日志文件的I/O统计信息,包含文件大小
select database_id,
file_id,
file_handle, --windows文件句柄
sample_ms, --自从计算机启动以来的毫秒数
num_of_reads,
num_of_bytes_read,
io_stall_read_ms, --等待读取的时间
num_of_writes,
num_of_bytes_written,
io_stall_write_ms,
io_stall, --用户等待文件完成I/O操作所用的总时间
size_on_disk_bytes --文件在磁盘上所占用的实际字节数
from sys.dm_io_virtual_file_stats(db_id('test'), --数据库id
1 ) --数据文件id
union all
select database_id,
file_id,
file_handle, --windows文件句柄
sample_ms, --自从计算机启动以来的毫秒数
num_of_reads,
num_of_bytes_read,
io_stall_read_ms, --等待读取的时间
num_of_writes,
num_of_bytes_written,
io_stall_write_ms,
io_stall, --用户等待文件完成I/O操作所用的总时间
size_on_disk_bytes --文件在磁盘上所占用的实际字节数
from sys.dm_io_virtual_file_stats( db_id('test'), --数据库id
2 ) --日志文件id
篇幅有限,所以就分成两部分做介绍了~
觉得有用的朋友多帮忙转发哦!
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~