我使用以下命令将性能计数器加载到SQL Server数据库中。
C:\Users\w8>TYPEPERF -f SQL -s admin -cf "C:\CounterCollect\Counters.txt" -si 15 -o SQL:SQLServerDS!log1 -sc 4
我要求每隔15分钟安排一次收集柜台。 我猜我们是否可以将其作为批处理文件,然后我可以使用任务调度程序安排它,但我是批处理文件概念的新手。
任何人都可以帮我吗?
答案 0 :(得分:1)
由于这是针对SQL Server的,我建议您使用SQL Agent代替Windows调度程序。
在 SQL Server Management Studio 中,打开 SQL Server代理,右键单击作业并创建新作业。
现在创建一个类型操作系统(cmdexec)的新步骤,然后将其粘贴到:
TYPEPERF -f SQL -s admin -cf "C:\CounterCollect\Counters.txt" -si 15 -o SQL:SQLServerDS!log1 -sc 4
您确实需要确保在SQL Server上安装了TYPEPERF,并且您可能需要在某个文件夹中运行它。您还需要确保SQL代理帐户具有访问权限。但是,在Windows调度程序中,这些都不同。
批处理文件的使用是可选的。如果命令更复杂,那可能是值得的。
您的工作(因为它可以无人值守运行)需要以某人的身份运行,因此它知道它是否允许执行操作,并且可以告诉各种日志它是谁等等。它作为默认设置'某人',(NT服务\ SQLSERVERAGENT)运行,但事实证明它没有创建文件的权限。所以你需要像有人一样运行它。
可以使用下面列出的任何内容来授予其所需权利。其中一些是愚蠢的,有些可能适合您的情况,也可能不适合。
NT Service\SQLSERVERAGENT
添加到本地管理员NT Service\SQLSERVERAGENT
创建权限第一个选择是最多的企业'但可能超出您的需求。
最后一个选项更容易,但如果您需要更改密码则会受到影响。
我将解释最后一个选项:
SQL Server Agent
Log On
标签,然后在那里输入您的登录名/密码现在您的SQL代理将像您一样运行,您不应该再收到该消息。
答案 1 :(得分:0)
批处理文件实际上是您在cmd
中输入的任何命令。
存在一些差异,但主要是控制问题 - 循环等。
如果typeperf
命令是您唯一需要的命令,那么恰好该行就足够了。
你可以稍微装饰一下。取决于口味
@echo off
setlocal
typeperf...
cls
exit
命令开头的@
禁用该命令的命令回显。
echo off
将命令回显,直到批次结束为止
setlocal
确保所做的任何环境变更都是临时的
cls
清除cmd
窗口
`exit强制退出批处理。
只需将其放在名为 whateveryoulikebutdontuseacommandkeyword .bat
的文件中使用文本编辑器,但不使用文字处理器。记事本几乎不够,因为它倾向于尝试格式化输入的文本。确保文件保存为ASCII。