Счетчик SQL "Log Bytes Flushed/sec" от PowerShell Error
Я пытаюсь рассчитать тип AZURE SQL, который мне нужен, используя это: http://dtucalculator.azurewebsites.net/ => http://dtucalculator.azurewebsites.net/Downloads/sql-perfmon.zip
Это сценарий PowerShell, который получает данные от некоторых счетчиков из SQL, но выдает ошибки при доступе к счетчику "Log Bytes Flushed/sec", который присутствует в SQL при запуске
select * FROM sys.dm_os_performance_counters where counter_name like 'Log Bytes Flushed/sec%'
ошибка, которую я получаю от PowerShell:
Get-Counter: указанный объект не был найден на компьютере. В C:\users\ringhel\desktop\sql-perfmon.ps1:47 char:1 + Get-Counter -Counter $counters -SampleInterval 1 -MaxSamples 3600 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidResult: (:) [Get-Counter], Exception + FullyQualifiedErrorId: CounterApiError,Microsoft.PowerShell.Commands.GetCounterCommand
Ошибка исходит из этой переменной:
$ counters = @ ("\ Processor (_Total) \% времени процессора", "\LogicalDisk(C:)\ Чтение диска / сек", "\LogicalDisk(C:)\ Запись на диск / сек",
"\ LogicalDisk (C:) \ Disk Read Bytes / sec", "\LogicalDisk(C:)\ Disk Write Bytes / sec", "\ SQLSERVER: Базы данных ($DatabaseName)\Log Fatased/sec")
После поиска в Интернете вместо SQLSERVER я попытался использовать MSSQLSERVER (это имя экземпляра SQL-сервера), MSSQL'$MSSQLSERVER и MSSQL$MSSQLSERVER, но с той же ошибкой.
Пожалуйста помоги.
1 ответ
Нашел проблему. Мне пришлось установить политику выполнения для LocalMachine на RemoteSigned. Это было не определено.
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
Моя проблема была немного другой. Для именованного экземпляра мне пришлось определить счетчик SQL Server следующим образом:
\MSSQL`$SQL2016:Databases(_Total)\Log Bytes Flushed/sec
Мой экземпляр был назван "SQL2016". Обратный клещ ускользает от$
в имени экземпляра.