Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
В этой заметке рассмотрены примеры создания однострочных сценариев PowerShell, работающих с объектами баз данных SQL Server
В первую очередь нужно импортировать PowerShell-модуль SQLPS:
Import-Module SQLPS -DisableNameChecking;
Найти 10 самых больших таблиц (в строках) в БД:
dir sqlserver:\sql\SERVERNAME\INSTANCENAME\databases\DBNAME\tables ` | sort rowcount -desc | select name, rowcount -first 10;
Найти логины с правами sysadmin на множестве серверов (предполагаем только экземпляр sql сервера по умолчанию):
sysadmin
'Server1', 'Server2', 'Server3' | % { dir "sqlserver:\sql\$_\default\logins" } ` | ? {$_.ismember('sysadmin')} | select Parent, Name | ft -AutoSize;
Найти размеры пользовательских БД на множестве серверов (предполагаем только экземпляры sql сервера по умолчанию):
'Server1', 'Server2', 'Server3' | % { dir sqlserver:\sql\$_\default\databases } ` | select parent, name, size | ogv -Title "Database Size(MB)";
Проверяем наличие логина с указанным именем на каких-либо серверах (предполагаем только экземпляры sql сервера по умолчанию):
'Server1', 'Server2', 'Server3' | % { dir sqlserver:\sql\$_\default\logins } ` | ? {$_.name -like '*ThisLogin*'} | select Parent, Name;
Проверяем, есть ли какая-либо БД с моделью восстановления НЕ simple, которая не имеет бэкапа лога транзакций за последний 1 час:
'Server1', 'Server2', 'Server3' | % {dir sqlserver:\sql\$_\default\databases} ` | ? {($_.RecoveryModel -ne 'Simple') ` -and ($_.lastlogbackupdate -lt (get-date).addhours(-1))} ` | select Parent, Name, LastLogbackupdate;
Проверено на следующих конфигурациях:
Автор первичной редакции: Пётр Окунев Время публикации: 29.11.2021 15:19