오늘은 SqlServerAlias 에 대해 말씀드리고자 합니다. SqlServerAlias는 클라이언트들의 connection 를 빠르고, 편리하게 해줍니다.
자세하게 나온 사이트가 있네요 http://www.mssqltips.com/tip.asp?tip=1620 참고
그럼 WMI를 이용해서 제 서버에 등록된 SQL Alias정보를 볼까요
등록된 정보가 없으면 아무내용도 나오지 않겠지만 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)
그럼 우선 클래스를 사용하기 위해 어셈블리를 로드해볼까요
어셈블리를 로드후 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
'Powershell > @우주인' 카테고리의 다른 글
파워쉘에게 할당된 메모리 변경 (1) | 2010.12.28 |
---|---|
PowerShell 에서 NULL 처리 (0) | 2010.10.26 |
플랫폼 구분(64/32bit) (0) | 2010.10.05 |
PowerShell Debug(Set-PSDebug) (0) | 2010.10.05 |
[MSSQL]WMI for SQL Management(2)-ClientNetworkProtocol (0) | 2010.10.05 |