我正在尝试使用以下方法来计算我需要的 AZURE SQL 类型:http://dtucalculator.azurewebsites.net/=> http://dtucalculator.azurewebsites.net/Downloads/sql-perfmon.zip
这是一个PowerShell脚本,它从SQL中的某些计数器获取数据,但是在访问"日志字节刷新/秒"计数器时出错,当我运行时它在SQL中按下
select * FROM sys.dm_os_performance_counters where counter_name like 'Log Bytes Flushed/sec%'
我从PowerShell得到的错误是:
获取计数器:在计算机上找不到指定的对象。在 C:\users\ringhel\desktop\sql-perfmon.ps1:47 char:1 + 获取计数器 -计数器$counters -采样间隔 1 -最大样本 3600 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 类别信息 : 无效结果: (:)[获取计数器],异常 + FullQualifiedErrorId : CounterApiError,Microsoft.PowerShell.Command.GetCounterCommand
错误来自此变量:
$counters = @("\处理器(_Total)\% 处理器时间", "\LogicalDisk(C:)\Disk Reads/sec", "\LogicalDisk(C:)\Disk Writes/sec",
"\LogicalDisk(C:)\Disk Read Bytes/sec", "\LogicalDisk(C:)\Disk Write Bytes/sec", "\SQLSERVER:Databases($DatabaseName)\Log 刷新的字节数/秒")
在搜索网络后,我尝试了MSSQLSERVER(这是SQL服务器的实例名称),MSSQL'$MSSQLSERVER和MSSQL$MSSQLSERVER,而不是SQLSERVER,但相同的错误。
请帮忙。
发现了问题。我必须将本地计算机的执行策略设置为远程签名。它是未定义的。
设置-执行策略远程签名 -范围本地计算机
我的问题略有不同。 对于命名实例,我必须像这样定义 SQL Server 计数器:
MSSQL`$SQL2016:Databases(_Total)Log Bytes Flushed/sec
我的实例名为"SQL2016"。 反引号转义实例名称中的$
。