===== Однострочные решения PowerShell для общих задач SQL Server DBA. Пример 2: Сбор информации в SQL Server ===== {{:powershell:sql-server:pasted:20211127-122145.png }} В этой заметке рассмотрены примеры создания однострочных сценариев **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 сервера по умолчанию): '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; ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ Версия PowerShell ^ Версия SQL Server ^ | Windows Server 2008R2 | 3.0+ | SQL Server 2012 | ---- {{:user:pokunev.png?50&nolink |}} Автор первичной редакции:\\ [[user:pokunev|Пётр Окунев]] \\ Время публикации: 29.11.2021 15:19 {{tag>PowerShell "SQL Server" "T-SQL"}} ~~DISCUSSION~~