① java后台怎样监控sql server数据库数据的变化
看来你是做日志记录,在SQL server 2005中建立一个触发器(delete,update\insert),针对table1,在触发器的代码中加上数据拷贝的SQL语句就可以了。
② 使用SQL Server2005,是Express版的;为了监控SQL Server安装了sqlserver。但是不知道这些表头代表什么。
这些表头全是数据库的字段,也就是实际数据的归类
按英文应该是有迹可查的
比如:textData 代表文本数据 binaryData 二进制数据 DatabaseID 数据库ID transcationID 转换ID NTUsername NT登录用户名 NTDomainName NT域名 HostName 本地HOST名。。。。
③ sqlserver2005监视器在哪
注:我现在的客户端装的是SQL SERVER 2005,服务器端装的是2000,跟这个有没有关系呢。我肯定跟这个没有关系的。
问题还是出现在身份验证上,或者是你数据库有损坏。
还有你服务器上的企业管理器能不能用活动监视器?能的话,数据库就没坏,
你再试试连接数据库引擎时用windows身份验证,用域管理员登陆
④ 安装Sql Server 2005出现“性能监视器计数器要求”错误,怎么办
解决方案:
在开始==>运行==>regedit.exe ,在注册表里找HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib 里面有Last Counter和Last Help选项 查看其相应的值之后
如果你安装的是中文版,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004里面找到 Counter 和Help 查看它们的最大值 ,在它们的最大值基础上加2赋给Last Counter和Last Help确定即可,无需重启。
如果你安装的是英文版,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009里找到 Counter 和Help 查看它们的最大值,执行上面的操作即可。
⑤ SQL Server 2005 如何时时监控数据变化
用profiler审计,记录sql语句
⑥ 如何监控sql server 2005 表的操作
--创建表
create table A_CheckUpdate(AID int,BinaryCheckSum int,Remark varchar(50))
--将表A的初始数据插入检测更新表中
insert into A_CheckUpdate select AID,Binary_CheckSum(*),'' from A
--你写一个通信 每隔一段时间 比如5秒钟检查一次
--查询A表被更新过的记录
select * from A_CheckUpdate
where exists(
select AID from A where A.AID=A_CheckUpdate.AID
and binary_checksum(*)<>A_CheckUpdate.BinaryCheckSum)
--如果是查看insert 或者delete的数据 请查看A_CheckUpdate是否有多余的ID 或者缺少的ID
select A.Id from A left join A_CheckUpdate on a.ID=A_CheckUpdate.ID
where A_CheckUpdate.ID is null
select A_CheckUpdate .Id from A right join A_CheckUpdate on a.ID=A_CheckUpdate.ID
where A.ID is null
⑦ 如何快速掌握SQL Server中的日志转移
如何快速掌握SQL Server中的日志转移
集群是一种实现高可用性的有效解决方案,有时它会适得其反。而且,它还非常昂贵。因此,数据库管理员可使用日志转移代替集群来提供较高的可用性。
日志转移是这样一种处理过程,它能将某一数据库中的事务日志文件依次转存到备份的数据库中,进而为这一数据库创建一个“近乎”热备份。SQL Server 2000的数据库引擎中设置了日志转移功能,并在其中进行处理。所以它会自动完成复原到备份服务器的进程,而不需要数据库管理员手动操作。只有你的产品服务器操作失败,你才需手动完成到备份服务器的复原进程。(注释:尽管SQL Server 7.0和2005中均有日志转移功能,但本文主要针对SQL Server 2000。)
为什么要使用日志转移?
日志转移是一种解决高可用性的措施,并且十分有效。同样作为高可用性的措施方案,日志转移相对集群来说,最大的.好处是它要便宜许多。这是因为,使用集群功能有硬件要求,而日志转移则不需要。
日志转移在数据库与数据库而非服务器与服务器之间进行;因此才有可能将备份数据库存储在你已用作其他用途的服务器上。但如果转移失败则有可能会出现问题,这时你可换用备份数据库,这种选择是可用的。
日志转移相对比较容易安装。SQL Server提供了非常完善的向导帮助你安装这个进程。
日志转移允许你保存分布在不同地理位置中的冗余数据,SQL Server的集群功能则很难做到这一点。这一特点十分出众,因为,当你的数据中心遭到灾难时,你仍能在备份服务器中将其恢复过来。而在相同的数据中心,如果你使用的是集群功能,你就会陷入麻烦。
日志转移的另一优点是你能将备份数据库作为报告数据库使用,这对许多公司来说是很不错的选择。但如果你决定了用这个备份数据库作报告使用,就必须注意它的局限性。使用原始数据库中的日志时,SQL Server 要求指定唯一的通道,所以,当日志文件正在被应用时,报告则不能同时进行。
使用日志转移要考虑的相关因素
在将日志转移作为高可用性的方案来使用时,我们必须考虑以下几点因素。由于从原始数据库到备份数据库有一个潜伏期,对你的公司而言,它并非一定是可行的实现高可用性的一种解决方案。潜伏期由数据库管理员设置,时间也因需要而缩短, 但永远不能避免。
日志转移中没有设置恢复功能,这就意味着在将日志转移到备份服务器上时,这些日志都暂时不可用。因此,数据库管理员必须在将备份数据库放到网上前完成一系列的操作,这些步骤包括:
将已存储在备份数据服务器上原始数据库里的备份标签存储起来。一旦所有的标签被存储后,数据库就必须得到恢复,然后放到网上。
一旦所有的数据库都已放在网上,所有需要访问数据库的应用程序就需要改变自身的链接。如果你不能将应用程序尽快指向刚刚恢复的数据库,你就前功尽弃了。
一个SQL Server的实例能用于监控日志转移。这个实例可以在原始数据库、备份数据库或单独的数据库中。任何一种版本的SQL Server都能用于SQL Server监控。
注释:数据库登录必须在原始数据库与备份数据库之间同时进行。
;⑧ 安装SQL Server 2005性能监视器计数器要求 (错误)
这个问题我碰到过,把下面的注册表改下就行了!
手动设置计数器注册表项的增量 :
1.在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击“开始”、“运行”,然后在“打开”中键入 regedit.exe,再单击“确定”。在 Windows 2000 中,使用 regedt32.exe 启动注册表编辑器。
2.定位到以下注册表项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]
"Last Counter"=dword:00000ed4 (5276)
"LastHelp"=dword:00000ed5 (5277)
3.上一步的“Last Counter”值 (5276) 必须与以下注册表项中“Perflib\009”的“Counter”项的最大值匹配,并且上一步的“Last Help”值 (5277) 必须与以下注册表项中“Perflib\009”的“Help”项的最大值匹配。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]
注意 009中存储的是英文版本的计数器(如果你安装的是英文版Microsoft SQL Server2005则修改Perflib\009),004中存储的是中文版本的计数器(如果你安装的是中文版Microsoft SQL Server2005则修改Perflib\004)。“Last Counter”和“Last Help”值是由 Windows 动态分配的;这两个值会因计算机的不同而不同。
⑨ 安装sql server 2005 遇到问题性能监视器计数器要求 (错误
依次单击“开始”、“运行”,然后在“打开”中键入 regedit.exe,再单击“确定".打开 regedit , 定位到
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
目录下有Last Counter 和 Last Help 两个键值。在Perflib目录下有004和009两个子目录。其中有Counter 和 Help两个键值。
查看004目录(对于中文系统,英文系统是009目录)下的Counter 记录其最后的数字,我这里是11214,将该值写到Last Counter
中;同样将004目录中的Help中最后的数字,我这里是11215,写到Last Help中。
再次安装SQL2005,检查通过。
⑩ 如何监控sql server受攻击
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表,来显示死锁信息了