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

一文看懂SqlServer数据库触发器概念、原理及案例

概述 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,当对一个表进行操作( insert,delete, update)时就会激活它执

概述

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

【云技术在线】为您提供以下专业技术服务:

上云服务:上云架构设计,大流量高并发架构设计,混合云架构设计,上云迁移,云上容灾,跨国云访问加速等;

安全服务:等保咨询及实施,渗透测试,漏洞扫描,木马查杀,安全加固,应急响应,DDOS/CC防护,勒索病毒防护,安全托管等;

运维服务:Linux系统运维,数据恢复及备份,负载均衡集群搭建及维护,数据库集群搭建及维护,网站运行环境搭建及维护,系统性能调优,中间件性能调优,数据库性能调优,数据库读写分离,分库分表,性能(压力)测试,7*24小时监控及故障应急响应,故障排查,大流量高并发活动护航等。