人人都是 DBA(IX)服务器信息收集脚本汇编

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

什么?有个 SQL 执行了 8 秒!

哪里出了问题?臣妾不知道啊,得找 DBA 啊。

DBA 人呢?离职了!!擦!!!

程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA"。

索引

  1. SQL Server 安装的是什么版本
  2. Windows 操作系统是什么版本
  3. SQL Server 是什么时候安装的
  4. 服务器主机名是什么
  5. 硬件服务器是谁制造的
  6. 服务器硬件是什么配置
  7. 服务器的 CPU 有几个核
  8. 服务器的 CPU 是什么型号
  9. SQL Server 启动了哪些服务
  10. 查看指定服务运行状态
  11. SQL Server 的 IP 地址信息
  12. SQL Server 监听了哪些 TCP 端口
  13. SQL Server 配置项信息
  14. 当前连接的 Session 有多少
  15. 每个数据库上的 Session 数量是多少
  16. 按主机查询 Session 数量
  17. 哪个 IP 地址上建立的连接最多
  18. 查看 Table 的基本属性
  19. 查看 Table 的数据行数

SQL Server 安装的是什么版本

SELECT @@VERSION AS [SQL Server Version];

版本号说明:

 Version 

 Product 

 Release Date 

 10.0.1600 

 SQL Server 2008 RTM 

 August 7, 2008 

 10.0.2531

 SQL Server 2008 SP1 RTM 

 April 7, 2009

 10.0.4000 

 SQL Server 2008 SP2 RTM

 September 29, 2010 

 10.0.5500

 SQL Server 2008 SP3 RTM

 October 6, 2011

 10.0.6000

 SQL Server 2008 SP4 RTM

 September 30, 2014

 10.50.1600 

 SQL Server 2008 R2 RTM

 April 21, 2010

 10.50.2500

 SQL Server 2008 R2 SP1 RTM 

 July 11, 2011

 10.50.4000

 SQL Server 2008 R2 SP2 RTM

 July 26, 2012

 10.50.6000

 SQL Server 2008 R2 SP3 RTM

 September 26, 2014

 11.0.2100

 SQL Server 2012 RTM

 March 6, 2012

 11.0.3000

 SQL Server 2012 SP1 RTM

 November 6, 2012

 11.0.5058

 SQL Server 2012 SP2 RTM

 June 10, 2014

 12.0.2000

 SQL Server 2014 RTM

 April 1, 2014

缩略语说明:

 Version 

 Description 

 CTP 

 Community Technology Preview (Beta Release)  

 RC

 Release Candidate 

 RTM 

 Released To Manufacturing

 CU

 Cumulative Update

 SP

 Service Pack

 GDR

 General Distribution Release

 QFE

 Quick Fix Engineering

比如,下面查到的版本号:

  • Build Version : 11.00.3153
  • File Version : 2011.110.3153.0

可以对应到 2977326 MS14-044: Description of the security update for SQL Server 2012 Service Pack 1 (GDR) August 12, 2014

Windows 操作系统是什么版本

SELECT windows_release
    ,windows_service_pack_level
    ,windows_sku
    ,os_language_version
FROM sys.dm_os_windows_info WITH (NOLOCK)
OPTION (RECOMPILE);

其中 windows_release 中的版本号代表着:

 Version 

 Windows 

 6.3 

 Windows 8.1 or Windows Server 2012 R2  

 6.2

 Windows 8 or Windows Server 2012 

 6.1 

 Windows 7 or Windows Server 2008 R2

 6.0

 Windows Vista or Windows Server 2008

 5.2

 Windows XP or Windows Server 2003

其中 windows_sku 代表着:

 SKU Code 

 Edition 

 4 

 Enterprise Edition  

 7

 Standard Edition 

 48 

 Professional Edition

SQL Server 2008 中没有 sys.dm_os_windows_info,可以使用 @@VERSION 来看了。

SELECT @@VERSION AS [SQL Server Version];

SQL Server 是什么时候安装的

SELECT @@SERVERNAME AS [Server Name]
    ,create_date AS [SQL Server Install Date]
FROM sys.server_principals WITH (NOLOCK)
WHERE NAME = N'NT AUTHORITY\SYSTEM'
    OR NAME = N'NT AUTHORITY\NETWORK SERVICE'
OPTION (RECOMPILE);

服务器主机名是什么

复制代码
SELECT SERVERPROPERTY('MachineName') AS [MachineName]
    ,SERVERPROPERTY('ServerName') AS [ServerName]
    ,SERVERPROPERTY('InstanceName') AS [Instance]
    ,SERVERPROPERTY('IsClustered') AS [IsClustered]
    ,SERVERPROPERTY('ComputerNamePhysicalNetBIOS') AS [ComputerNamePhysicalNetBIOS]
    ,SERVERPROPERTY('Edition') AS [Edition]
    ,SERVERPROPERTY('ProductLevel') AS [ProductLevel]
    ,SERVERPROPERTY('ProductVersion') AS [ProductVersion]
    ,SERVERPROPERTY('ProcessID') AS [ProcessID]
    ,SERVERPROPERTY('Collation') AS [Collation]
    ,SERVERPROPERTY('IsFullTextInstalled') AS [IsFullTextInstalled]
    ,SERVERPROPERTY('IsIntegratedSecurityOnly') AS [IsIntegratedSecurityOnly];
复制代码

硬件服务器是谁制造的

EXEC xp_readerrorlog 0, 1, N'Manufacturer'; 

服务器硬件是什么配置

复制代码
SELECT cpu_count AS [Logical CPU Count]
    ,scheduler_count
    ,hyperthread_ratio AS [Hyperthread Ratio]
    ,cpu_count / hyperthread_ratio AS [Physical CPU Count]
    ,physical_memory_kb / 1024 AS [Physical Memory (MB)]
    ,committed_kb / 1024 AS [Committed Memory (MB)]
    ,committed_target_kb / 1024 AS [Committed Target Memory (MB)]
    ,max_workers_count AS [Max Workers Count]
    ,affinity_type_desc AS [Affinity Type]
    ,sqlserver_start_time AS [SQL Server Start Time]
    ,virtual_machine_type_desc AS [Virtual Machine Type]
FROM sys.dm_os_sys_info WITH (NOLOCK)
OPTION (RECOMPILE);
复制代码

SQL Server 2008 R2 可以使用:

复制代码
SELECT cpu_count AS [Logical CPU Count]
    ,hyperthread_ratio AS [Hyperthread Ratio]
    ,cpu_count / hyperthread_ratio AS [Physical CPU Count]
    ,physical_memory_in_bytes / 1048576 AS [Physical Memory (MB)]
    ,sqlserver_start_time
    ,affinity_type_desc
FROM sys.dm_os_sys_info WITH (NOLOCK)
OPTION (RECOMPILE);
复制代码

服务器的 CPU 有几个核

EXEC sys.xp_readerrorlog 0
    ,1
    ,N'detected'
    ,N'socket';

服务器的 CPU 是什么型号

EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE'
    ,N'HARDWARE\DESCRIPTION\System\CentralProcessor\0'
    ,N'ProcessorNameString';

SQL Server 启动了哪些服务

复制代码
SELECT servicename
    ,process_id
    ,startup_type_desc
    ,status_desc
    ,last_startup_time
    ,service_account
    ,is_clustered
    ,cluster_nodename
    ,[filename]
FROM sys.dm_server_services WITH (NOLOCK)
OPTION (RECOMPILE);
复制代码

查看指定服务运行状态

复制代码
EXEC master.dbo.xp_servicecontrol 'QUERYSTATE'
    ,'MSSQLServer'

EXEC master.dbo.xp_servicecontrol 'QUERYSTATE'
    ,'SQLServerAgent'

EXEC master.dbo.xp_servicecontrol 'QUERYSTATE'
    ,'SQLBrowser'
复制代码

SQL Server 的 IP 地址信息

复制代码
SELECT CONNECTIONPROPERTY('net_transport') AS net_transport
    ,CONNECTIONPROPERTY('protocol_type') AS protocol_type
    ,CONNECTIONPROPERTY('auth_scheme') AS auth_scheme
    ,CONNECTIONPROPERTY('local_net_address') AS local_net_address
    ,CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port
    ,CONNECTIONPROPERTY('client_net_address') AS client_net_address;

SELECT SERVERPROPERTY(N'MachineName') AS MachineName;
复制代码

SQL Server 监听了哪些 TCP 端口

复制代码
SELECT listener_id
    ,ip_address
    ,is_ipv4
    ,port
    ,type_desc
    ,state_desc
    ,start_time
FROM sys.dm_tcp_listener_states WITH (NOLOCK)
ORDER BY listener_id
OPTION (RECOMPILE);
复制代码

SQL Server 配置项信息

复制代码
SELECT [name]
    ,value
    ,value_in_use
    ,minimum
    ,maximum
    ,[description]
    ,is_dynamic
    ,is_advanced
FROM sys.configurations WITH (NOLOCK)
ORDER BY [name]
OPTION (RECOMPILE);
复制代码

通常会关注:

  • backup compression default :通常为 1;
  • cost threshold for parallelism 
  • clr enabled 
  • lightweight pooling :通常为 0;
  • max degree of parallelism
  • max server memory (MB)
  • optimize for ad hoc workloads :通常为 1;
  • priority boost :通常为 0;

当前连接的 Session 有多少

复制代码
SELECT login_name
    ,[program_name]
    ,COUNT(session_id) AS [session_count]
FROM sys.dm_exec_sessions WITH (NOLOCK)
GROUP BY login_name
    ,[program_name]
ORDER BY COUNT(session_id) DESC
OPTION (RECOMPILE);
复制代码

每个数据库上的 Session 数量是多少

复制代码
SELECT DB_NAME(dbid) AS DBName
    ,COUNT(dbid) AS NumberOfConnections
    ,loginame AS LoginName
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid
    ,loginame
ORDER BY 1, 2, 3;
复制代码

按主机查询 Session 数量

复制代码
CREATE TABLE #tbl (
    spid INT
    ,ecid INT
    ,[status] VARCHAR(50)
    ,loginame VARCHAR(255)
    ,hostname VARCHAR(255)
    ,blk VARCHAR(50)
    ,dbname VARCHAR(255)
    ,cmd VARCHAR(255)
    ,request_id VARCHAR(255)
    )
GO

INSERT INTO #tbl
EXEC sp_who;

SELECT COUNT(0) AS CountByHostName
    ,hostname
FROM #tbl
GROUP BY hostname;

SELECT COUNT(0) AS CountByDBName
    ,dbname
FROM #tbl
GROUP BY dbname;

DROP TABLE #tbl
GO
复制代码

哪个 IP 地址上建立的连接最多

复制代码
SELECT ec.client_net_address
    ,es.[program_name]
    ,es.[host_name]
    ,es.login_name
    ,COUNT(ec.session_id) AS [connection count]
FROM sys.dm_exec_sessions AS es WITH (NOLOCK)
INNER JOIN sys.dm_exec_connections AS ec WITH (NOLOCK) ON es.session_id = ec.session_id
GROUP BY ec.client_net_address
    ,es.[program_name]
    ,es.[host_name]
    ,es.login_name
ORDER BY ec.client_net_address
    ,es.[program_name]
OPTION (RECOMPILE);
复制代码

查看 Table 的基本属性

复制代码
SELECT [name]
    ,create_date
    ,lock_on_bulk_load
    ,is_replicated
    ,has_replication_filter
    ,is_tracked_by_cdc
    ,lock_escalation_desc
FROM sys.tables WITH (NOLOCK)
ORDER BY [name]
OPTION (RECOMPILE);
复制代码

查看 Table 的数据行数

复制代码
SELECT OBJECT_NAME(object_id) AS [ObjectName]
    ,SUM(Rows) AS [RowCount]
    ,data_compression_desc AS [CompressionType]
FROM sys.partitions WITH (NOLOCK)
WHERE index_id < 2 --ignore the partitions from the non-clustered index if any
    AND OBJECT_NAME(object_id) NOT LIKE N'sys%'
    AND OBJECT_NAME(object_id) NOT LIKE N'queue_%'
    AND OBJECT_NAME(object_id) NOT LIKE N'filestream_tombstone%'
    AND OBJECT_NAME(object_id) NOT LIKE N'fulltext%'
    AND OBJECT_NAME(object_id) NOT LIKE N'ifts_comp_fragment%'
    AND OBJECT_NAME(object_id) NOT LIKE N'filetable_updates%'
    AND OBJECT_NAME(object_id) NOT LIKE N'xml_index_nodes%'
GROUP BY object_id
    ,data_compression_desc
ORDER BY SUM(Rows) DESC
OPTION (RECOMPILE);
复制代码

 

《人人都是 DBA》系列文章索引:

 序号 

 名称 

1

 人人都是 DBA(I)SQL Server 体系结构

2

 人人都是 DBA(II)SQL Server 元数据

3

 人人都是 DBA(III)SQL Server 调度器

4

 人人都是 DBA(IV)SQL Server 内存管理

5

 人人都是 DBA(V)SQL Server 数据库文件

6

 人人都是 DBA(VI)SQL Server 事务日志

7

 人人都是 DBA(VII)B 树和 B+ 树

8

 人人都是 DBA(VIII)SQL Server 页存储结构

9

 人人都是 DBA(IX)服务器信息收集脚本汇编

10

 人人都是 DBA(X)资源信息收集脚本汇编

11

 人人都是 DBA(XI)I/O 信息收集脚本汇编

12

 人人都是 DBA(XII)查询信息收集脚本汇编

13

 人人都是 DBA(XIII)索引信息收集脚本汇编

14

 人人都是 DBA(XIV)存储过程信息收集脚本汇编 

15

 人人都是 DBA(XV)锁信息收集脚本汇编









本文转自匠心十年博客园博客,原文链接:http://www.cnblogs.com/gaochundong/p/everyone_is_a_dba_server_info_collection.html,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
2月前
|
存储 Unix 数据挖掘
服务器数据恢复—DS4800存储lvm信息丢失数据恢复案例
DS4800服务器存储lvm信息丢失,基于DS4800的aix小机卷丢失。
服务器数据恢复—DS4800存储lvm信息丢失数据恢复案例
|
9天前
|
人工智能 运维 安全
专访浪潮信息:AI 原生时代,浪潮信息引领服务器操作系统创新 全面贡献龙蜥社区
分享了关于 AI 原生化趋势下服务器操作系统进化的思考,以及浪潮信息在龙蜥社区开源贡献的思路、成果与未来技术发展规划。
专访浪潮信息:AI 原生时代,浪潮信息引领服务器操作系统创新 全面贡献龙蜥社区
|
28天前
|
运维 监控 数据库
自动化运维:使用Python脚本实现服务器监控
【8月更文挑战第31天】在这篇文章中,我们将探索如何利用Python编写简单的脚本来实现对服务器的基本监控。通过学习和应用这些技术,你可以快速检测服务器的状态,包括CPU使用率、内存占用和磁盘空间等关键指标。这不仅有助于及时发现问题,还能提升运维效率。文章将逐步引导你理解监控的重要性,并展示如何从零开始构建自己的监控工具。
|
1月前
|
监控 数据挖掘 Linux
Linux服务器PBS任务队列作业提交脚本的使用方法
【8月更文挑战第21天】在Linux服务器环境中,PBS任务队列能高效管理及调度计算任务。首先需理解基本概念:作业是在服务器上执行的任务;队列则是等待执行任务的列表,具有不同的资源限制与优先级;节点指分配给作业的计算资源。
|
1月前
|
安全 C#
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
|
1月前
|
网络安全
mac下通过ssh脚本实现免账号密码连接运服务器
mac下通过ssh脚本实现免账号密码连接运服务器
36 3
|
1月前
|
网络协议 安全 Unix
6! 用Python脚本演示TCP 服务器与客户端通信过程!
6! 用Python脚本演示TCP 服务器与客户端通信过程!
|
1月前
|
监控 Linux Shell
"揭秘!一键掌控Linux服务器健康的秘密武器——超实用系统检查脚本,让你的服务器稳如老狗,告别宕机烦恼!"
【8月更文挑战第14天】服务器宕机或资源耗尽会严重影响业务。为此,你需要一个Linux系统检查脚本来守护服务器健康。它可以自动检测潜在问题如磁盘满载、内存泄漏等,避免服务中断。脚本应包括磁盘空间、内存/CPU使用、系统时间准确性、关键服务状态及系统日志分析等检查项。通过编写并定期运行这样的脚本,可以显著提高服务器的稳定性和可靠性。
35 1
|
27天前
|
存储 运维 监控
自动化运维:使用Python脚本进行服务器监控
【8月更文挑战第31天】在数字化时代,服务器的稳定运行对于企业至关重要。本文将介绍如何使用Python编写一个简单的服务器监控脚本,帮助运维人员及时发现并解决潜在问题。我们将从基础的服务器资源监控开始,逐步深入到日志分析与报警机制的实现。通过实际代码示例和操作步骤,使读者能够快速掌握自动化监控的技能,提升工作效率。
|
1月前
|
运维 监控 网络安全
自动化运维:使用Python脚本实现服务器批量管理
【8月更文挑战第2天】在现代IT运维领域,效率和准确性是衡量工作质量的关键指标。手动管理大量服务器不仅耗时且容易出错,因此自动化运维工具的开发变得至关重要。本文将介绍如何利用Python编写一个简单的自动化脚本,实现对多台服务器的批量管理,包括自动更新、配置同步以及日志收集等功能。通过实际案例展示,我们能够看到自动化运维如何提升工作效率并减少人为错误。

热门文章

最新文章