快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

监视sqlserver,监视居住

nagios 怎么监控sqlserver

1、下载需要的插件并安装

德钦网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联公司从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司

wget

安装:check_mssql_health

tar zxvf check_mssql_health-1.5.19.1.tar.gz

cd check_mssql_health-1.5.19.1

./configure -–with-nagios-user=nagios -–with-nagios-group=nagcmd–-prefix=/usr/local/nagios/

make

make install

2、安装与sqlserver通信需要的软件

1、安装freetds

安装包:freetds-0.91.tar.zip

unzip freetds-0.91.tar.zip

tar zxvf freetds-0.91.tar.gz

cd freetds-0.91

./configure –prefix=/usr/local/freetds–with-tdsver=8.0 –enable-msdblib

make make install

2、设置环境变量并安装freetds-dev、libdbd-freetds

vim /etc/profile 添加如下行

export SYBASE=/usr/local/freetds

source /etc/profile 让配置立即生效

echo “/usr/local/freetds/lib/” /etc/ld.so.conf.d/freetds.conf

/sbin/ldconfig

apt-get install freetds-dev libdbd-freetds

3、安装DBI

tar zxvf DBI-1.627.tar.gz

cd DBI-1.627

perl Makefile.PL

make

make test (测试是否正确可不测试)

make install

4、安装DBD-Sybase

tar zxvf DBD-Sybase-1.15.tar.gz

cd DBD-Sybase-1.15

perl Makefile.PL

make

make test

make install

5、修改配置文件

vim /usr/local/freetds/etc/freetds.conf

[global]

; tds version = 8.0

; dump file =/tmp/freetds.log

; debug flags = 0xffff

# command andconnection timeouts

; timeout = 10

; connect timeout = 10

# If you getout-of-memory errors, it may mean that your client

# is trying toallocate a huge buffer for a TEXT field.

# Try setting 'textsize' to a more reasonable limit

text size = 64512

[231sql]

host =192.168.10.231

port = 1433

tds version = 8.0

6、测试

cd /usr/local/nagios/libexec

./check_mssql_health -server 231sql -usernagios -password nagios -mode list-databases

显示如下:

ReportServer

ReportServerTempDB

TSNRReportGuest

master

model

msdb

tempdb

OK - have fun (成功)

如何监视和查看sql server的性能

作为DBA,每个人都会用一系列计数器来监视SQLSERVER的运行环境,使用计数器,既可以衡量当前的数据库的性能,还可以和以前的性能进行对比。我们也可以一直以快速和简单的方法把计数器做了一张图表来识别数据库的性能的变化情况,来分析数据库性能的趋势。

怎样实时监控sqlserver数据库内记录的变化

创建表,存储每天的表空间占用情况

CREATE TABLE [dbo].[t_rpt_table_spaceinfo](

[table_name] [sysname] NOT NULL,

[record_date] [date] NOT NULL,

[record_time] [time](7) NOT NULL,

[rows_count] [bigint] NULL,

[reserved] [bigint] NULL,

[data_size] [bigint] NULL,

[index_size] [bigint] NULL,

[unused] [bigint] NULL,

CONSTRAINT [PK_t_rpt_table_spaceinfo] PRIMARY KEY CLUSTERED

(

[table_name] ASC,

[record_date] ASC,

[record_time] ASC

)

)

2. 新建作业

新建作业,作业计划每天凌晨运行一次,每天记录表占用的空间情况,存储到上一步建立的表中

作业中执行的T-SQL代码为:

SET NOCOUNT ON

/*创建临时表,存放用户表的空间及数据行数信息*/

CREATE TABLE #tablespaceinfo

(

nameinfo VARCHAR(500) ,

rowsinfo BIGINT ,

reserved VARCHAR(20) ,

datainfo VARCHAR(20) ,

index_size VARCHAR(20) ,

unused VARCHAR(20)

)

DECLARE @tablename VARCHAR(255);

/*使用游标,循环得到表空间使用情况*/

DECLARE Info_cursor CURSOR

sql server 活动监视器

应该不是配置上的问题,你可以使用SQLServer的事件探查器来看下自己的数据库中那个地方占用CPU和内存比较多,来进行下优化,另外可以找找是否是有地方有没释放的资源,比如临时表之类的。

如何监控sqlserver 性能 死锁

具体步骤如下:

1.首先使用下面的命令,将有关的跟踪标志启用。

SQL codeDBCC TRACEON (3605,1204,1222,-1)

说明:

3605

将DBCC的结果输出到错误日志。

1204 返回参与死锁的锁的资源和类型,以及受影响的当前命令。

1222

返回参与死锁的锁的资源和类型,以及使用了不符合任何 XSD 架构的 XML 格式的受影响的当前命令(比1204更进一步,SQL

2005及以上可用)。

-1 以全局方式打开指定的跟踪标记。

以上跟踪标志作用域都是全局,即在SQL

Server运行过程中,会一直发挥作用,直到SQL Server重启。

如 果要确保SQL Server在重启后自动开启这些标志,可以在SQL

Server服务启动选项中,使用 /T 启动选项指定跟踪标志在启动期

间设置为开。(位于SQL Server配置管理器-SQL

Server服务-SQL Server-属性-高级-启动参数)

在运行上面的语句后,当SQL

Server中发生死锁时,已经可以在错误日志中看到了,但还不够直观(和其它信息混在一起)。(SSMS

- SQL Server实例 -

管理 - SQL Server日志)

2.建表,存放死锁记录

SQL codeUSE [Cole] --Cole是我的示例数据库,你可以根据实际情况修改。 GO

CREATE TABLE DeadLockLog ( id int IDENTITY (1, 1) NOT NULL, LogDate DATETIME, ProcessInfo VARCHAR(10), ErrorText VARCHAR(MAX) )

GO

3.建立JOB

新建一个JOB(假设名称为DeadLockJob),在"步骤"中新建一步骤,随便写一个步骤名称,数据库为"Cole",在"命令"栏中输入以下语句:

SQL code--新建临时表 IF OBJECT_ID('tempdb.dbo.#ErrorLog') IS Not Null

DROP TABLE #ErrorLog

CREATE TABLE #ErrorLog (Id int IDENTITY (1, 1) NOT NULL, a DATETIME, b VARCHAR(10), c VARCHAR(MAX)) --将当前日志记录插入临时表

INSERT INTO #ErrorLog EXEC master.dbo.sp_readerrorlog --将死锁信息插入用户表

insert DeadLockLog

select a, b, c from #ErrorLog where id = (select MAX(id) from #ErrorLog WHERE c Like '%Deadlock encountered%')

DROP TABLE #ErrorLog

4.新建警报

在"新建警报"窗体的"常规"选项卡中,进行以下设置:

名称:可根据实际自行命名,这里我用DeadLockAlert

类型:选择"SQL

Server性能条件警报"

对象:SQLServer:Locks

计数器:Number of

Deadlocks/sec

实例:_Total

计数器满足以下条件时触发警报:高于

值:0

在"响应"选项卡中,选中"执行作业",并选择步骤3中我们新建的作业(即DeadlockJob)

到这里为止,我们已经完成了全部步骤,以后,你就可以随时查询DeadLockLog表,来显示死锁信息了。

如何用Procmon.exe来监视SQLSERVER的logwrite大小

转载SQL server 日志写(log write)的最小大小是多少呢?

为此我做了个试验(Windows 7+SQL server 2012)

1)我把磁盘格式化,最小分配单元为4kb

2)我把log 放到磁盘上

3) 我commit一个非常小的事务

为了与文章中的测试环境一样

我给出这次的数据库所在盘符的分配单元的截图

测试脚本:

1 USE [Northwind]

2 GO

3 CREATE TABLE t1 ( c1 INT )

4 GO

5 BEGIN TRAN

6 INSERT  INTO t1

7 VALUES  ( 1 )

8 COMMIT

我们怎麽来测试呢??

第一步:首先我们当然要打开SSMS,然后拷贝脚本进去啦,哈哈

第二步:要找到SQLSERVER的进程编号,因为我的机器安装了SQL2005,SQL2008,SQL2012

所以需要找一下SQL2005的进程编号是多少

第三步:打开服务管理器,我安装SQL2005的时候使用的是默认实例,那么找到默认实例的SQLSERVER服务,

然后看这个服务用的是哪个帐户来登录的

第四步:打开任务管理器,看一下SQL2005对应的是哪个进程

找到啦,进程编号是1736

当然啦,如果你的电脑只安装了一个SQLSERVER,只有一个默认实例就不用这麽麻烦了

第五步:打开Procmon.exe

先简单介绍一下一些按钮的作用

捕获事件,其实这个软件跟SQLSERVER profiler一样,捕获事件就相当于“开始跟踪”

然后下面的显示框会一条一条的显示事件信息,相当于profiler里面跟踪记录,一条一条记录显示给你看

事件种类:有注册表,文件系统,进程和线程,网络,性能

就像profiler里面的新建跟踪,里面也有很多的事件给你选择

第六步:因为我这里只是观察logwrite,所以只需要监控文件系统就可以了,注册表、网络这几个按钮不用点击

第七步:过滤:可以过滤的内容比较多,我这里就选择只显示SQL2005进程的内容

确定之后就可以点击OK了

开始测试

测试一:

多次执行刚才的测试脚本

1 BEGIN TRAN

2 INSERT  INTO t1

3 VALUES  ( 1 )

4 COMMIT

但是由于太多与磁盘相关的记录了,我们怎麽看跟事务日志相关的记录呢??

我们可以使用高亮功能

添加两个过滤条件:

operation 是writefile

path是 E:\数据库文件2013-10-30\northwnd.ldf

符合上面两个过滤条件的记录都将高亮显示

我们可以使用高亮功能

添加两个过滤条件:

operation 是writefile

path是 E:\数据库文件2013-10-30\northwnd.ldf

符合上面两个过滤条件的记录都将高亮显示

SQL server 日志写的最小大小都是512bytes,就是一个扇区的大小

跟文章中说的基本一样

为什麽基本一样,因为我发现有一条记录是2.5MB,宋大师说:

上面那些8M和4M的磁盘写,应该是日志增长所导致的,所以我觉的不能和log write混淆吧?


分享文章:监视sqlserver,监视居住
文章路径:http://6mz.cn/article/dsdggsh.html

其他资讯