Presentation is loading. Please wait.

Presentation is loading. Please wait.

SQL Server & PowerShell

Similar presentations


Presentation on theme: "SQL Server & PowerShell"— Presentation transcript:

1 SQL Server & PowerShell
Marek Chmel MVP: Data Platform | MCSE: Data Management and Analytics | MCT: Regional Lead | CEH v8 @marekchmel

2 Motivation Why Use PowerShell to Manage SQL Server
Lightweight Access to Server Management Repeatable Management through Scripting Access both Windows and SQL Server Properties “PowerShell is a Core IT Skill – Learn it or be Left Behind” Basics of using PowerShell with SQL Server Use of the SQL Server Provider Using SMO (SQL Management Objects)

3 Environment & Security
Command Line Tab completion auto completes commands, etc. Get-History returns previously run commands Up/Down arrows scrolls through previously run commands Integrated Scripting Environment – ISE (PS 2.0+) Scripts allow you to batch commands together You must include the path to the script to run it By requiring the path, prevents scripts from “hijacking” operating system commands By default you cannot run scripts Set-ExecutionPolicy set by default to Restricted Change to RemoteSigned to run local scripts NOT the case for sqlps.exe, though

4 PowerShell Language PowerShell is an Object-Based Language
Not Object-Oriented Cmdlets are Command-Line Utilities built into PowerShell They use a Verb-Noun Naming Convention Get-Process Stop-Service Three most important cmdlets Get-Help Get-Command Get-Member

5 SQL Server & PowerShell options
SMO SMO: SQL Management Objects .Net Libraries Contain Objects for SQL Server [AppDomain]::CurrentDomain.GetAssemblies() | Where-Object {$_.FullName -match "SqlServer" } | Select-Object FullName

6 SQL Provider PowerShell Module CmdLets for SQL Server Navigable tree
Types, Formats Get-Command -CommandType Cmdlet –Module SQLPS,SQLASCMDLETS | Select-Object Name, Module | Sort-Object Module, Name | Format-Table -AutoSize

7 DEMOS

8 WMI Service Types SqlServiceType Description 1 SQL Server Service 2
SQL Server Agent Service 3 Full-Text Search Engine Service 4 Integration Services Service 5 Analysis Services Service 6 Reporting Services Service 7 SQL Browser Service

9 Main SMO Objects Server Property Description Information
This includes nonconfigurable instance settings, such as BuildNumber, Edition, OSVersion, and ProductLevel. This also includes settings specified during install, for example, Collation, MasterDBPath, and MasterDBLogPath. Settings This lists some instance level configurable settings, such as LoginMode and BackupDirectory. UserOptions This has options that can be set for user connections, such as AnsiWarnings, AnsiNulls, AnsiPadding, and NoCount. Configuration This contains instance-specific settings such as AgentXPs, remote access, clr enabled, and xp_cmdshell, which you will normally see and set when you use the sp_configure system stored procedure.

10 Configuration with PowerShell
Depending on what server properties you need to change, you may need to determine which of the following classes you may need to access: Settings, UserOptions, or Configuration. Once you have determined which class and property you want to change, you can change the values and invoke the Alter() method:

11 Why Maintain a Server Inventory
Need an overview of your Domain Allows you to identify outliers You can see resource usage How much are you using now? What's the growth rate? Reports help you justify new resources

12 What Data Do You Collect?
Computer Name, Domain, Make, Model Operating System Versions and Patch Levels Total Physical Memory Local Disk (SAN storage is local) SQL Server Instance Information Version, Edition, Service Pack Default Data, Log, Backup Location Configuration Options Databases with files and sizes Logins and Users

13 A Little Bit about WMI WMI - Windows Management Instrumentation
Provides Access to All Windows System Information Information Grouped into Classes Win32_ComputerSystem provides computer name and model, number of processors, etc. Win32_OperatingSystem provides OS type, service pack installed, etc. Win32_PhysicalMemory provides physical memory device, and capacity, etc. Win32_LogicalDisk provides local storage size, free space, etc.

14 Getting WMI Data PowerShell V2 and V1 – Get-WMIObject
PowerShell V3+ – Get-CimInstance Get-WMIObject is Deprecated Uses remote procedure calls (RPCs) Can cause problems with access, firewall issues Get-CimInstance uses WinRM

15 Capture Performance Baseline
Baseline shows normal performance Deviations from Baseline require investigation Frequency of Data Capture is important Too often impacts performance Too seldom can miss important events Balance comes with experience

16 Scripting the Data Capture
Capture the counter data # Initialize Perfcounters $ppt = new-object System.Diagnostics.PerformanceCounter $ppt.CategoryName = 'Processor' $ppt.CounterName = '% Processor Time' $ppt.InstanceName = '_Total' $pptv = $ppt.nextvalue() Insert into Performance Database Wait defined interval and do it again

17 Q&A Marek Chmel MVP: Data Platform | MCSE: Data Management and Analytics | MCT: Regional Lead | CEH v8 @marekchmel


Download ppt "SQL Server & PowerShell"

Similar presentations


Ads by Google