扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
SQLServer2005以上版本提供了一个数据库镜像监视器,不过打开它的方法比较特别。有了图形界面以后,SQLServer数据库镜像的维护难度跟成本大大降低了。
成都创新互联是一家集网站建设,新野企业网站建设,新野品牌网站建设,网站定制,新野网站建设报价,网络营销,网络优化,新野网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
1.首先,打开SMS,在任意一个数据库上面点右键,任务,启动数据库镜像监视器。
2.点击注册镜像数据库,在服务器实例下拉菜单中选择镜像数据库的实例名,如果没有,可以直接点连接,然后在链接到服务器窗口中进行设置,如下图所示:
3.设置好后点确定就出现如下窗口所示了:
4. 点击警告选项卡,可以设置对警告的阈值进行设置,如下图所示:
5.在步骤3的窗口上点击历史记录,就可以查看SQLServer数据库镜像运行的历史记录了。如下图所示:
1、下载需要的插件并安装
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 (成功)
如何监控sqlserver 慢查询
1,slow_query_log
这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。
2,long_query_time
当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。
3,slow_query_log_file
记录日志的文件名。
4,log_queries_not_using_indexes
这个参数设置为ON,可以捕获到所有未使用索引的SQL语句,尽管这个SQL语句有可能执行得挺快。
具体步骤如下:
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表,来显示死锁信息了。
你要闲着没事,系统的性能监控器里sql server的每个参数都可以看看啊,这要写可以写一本书了。
系统
内存: 可用字节数,page\sec
processor: processor time
physical disk:disk time
需要的话还有网络流量
至于sqlserver的监控,至少有
full scans/sec
cache hit ratio
transaction/sec
user connection
lock
number of dead lock/sec
query...
写一个存储过程,对表中的所有可否退回字段的值进行判断,如果为1,则对该项中审核时间和当前时间进行判断,如果相差15天就将可否退回改为0
这个存储过程用代理中的作业每天定时进行操作
这里有如果设置定时作业的方法
第一种,刚刚下载玩SQL SERVER 2008,还没有进行任何操作(任何操作的意思就是根本没打开过安装文件);
第二种,已经尝试过安装,并且按照向导进行了支持文件的安装。第一种,这种情况我没试,因为我自己不符合这种情况……不过看样子很简单,按键盘WIN+R弹出运行对话框,输入CMD运行,打开命令行对话框,进入到SQL SERVER 2008的安装根目录的路径,然后输入setup.exe /INSTALLSHAREDDIR="D:\\Program Files\\Microsoft SQL Server\\" /INSTALLSHAREDWOWDIR="D:\\Program Files (x86)\\Microsoft SQL Server\\"
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流