2010. 9. 15. 19:17

이번엔 WMI(Windows Management Instrument) 를 이용해 SQL서버를 관리하는 방법에 대해 말씀드릴려고 합니다.

SQL를 관리를 위한 WMI Object 를 아래처럼 가져올 수 있습니다.

이 오브젝트는 클래스들의 인스턴스 집합이기 때문에 SQL를 위한 네임스페이스를 사용합니다

Get-WmiObject -namespace root\Microsoft\SqlServer\ComputerManagement10 –list | Where-Object {-not ($_.Name -like ‘__*’)}

[2005] 의 경우 -namespace root\Microsoft\SqlServer\ComputerManagement



많은 클래스들이 있지만 우선 SQL Service 클래스를 살펴보면

Get-WmiObject -namespace root\Microsoft\SqlServer\ComputerManagement10 -class SqlService | Select-Object ServiceName, DisplayName, SQLServiceType, State, ProcessId | Format-Table -wrap


설치된 SQL 기본 인스턴스들을 확인할 수 있습니다.

여기서 Service States 가 나타내는 숫자는 아래와 같은 의미를 가집니다.

1 Stopped. The service is stopped.

2 Start Pending. The service is waiting to start.

3 Stop Pending. The service is waiting to stop.

4 Running. The service is running.

5 Continue Pending. The service is waiting to continue.

6 Pause Pending. The service is waiting to pause.

7 Paused. The service is paused.



 

그럼 여기서 사용할 수 있는 메소드들을 확인해 볼까요

Get-WmiObject -namespace root\Microsoft\SqlServer\ComputerManagement10 –class SqlService | Get-Member -MemberType method



여기선 주로 서비스 계정을 설정 하거나 서비스를 시작 중지 시키는 메소드들 뿐이네요.


위의 메소드를 활용해서 MSSQL Server Instance 계정을 local system에서 도메인 계정으로 변경해 볼까요


$strUser = "DOMAIN\account"

$strPass= "비밀번호"

$wSqlservice = Get-WmiObject –namespace root\Microsoft\SqlServer\ComputerManagement10 -class SqlService –filter "ServiceName='MSSQLSERVER'"

$wSqlservice.SetServiceAccount($strUser, $strPass)

$wSqlservice.StopService()

$wSqlservice.StartService()



그럼 이번엔 SQL Agent Service를 자동으로 실행되게 변경해 볼까요

$sqlservice = Get-WmiObject –namespace root\Microsoft\SqlServer\ComputerManagement10 -class SqlService –filter "ServiceName='SQLSERVERAGENT'"

$sqlservice.SetStartMode(2)

#2 Service is started automatically

#3 Service is started manually

#4 Service is disabled




변경이 잘 되었네요 ^^

 


참고로 –computerName 이란 프로퍼티를 이용하면 원격지의 WMI Object를 가져올 수 있습니다.

Get-WmiObject .computerName 컴퓨터이름 -namespace

root\Microsoft\SqlServer\ComputerManagement10 -class SqlService -filter

"ServiceName=’MSSQL`$Instance’"




다음편엔 ServerNetworkProtocolProperty 클래스를 확인해 볼 예정입니다.

참고: SQL Server Administration with Windows PowerShell

원본: http://vstarmanv.tistory.com/entry/MSSQLWMI-for-SQL-Management1

'Powershell > @우주인' 카테고리의 다른 글

PowerShell Default Snap-Ins  (0) 2010.09.15
.NET Assembly load  (0) 2010.09.15
파워쉘을 이용한 DOM 사용  (0) 2010.09.09
파워쉘 부팅매크로(Invoke-Item)  (0) 2010.09.09
파워쉘 버전  (0) 2010.09.09
Posted by 알 수 없는 사용자
:
BLOG main image
Windows Server를 공부 하는 사람들의 팀블로그 by 마성민

카테고리

분류 전체보기 (76)
Windows (2)
Powershell (56)
AD (0)
Exchange (6)
System Center (9)
IIS (0)
SQL (3)
Sharepoint (0)

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

Total :
Today : Yesterday :