2008年7月19日星期六

安装MDA表,查看所有人的命令记录

作为SYBASE新手,我想看看别人都敲过哪些命令,因为要想快速长进,最简单的方法就是模仿别人。安装SYBASE的MDA表可以实现这个目

的,当然MDA表用途很多,不仅只局限于这么简单的功能。下面是为实现这个目的而进行的操作步骤:

1、执行脚本installmontables
server名默认是机器名,我的机器名比较怪异,记不住,所以干脆用环境变量%COMPUTERNAME%代替。
isql -Usa -P -S%COMPUTERNAME% -iC:\Sybase\ASE-12_5\scripts\installmontables

2、增加loopback服务
如果第1步遇到“Site 'loopback' not found in sysservers”报错,那就需要执行这一步,否则跳过。
sp_configure 'enable cis',1
go
use master
go
sp_addserver loopback, null, @@servername
go

3、给sa授权
授权后需要重启Sybase SQLServer
grant role mon_role to sa
go
shutdown
go

4、启动Sybase SQLServer
net start "Sybase SQLServer _ HP12770113212"
isql -Usa -P -S%COMPUTERNAME%

5、配置相关参数
其中'enable monitoring'是静态的,故配置完后,需要再次重启Sybase SQLServer。不过我发现不重启,下面第7步也一样可以使用,只不过会多出几行报错信息。
sp_configure 'enable monitoring',1
go
sp_configure 'max SQL text monitored',300
go
sp_configure 'SQL batch capture',1
go
sp_configure 'sql text pipe max messages',300
go
sp_configure 'sql text pipe active',1
go
shutdown
go

6、再次启动Sybase SQLServer
也许第5步和第3步可以合并(未测试),这样可以减少重启Sybase SQLServer一次
net start "Sybase SQLServer _ HP12770113212"
isql -Usa -P -S%COMPUTERNAME%

7、查看所有的命令记录
这就是我的最终的目的,别人最近敲过的所有命令都可以一目了然了。查询一次,monSysSQLText表会自动清空一次。
select * from master..monSysSQLText
go

8、其它说明
第3步给sa授予了mon_role角色后,要想revoke可就麻烦了。解决办法是:新建一个login,授予一定角色(忘了具体角色了,但revoke时有提示),revoke sa的mon_role角色;再用sa登录,drop掉新建的login。
第5步中除第一个参数外,都是动态参数,我的设置是一次保留最近的300条命令记录,这些可以根据实际情况随时更改。

没有评论: