四时宝库

程序员的知识宝库

sqlserver数据库日常巡检规范之上篇,值得收藏

概述

数据库巡检是数据库管理员保证数据库健康的必要维护项,全面的巡检可以及早的发现问题、解决问题、预防问题。今天主要分享一下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方面的内容,感兴趣的朋友可以关注下~


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接