728x90

오늘은 SqlServerAlias 에 대해 말씀드리고자 합니다. SqlServerAlias는 클라이언트들의 connection 를 빠르고, 편리하게 해줍니다.
자세하게 나온 사이트가 있네요
http://www.mssqltips.com/tip.asp?tip=1620
참고

 

그럼 WMI를 이용해서 제 서버에 등록된 SQL Alias정보를 볼까요

Get-WmiObject -namespace root\Microsoft\SqlServer\ComputerManagement10 –class SqlServerAlias

 

등록된 정보가 없으면 아무내용도 나오지 않겠지만 Sql Server Configuration Manager 를 통해 Alias를 등록한 경우에는 등록된 내용이 나옵니다.이 모습을 Sql 구성도구에서 확인하면 아래와 같습니다.

 

 

 





등록된 Alias oldship 를 삭제해 보도록 하겠습니다.

$strAlias="oldship"

$oldInfo=Get-WmiObject –namespace root\Microsoft\SqlServer\ComputerManagement10

-class SqlServerAlias -filter "AliasName=$oldInfo"

$oldInfo.Delete()


 

 

참 쉽죠~~


아쉽게도 Get-WmiObject 는 존재하는 클라이언트 Alias를 삭제하는 역할만 가능합니다.
별칭을 신규로 생성하기 위해선 별도의 .NET 클래스 Microsoft.SqlServer.Management.Smo.Wmi.ServerAlias 를 로드해서 사용해야하고 이 클래스가 포함된 어셈블리는 2008의 경우 Microsoft.SqlServer.SqlWmiManagement.dll 입니다.(2005의 경우는 Microsoft.SqlServer.Smo)


그럼 우선 클래스를 사용하기 위해 어셈블리를 로드해볼까요

[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement") | Out-Null

 


어셈블리를 로드후 SQL를 위한 WMI를 포함하고 있는 SMO 오브젝트를 생성해야 합니다.
이 오브젝트는 앞으로 우리가 생성할 SQL Alias의 부모가 됩니다.

$strComputer='.' #localhost

$objComputer=New-Object Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer $strComputer #초기화

$newalias=New-Object ("Microsoft.SqlServer.Management.Smo.Wmi.ServerAlias")

$newalias.Parent=$objComputer

$newalias.Name='newAlias' # name of the new alias

$newalias.ServerName='SPACESHIPS' #연결할 원본 인스턴스

$newalias.ConnectionString=9009 #port

$newalias.ProtocolName='tcp' #프로토콜

$newalias.Create()



아래와 같이 별칭이 생성되었습니다.

 




다음엔 ServerNetworkProtocol에 대해 알아보겠습니다.


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

728x90

+ Recent posts