다음을 통해 공유


샘플: RemoveCacheHost 스크립트

이 섹션에서는 샘플 Windows PowerShell 스크립트 RemoveCacheHost.ps1을 제공합니다. 이 스크립트는 캐시 클러스터에서 캐시 호스트를 자동으로 제거합니다. 이 스크립트에서 사용되는 명령에 대한 설명은 자동 설치 및 구성을 참조하십시오. RemoveCacheHost 샘플 스크립트는 다음과 같은 작업을 수행합니다.

  • 캐시 호스트 제거 준비를 위해 캐시 호스트를 중지하려고 시도합니다.

  • 캐시 클러스터에서 캐시 호스트를 등록 취소합니다.

  • 캐싱 서비스 구성을 제거합니다.

  • 캐시 관리 기능의 구성을 제거합니다.

  • AppFabric 캐싱에 대해 기본 제공 Windows 방화벽 정책을 사용하지 않도록 설정합니다.

샘플: RemoveCacheHost 스크립트

RemoveCacheHost 스크립트를 사용하려면 먼저 다음 Windows PowerShell 스크립트 내용을 텍스트 파일에 복사한 다음 파일을 RemoveCacheHost.ps1로 저장합니다. 그런 다음 스크립트 뒤에 나오는 정보를 검토하여 스크립트의 사용자 지정 및 실행 방법을 이해합니다.

param([switch]$RemoveCacheCluster, [string]$Pvd, [string]$ConnStr)

##########################
# Customizable Variables #
##########################
$provider = "System.Data.SqlClient"
#$provider = "XML"
$host_name = $env:COMPUTERNAME
$cache_port = 22233

# If System.Data.SqlClient:
$database_name = "CacheClusterConfigurationDB"
$database_server = "SQLServer1"
# If XML Provider:
$share_location = "\\Server1\CacheConfigShare"

##############
# Initialize #
##############

Import-Module DistributedCacheAdministration
Import-Module DistributedCacheConfiguration

$connection_string = ""

if ($provider -eq "System.Data.SqlClient")
{
   $connection_string = "Data Source=" + $database_server + `
      ";Initial Catalog=" + $database_name + `
      ";Integrated Security=True"
}

if ($provider -eq "XML")
{
   $connection_string = $share_location
}

# If provided, command-line parameters override 
# internal script variables:
if ($Pvd)
{
   $provider = $Pvd
}
if ($ConnStr)
{
   $connection_string = $ConnStr
}

#####################
# Remove Cache Host #
#####################

Write-Host "`nUse-CacheCluster -Provider $provider -ConnectionString"`
   "`"$connection_string`"" -ForegroundColor Green
Use-CacheCluster -Provider $provider -ConnectionString $connection_string

#Make sure the cache host is stopped
$Get_CacheHost_Command = Get-CacheHost -HostName $host_name -CachePort $cache_port

if ($Get_CacheHost_Command.Status -eq "Up")
{
   Write-Host "`nStop-CacheHost -HostName $host_name -CachePort $cache_port" -ForegroundColor Green
   Stop-CacheHost -HostName $host_name -CachePort $cache_port
}

$Get_CacheHost_Command = Get-CacheHost -HostName $host_name -CachePort $cache_port

if ($Get_CacheHost_Command.Status -eq "Down")
{
   Write-Host "`nUnregister-CacheHost -Provider $provider -ConnectionString `"$connection_string`" " `
      "-HostName $host_name -RemoveServicePermissions" -ForegroundColor Green
   Unregister-CacheHost -Provider $provider -ConnectionString $connection_string `
      -HostName $host_name -RemoveServicePermissions
   
   Write-Host "`nRemove-CacheHost" -ForegroundColor Green
   Remove-CacheHost
   
   Write-Host "`nRemove-CacheAdmin" -ForegroundColor Green
   Remove-CacheAdmin
   
   ########################
   # Remove Cache Cluster #
   ########################
   
   # Look for a parameter that specifies this is a new cache cluster
   if ($RemoveCacheCluster)
   {
      Write-Host "`nRemove_CacheCluster -Provider $provider -ConnectionString "`
         "`"$connection_string`" -Force" -ForegroundColor Green
      Remove-CacheCluster -Provider $provider -ConnectionString $connection_string -Force
   }
   
   ##########################
   # Configure the Firewall #
   ##########################
   Write-Host "`nConfigure the firewall..." -ForegroundColor Green
   netsh advfirewall firewall set rule `
      group="Windows Server AppFabric: AppFabric Caching Service" new enable=No | Out-Null
   
   # Uncomment the following lines only if other services do not need Remote Service Management.
   #netsh advfirewall firewall set rule `
   #   name=\"Remote Service Management (RPC)\" profile=domain new enable=No | Out-Null
   #netsh advfirewall firewall set rule `
   #   name=\"Remote Service Management (RPC-EPMAP)\" profile=domain new enable=No | Out-Null
   #netsh advfirewall firewall set rule `
   #   name=\"Remote Service Management (NP-In)\" profile=domain new enable=No | Out-Null 
}
else
{
   Write-Host "`nUnable to stop the host $host_name (Port:$cache_port)`n`n" -ForegroundColor Red
}

RemoveCacheHost 스크립트 사용자 지정

용도에 맞게 이 스크립트를 사용자 지정하는 방법에는 두 가지 옵션이 있습니다. 첫 번째, 스크립트의 "사용자 지정 가능 변수" 섹션에 있는 변수 값을 변경할 수 있습니다. 예를 들어 XML 공급자를 사용하는 경우 $provider 변수를 "XML"로 설정하고 $share_location을 구성 저장소에 사용해야 하는 네트워크 공유로 설정합니다. 특정 설정에 따라 다른 변수를 사용자 지정합니다. $database_name$database_server 변수는 System.Data.SqlClient 공급자를 사용하는 경우에만 필요합니다. $share_location 변수는 XML 공급자를 지정하는 경우에만 필요합니다.

다른 옵션은 스크립트 매개 변수 PvdConnStr을 사용하여 명령줄에서 공급자 및 연결 문자열을 수동으로 지정하는 것입니다. 이러한 매개 변수는 내부 변수 설정을 다시 정의합니다.

RemoveCacheHost 스크립트 실행

다음 명령은 캐시 클러스터에서 로컬 서버를 제거합니다.

RemoveCacheHost

다음 명령은 캐시 클러스터에서 로컬 서버를 제거하고 캐시 클러스터도 제거합니다. 이 작업은 캐시 클러스터에서 마지막 캐시 호스트를 제거할 때 수행할 수 있습니다.

RemoveCacheHost -RemoveCacheCluster

다음 예는 명령줄에서 공급자 및 연결 문자열을 수동으로 지정하는 방법을 보여줍니다.

RemoveCacheHost.ps1 -Pvd System.Data.SqlClient -ConnStr "DataSource=SQLServer1;Initial Catalog=CustomConfigDB;Integrated Security=True"

스크립트가 지정된 캐시 호스트를 중지할 수 없는 경우도 있습니다. 이러한 경우에는 스크립트로 캐시 호스트를 제거하기 전에 Stop-CacheCluster 명령을 사용하여 캐시 클러스터를 중지해야 합니다.

참고 항목

개념

자동 설치 및 구성

  2012-03-05