废话不多说,直接开始干货输出。作为数据库管理人员,日常巡检是很重要的。以下都是在日常工作中总结出来的经验教训,分享给大家吗,同时欢迎大家交流指正。
1、服务器磁盘剩余空间是否正常:
根据数据增长速度大小预估磁盘剩余空间的最小值,如果磁盘剩余空间过小极有可能因为某个时间段LOG文件猛烈增长而导致磁盘空间耗尽,从而导致SQLserver库挂起。整个服务就挂掉了。
2、服务器配置情况是否正常:
主要查看系统配置可供系统使用的物理内存 、空闲物理内存、总页面大小(包含虚拟内存)、空闲页面大小、操作系统内存状态、可用物理内存是否充足。
3、数据库实例基本信息是否正常:
主要查看实例最近一次启动时间,如果最近一次启动是非计划内的启动, 则需要检查系统日志。
以及sqlserver agent服务是否启动,生产库的agent服务最好是自动启动,因为那些排程作业,都需要agent服务。
4数据库实例内存使用情况正常
通常需要查看哪些占用内存
Memroy Clerk 占用内存情况(TOP 10)
MEMORYCLERK_SQLBUFFERPOOL
CACHESTORE_SQLCP
OBJECTSTORE_LOCK_MANAGER
MEMORYCLERK_SQLCLR
MEMORYCLERK_SOSMEMMANAGER
MEMORYCLERK_SOSNODE
CACHESTORE_PHDR
USERSTORE_SCHEMAMGR
MEMORYCLERK_SQLLOGPOOL
MEMORYCLERK_SQLSTORENG
5、数据库实例当前会话情况是否正常
查看当前状况下又没有被挂起的会话,被阻塞的会话、正在回滚的会话、等待自旋锁的会话、持有事务的会话。以及查看那些数据库创建的连接数最多,是否在正常范围内。
6、在线数据库基本信息(文件及增长)是否正常
查看数据库的文件信息,文件自增长设置。
特别注意tempDB所在位置的容量,及tempDB的自增长设置及初始设置
7数据库实例高级选项
a. backup compression SQL Server 2008及以后建议压缩备份,
b. clr enabled SQL Server 是否可以运行用户程序集,只在需要时启用
c. cost threshold for parallelism 并行度阀值,建议保持默认值
d. lightweight pooling 建议保持默认值0不切换到线程式
e. max degree of parallelism 建议调整最大并行度,而不是默认值
f. max server memory (MB) 支持是数据库最大内存,设置合适的值,而不是默认值
g. optimize for ad hoc workloads 建议修改为1,可优化ad-hoc计划
h. priority boost 建议保持默认值0,其优先级基数为7
i. remote admin connections 建议保持默认值0,只允许本地连接使用DAC
j. Minimum size of server memory (MB)
8、数据库实例存在的链接服务器是否正常:
9、数据库实例灾备及高可用配置情况重要的生产数据库,都应用构建双机环境。并检查副本同步没有出现阻塞延迟。
10、数据库备份状况系统库、生产库都应该有备份策略。
11、数据库作业执行情况注意最近运行出错的作业或长时间运行的作业。
12、用户数据库表大小(TOP 10)对于大的表,应该考虑做数据归档。
13、数据库累计负载分析数据库实例启动以后的一些性能指标值。
14、数据库当前负载分析数据库当前的CPU、IO压力以及可能出现的阻塞情况。
15、数据库存在的孤立事务超过30分钟还未提交的事务可以考虑手动清除
16、数据库IO超时错误