리소스 공급자 유지 관리 작업 SQL

중요

Azure Stack Hub 빌드 2108부터 액세스 권한이 부여된 구독에 SQL 및 MySQL 리소스 공급자가 제공됩니다. 이 기능 사용을 시작하거나 이전 버전에서 업그레이드해야 하는 경우 지원 사례를 열고 지원 엔지니어가 배포 또는 업그레이드 프로세스를 안내합니다.

SQL 리소스 공급자는 잠긴 VM(가상 머신)에서 실행됩니다. 유지 관리 작업을 사용하도록 설정하려면 VM의 보안을 업데이트해야 합니다. 최소 권한 원칙을 사용하여 이 작업을 수행하려면 PowerShell JEA(Just Enough Administration) 엔드포인트 DBAdapterMaintenance를 사용합니다. 리소스 공급자 설치 패키지에는 이 작업에 대한 스크립트가 포함되어 있습니다.

패치 및 업데이트

SQL 리소스 공급자는 추가 기능 구성 요소이므로 Azure Stack Hub의 일부로 서비스되지 않습니다. Microsoft는 필요에 따라 SQL 리소스 공급자에 대한 업데이트를 제공합니다.

SQL RP V1의 경우 업데이트된 SQL Server 리소스 공급자가 릴리스되면 업데이트를 적용하기 위한 스크립트가 제공됩니다. 이 스크립트는 새 리소스 공급자 VM을 만들고 이전 공급자 VM의 상태를 새 VM으로 마이그레이션합니다.

SQL RP V2의 경우 리소스 공급자는 Azure Stack Hub 업데이트를 적용하는 데 사용되는 것과 동일한 업데이트 기능을 사용하여 업데이트됩니다.

자세한 내용은 SQL 리소스 공급자 업데이트를 참조하세요.

공급자 VM 업데이트

RP V1이 사용자 VM에서 실행되는 SQL 필요한 패치 및 업데이트가 릴리스될 때 적용해야 합니다. 리소스 공급자를 설치하거나 업데이트하는 동안 Windows 업데이트 패키지를 설치할 수 있습니다.

SQL RP V2는 숨겨진 관리되는 Windows 서버에서 실행됩니다. 리소스 공급자 VM을 패치하거나 업데이트할 필요가 없습니다. RP를 업데이트하면 자동으로 업데이트됩니다.

VM Windows Defender 정의 업데이트

이러한 지침은 Azure Stack Hub 통합 시스템에서 실행되는 SQL RP V1에만 적용됩니다.

Windows Defender 정의를 업데이트하려면 다음을 수행합니다.

  1. Windows Defender 대한 보안 인텔리전스 업데이트에서 Windows Defender 정의 업데이트를 다운로드합니다.

    정의 업데이트 페이지에서 아래로 스크롤하여 "업데이트를 수동으로 다운로드"합니다. "Windows 10 및 Windows 8.1 Windows Defender 바이러스 백신" 64비트 파일을 다운로드합니다.

    이 직접 링크를 사용하여 fpam-fe.exe 파일을 다운로드/실행할 수도 있습니다.

  2. SQL 리소스 공급자 어댑터 VM의 유지 관리 엔드포인트에 대한 PowerShell 세션을 만듭니다.

  3. 유지 관리 엔드포인트 세션을 사용하여 정의 업데이트 파일을 VM에 복사합니다.

  4. 유지 관리 PowerShell 세션에서 Update-DBAdapterWindowsDefenderDefinitions 명령을 실행합니다.

  5. 정의를 설치한 후 Remove-ItemOnUserDrive 명령을 사용하여 정의 업데이트 파일을 삭제하는 것이 좋습니다.

정의를 업데이트하기 위한 PowerShell 스크립트 예제

다음 스크립트를 편집하고 실행하여 Defender 정의를 업데이트할 수 있습니다. 스크립트의 값을 사용자 환경의 값으로 바꿉 있습니다.

# Set credentials for local admin on the resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString '<local admin user password>' -AsPlainText -Force
$vmLocalAdminUser = "<local admin user name>"
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential `
    ($vmLocalAdminUser, $vmLocalAdminPass)

# Provide the public IP address for the adapter VM.
$databaseRPMachine  = "<RP VM IP address>"
$localPathToDefenderUpdate = "C:\DefenderUpdates\mpam-fe.exe"

# Download the Windows Defender update definitions file from https://www.microsoft.com/wdsi/definitions.
Invoke-WebRequest -Uri 'https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64' `
    -Outfile $localPathToDefenderUpdate

# Create a session to the maintenance endpoint.
$session = New-PSSession -ComputerName $databaseRPMachine `
    -Credential $vmLocalAdminCreds -ConfigurationName DBAdapterMaintenance `
    -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
# Copy the defender update file to the adapter VM.
Copy-Item -ToSession $session -Path $localPathToDefenderUpdate `
     -Destination "User:\"
# Install the update definitions.
Invoke-Command -Session $session -ScriptBlock `
    {Update-AzSDBAdapterWindowsDefenderDefinition -DefinitionsUpdatePackageFile "User:\mpam-fe.exe"}
# Cleanup the definitions package file and session.
Invoke-Command -Session $session -ScriptBlock `
    {Remove-AzSItemOnUserDrive -ItemPath "User:\mpam-fe.exe"}
$session | Remove-PSSession

SQL 리소스 공급자에 대한 Azure Diagnostics 확장 구성

이러한 지침은 Azure Stack Hub 통합 시스템에서 실행되는 SQL RP V1에만 적용됩니다.

Azure Diagnostics 확장은 기본적으로 SQL 리소스 공급자 어댑터 VM에 설치됩니다. 다음 단계에서는 문제 해결 및 감사 목적으로 SQL 리소스 공급자 운영 이벤트 로그 및 IIS 로그를 수집하기 위해 확장을 사용자 지정하는 방법을 보여 줍니다.

  1. Azure Stack Hub 관리자 포털에 로그인합니다.

  2. 왼쪽 창에서 가상 머신을 선택하고, SQL 리소스 공급자 어댑터 VM을 검색하고, VM을 선택합니다.

  3. VM의 진단 설정 에서 로그 탭으로 이동하여 사용자 지정 을 선택하여 수집 중인 이벤트 로그를 사용자 지정합니다. Go to diagnostics settings

  4. Microsoft-AzureStack-DatabaseAdapter/Operational!*을 추가하여 SQL 리소스 공급자 운영 이벤트 로그를 수집합니다. Add event logs

  5. IIS 로그 컬렉션을 사용하도록 설정하려면 IIS 로그 및실패한 요청 로그를 확인합니다. Add IIS logs

  6. 마지막으로 저장 을 선택하여 모든 진단 설정을 저장합니다.

이벤트 로그 및 IIS 로그 컬렉션이 SQL 리소스 공급자에 대해 구성되면 sqladapterdiagaccount라는 시스템 스토리지 계정에서 로그를 찾을 수 있습니다.

Azure Diagnostics 확장에 대한 자세한 내용은 Azure Diagnostics 확장을 참조하세요.

SQL 자격 증명 업데이트

SQL 서버에서 sysadmin 계정을 만들고 유지 관리할 책임이 있습니다. 리소스 공급자는 사용자의 데이터베이스를 관리하기 위해 이러한 권한이 있는 계정이 필요하지만 사용자의 데이터에 액세스할 필요는 없습니다. SQL 서버에서 sysadmin 암호를 업데이트해야 하는 경우 리소스 공급자의 관리자 인터페이스를 사용하여 저장된 암호를 변경할 수 있습니다. 이러한 암호는 Azure Stack Hub 인스턴스의 Key Vault 저장됩니다.

설정을 수정하려면 BrowseADMINISTRATIVE> RESOURCES >SQL 호스팅 서버>SQL 로그인을 선택하고 사용자 이름을 선택합니다. 먼저 SQL 인스턴스(필요한 경우 모든 복제본)에서 변경해야 합니다. 설정 아래에서 암호를 선택합니다.

Update the SQL admin password

비밀 회전

이러한 지침은 Azure Stack Hub 통합 시스템에서 실행되는 SQL RP V1에만 적용됩니다.

Azure Stack Hub 통합 시스템에서 SQL 및 MySQL 리소스 공급자를 사용하는 경우 Azure Stack Hub 운영자는 다음 리소스 공급자 인프라 비밀을 회전하여 만료되지 않도록 해야 합니다.

  • 배포 중에 제공되는 외부 SSL 인증서입니다.
  • 배포 중에 제공된 리소스 공급자 VM 로컬 관리자 계정 암호입니다.
  • 리소스 공급자 진단 사용자(dbadapterdiag) 암호입니다.
  • (버전 >= 1.1.47.0) 배포 중에 생성된 인증서를 Key Vault.

비밀을 회전하는 PowerShell 예제

중요

비밀 회전에 성공하려면 아래 스크립트를 실행하기 전에 기존 버전의 Azure Stack Hub PowerShell 모듈을 제거해야 합니다.

모든 비밀을 동시에 변경합니다.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword $passwd `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd  `
    -VMLocalCredential $localCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

진단 사용자 암호를 변경합니다.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword  $passwd

VM 로컬 관리자 계정 암호를 변경합니다.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -VMLocalCredential $localCreds

SSL 인증서 회전

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd

Key Vault 인증서 회전

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

SecretRotationSQLProvider.ps1 매개 변수

매개 변수 Description 주석
AzureEnvironment Azure Stack Hub를 배포하는 데 사용되는 서비스 관리자 계정의 Azure 환경입니다. Azure AD 배포에만 필요합니다. 지원되는 환경 이름은 AzureCloud, AzureUSGovernment 또는 중국 Azure Active Directory AzureChinaCloud를 사용하는 경우입니다. 선택 사항
AzCredential Azure Stack Hub 서비스 관리자 계정 자격 증명. AzCredential과 함께 사용하는 계정에 MFA(다단계 인증)가 필요한 경우 스크립트가 실패합니다. 필수
CloudAdminCredential Azure Stack Hub 클라우드 관리자 도메인 계정 자격 증명. 필수
PrivilegedEndpoint Get-AzureStackStampInformation에 액세스할 수 있는 권한 있는 엔드포인트입니다. 필수
DiagnosticsUserPassword 진단 사용자 계정 암호입니다. 선택 사항
VMLocalCredential MySQLAdapter VM의 로컬 관리자 계정입니다. 선택 사항
DefaultSSLCertificatePassword 기본 SSL 인증서(*.pfx) 암호입니다. 선택 사항
DependencyFilesLocalPath 종속성 파일 로컬 경로입니다. 선택 사항
KeyVaultPfxPassword 데이터베이스 어댑터에 대한 Key Vault 인증서를 생성하는 데 사용되는 암호입니다. 선택 사항

이러한 지침은 Azure Stack Hub 통합 시스템에서 실행되는 SQL RP V2에만 적용됩니다.

참고

RP(값 추가 리소스 공급자)에 대한 비밀 회전은 현재 PowerShell을 통해서만 지원됩니다.

Azure Stack Hub 인프라와 마찬가지로 부가가치 리소스 공급자는 내부 및 외부 비밀을 모두 사용합니다. 운영자는 다음을 담당합니다.

  • 리소스 공급자 엔드포인트를 보호하는 데 사용되는 새 TLS 인증서와 같은 업데이트된 외부 암호를 제공합니다.
  • 정기적으로 리소스 공급자 비밀 회전 관리

비밀이 만료될 무렵에는 관리자 포털에서 다음 경고가 생성됩니다. 비밀 회전을 완료하면 다음 경고가 해결됩니다.

  • 보류 중인 내부 인증서가 만료됨
  • 보류 중인 외부 인증서가 만료됨

사전 요구 사항

회전 프로세스를 준비할 때:

  1. 아직 설치하지 않은 경우 계속하기 전에 Azure Stack Hub용 PowerShell Az 모듈을 설치합니다. Azure Stack Hub 비밀 회전에는 버전 2.0.2-preview 이상이 필요합니다. 자세한 내용은 Azure Stack Hub에서 AzureRM으로부터 Azure PowerShell Az로 마이그레이션을 참조하세요.

  2. Azs.Deployment.Admin 1.0.0 모듈 설치: PowerShell 갤러리 | Azs.Deployment.Admin 1.0.0

Install-Module -Name Azs.Deployment.Admin
  1. 외부 인증서가 만료에 가까워지면 필요한 PFX 형식에 대한 세부 정보를 포함하여 X509 인증서를 획득/갱신하기 전에 Azure Stack Hub PKI(공개 키 인프라) 인증서 요구 사항을 검토합니다. 또한 특정 부가가치 리소스 공급자에 대한 선택적 PaaS 인증서 섹션에 지정된 요구 사항을 검토합니다.

외부 인증서 회전을 위한 새 TLS 인증서 준비

참고

내부 인증서만 만료에 가까워지면 이 섹션을 건너뛸 수 있습니다.

다음으로 부가가치 리소스 공급자 엔드포인트를 보호하기 위한 TLS 인증서를 만들거나 갱신합니다.

  1. 리소스 공급자에 대한 인증서 갱신을 위한 CSR(인증서 서명 요청) 생성의 단계를 완료합니다. 여기서는 Azure Stack Hub 준비 상태 검사기 도구를 사용하여 CSR을 만듭니다. "다른 Azure Stack Hub 서비스에 대한 인증서 요청 생성" 단계에서 리소스 공급자에 올바른 cmdlet을 실행해야 합니다. 예를 들어 New-AzsDbAdapterCertificateSigningRequest SQL 및 MySQL RP에 사용됩니다. 완료되면 생성된 항목을 제출합니다. 새 인증서에 대한 CA(인증 기관)에 대한 REQ 파일입니다.

  2. CA로부터 인증서 파일을 받은 후 배포 또는 회전을 위한 인증서 준비의 단계를 완료합니다. 준비 상태 검사기 도구를 다시 사용하여 CA에서 반환한 파일을 처리합니다.

  3. 마지막으로 Azure Stack Hub PKI 인증서 유효성 검사의 단계를 완료합니다. 준비 상태 검사기 도구를 한 번 더 사용하여 새 인증서에 대한 유효성 검사를 수행합니다.

내부 인증서 회전

관리자 권한 PowerShell 콘솔을 열고 다음 단계를 완료하여 리소스 공급자의 외부 비밀을 회전합니다.

  1. 운영자 자격 증명을 사용하여 Azure Stack Hub 환경에 로그인합니다. PowerShell용 PowerShell 로그인 스크립트를 사용하여 Azure Stack Hub에 대한 커넥트 참조하세요. AzureRM 대신 PowerShell Az cmdlet을 사용하고 엔드포인트 URL, 디렉터리 테넌트 이름과 같은 모든 자리 표시자 값을 바꾸어야 합니다.

  2. 리소스 공급자의 제품 ID를 확인합니다. Get-AzsProductDeployment cmdlet을 실행하여 최신 리소스 공급자 배포 목록을 검색합니다. 반환된 "value" 컬렉션에는 배포된 각 리소스 공급자에 대한 요소가 포함됩니다. 관심 있는 리소스 공급자를 찾고 다음 속성의 값을 기록해 둡니다.

    • "name" - 값의 두 번째 세그먼트에 리소스 공급자 제품 ID가 포함되어 있습니다.

    예를 들어 SQL RP 배포에는 제품 ID"microsoft.sqlrp"가 있을 수 있습니다.

  3. cmdlet을 Invoke-AzsProductRotateSecretsAction 실행하여 내부 인증서를 회전합니다.

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

외부 인증서 회전

먼저 다음 매개 변수에 대한 값을 기록해야 합니다. | 자리 표시자 | 설명 | 예제 값 | | ----------- | ----------- | --------------| | <product-id> | 최신 리소스 공급자 배포의 제품 ID입니다. | microsoft.sqlrp | | <installed-version> | 최신 리소스 공급자 배포의 버전입니다. | 2.0.0.2 | | <package-id> | 패키지 ID는 product-id 및 installed-version을 연결하여 빌드됩니다. | microsoft.sqlrp.2.0.0.2 | | <cert-secret-name> | 인증서 비밀이 저장되는 이름입니다. | SSLCert | | <cert-pfx-file-path> | 인증서 PFX 파일의 경로입니다. | C:\dir\dbadapter-cert-file.pfx | | <pfx-password> | 인증서에 할당된 암호입니다. PFX 파일. | strong@CertSecret6 |

관리자 권한 PowerShell 콘솔을 열고 다음 단계를 완료합니다.

  1. 운영자 자격 증명을 사용하여 Azure Stack Hub 환경에 로그인합니다. PowerShell용 PowerShell 로그인 스크립트를 사용하여 Azure Stack Hub에 대한 커넥트 참조하세요. AzureRM 대신 PowerShell Az cmdlet을 사용하고 엔드포인트 URL, 디렉터리 테넌트 이름과 같은 모든 자리 표시자 값을 바꾸어야 합니다.

  2. product-id 매개 변수 값을 가져옵니다. Get-AzsProductDeployment cmdlet을 실행하여 최신 리소스 공급자 배포 목록을 검색합니다. 반환된 "value" 컬렉션에는 배포된 각 리소스 공급자에 대한 요소가 포함됩니다. 관심 있는 리소스 공급자를 찾고 다음 속성의 값을 기록해 둡니다.

    • "name" - 값의 두 번째 세그먼트에 리소스 공급자 제품 ID가 포함되어 있습니다.
    • "properties"."deployment"."version" - 현재 배포된 버전 번호가 포함되어 있습니다.

예를 들어 SQL RP 배포에는 제품 ID "microsoft.sqlrp"및 버전"2.0.0.2"이 있을 수 있습니다.

  1. 리소스 공급자 제품 ID 및 버전을 연결하여 리소스 공급자의 패키지 ID를 구성합니다. 예를 들어 이전 단계에서 파생된 값을 사용하면 SQL RP 패키지 ID가 있습니다microsoft.sqlrp.2.0.0.2.

  2. 이전 단계에서 구성한 패키지 ID를 사용하여 Get-AzsProductSecret -PackageId를 실행하고 리소스 공급자가 사용 중인 비밀 유형의 목록을 검색합니다. 반환된 value 컬렉션에서 "Certificate" 속성의 "properties"."secretKind" 값이 포함된 요소를 찾습니다. 이 요소에는 RP의 인증서 비밀에 대한 속성이 포함되어 있습니다. 이 인증서 비밀에 할당된 이름을 적어 둡니다. 이 이름은 "properties" 바로 위에 있는 "name" 속성의 마지막 세그먼트입니다.

예를 들어 SQL RP에 대해 반환된 비밀 컬렉션에는 이름이 인 SSLCert비밀이 "Certificate" 포함됩니다.

  1. Set-AzsProductSecret cmdlet을 사용하여 새 인증서를 Key Vault로 가져올 수 있습니다. 이 인증서는 회전 프로세스에 사용됩니다. 스크립트를 실행하기 전에 변수 자리 표시자 값을 적절하게 바꿉 있습니다.

    $productId = '<product-id>'
    $packageId = $productId + '.' + '<installed-version>'
    $certSecretName = '<cert-secret-name>' 
    $pfxFilePath = '<cert-pfx-file-path>'
    $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force   
    Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -Force
    
  2. 마지막으로 cmdlet을 Invoke-AzsProductRotateSecretsAction 사용하여 비밀을 회전합니다.

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

비밀 회전 진행률 모니터링

Marketplace 서비스에서 리소스 공급자를 선택하여 PowerShell 콘솔에서 또는 관리자 포털에서 비밀 회전 진행률을 모니터링할 수 있습니다.

Screen of secret rotation in progress.

참고

비밀 회전 시간은 10분 이상 소요될 수 있습니다. 작업이 완료되면 리소스 공급자의 상태가 "설치됨"으로 변경됩니다.

진단 로그 수집

Azure Stack Hub에는 진단 로그를 수집, 저장 및 전송하여 Microsoft 지원 여러 가지 방법이 있습니다. 버전 1.1.93부터 SQL 리소스 공급자는 Azure Stack Hub 환경에서 로그를 수집하는 표준 방법을 지원합니다. 자세한 내용은 진단 로그 컬렉션을 참조하세요.

버전 1.1.93부터 SQL 리소스 공급자는 Azure Stack Hub 환경에서 로그를 수집하는 표준 방법을 지원합니다. 이전 버전을 사용하는 경우 SQL 리소스 공급자를 최신 버전으로 업데이트하는 것이 좋습니다.

잠긴 VM에서 로그를 수집하려면 PowerShell JEA(Just Enough Administration) 엔드포인트 DBAdapterDiagnostics를 사용합니다. 이 엔드포인트는 다음 명령을 제공합니다.

  • Get-AzsDBAdapterLog. 이 명령은 리소스 공급자 진단 로그의 zip 패키지를 만들고 세션의 사용자 드라이브에 파일을 저장합니다. 매개 변수 없이 이 명령을 실행할 수 있으며 마지막 4시간 동안의 로그가 수집됩니다.
  • Remove-AzsDBAdapterLog. 이 명령은 리소스 공급자 VM에서 기존 로그 패키지를 제거합니다.

엔드포인트 요구 사항 및 프로세스

리소스 공급자가 설치되거나 업데이트되면 dbadapterdiag 사용자 계정이 만들어집니다. 이 계정을 사용하여 진단 로그를 수집합니다.

참고

dbadapterdiag 계정 암호는 공급자 배포 또는 업데이트 중에 생성된 VM의 로컬 관리자에 사용되는 암호와 동일합니다.

DBAdapterDiagnostics 명령을 사용하려면 리소스 공급자 VM에 대한 원격 PowerShell 세션을 만들고 Get-AzsDBAdapterLog 명령을 실행합니다.

FromDateToDate 매개 변수를 사용하여 로그 수집에 대한 시간 범위를 설정합니다. 이러한 매개 변수 중 하나 또는 둘 다를 지정하지 않으면 다음 기본값이 사용됩니다.

  • FromDate는 현재 시간 4시간 전입니다.
  • ToDate는 현재 시간입니다.

로그를 수집하기 위한 PowerShell 스크립트 예제

다음 스크립트는 리소스 공급자 VM에서 진단 로그를 수집하는 방법을 보여 줍니다.

# Create a new diagnostics endpoint session.
$databaseRPMachineIP = '<RP VM IP address>'
$diagnosticsUserName = 'dbadapterdiag'
$diagnosticsUserPassword = '<Enter Diagnostic password>'

$diagCreds = New-Object System.Management.Automation.PSCredential `
        ($diagnosticsUserName, (ConvertTo-SecureString -String $diagnosticsUserPassword -AsPlainText -Force))
$session = New-PSSession -ComputerName $databaseRPMachineIP -Credential $diagCreds `
        -ConfigurationName DBAdapterDiagnostics `
        -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# Sample that captures logs from the previous hour.
$fromDate = (Get-Date).AddHours(-1)
$dateNow = Get-Date
$sb = {param($d1,$d2) Get-AzSDBAdapterLog -FromDate $d1 -ToDate $d2}
$logs = Invoke-Command -Session $session -ScriptBlock $sb -ArgumentList $fromDate,$dateNow

# Copy the logs to the user drive.
$sourcePath = "User:\{0}" -f $logs
$destinationPackage = Join-Path -Path (Convert-Path '.') -ChildPath $logs
Copy-Item -FromSession $session -Path $sourcePath -Destination $destinationPackage

# Clean up the logs.
$cleanup = Invoke-Command -Session $session -ScriptBlock {Remove-AzsDBAdapterLog}
# Close the session.
$session | Remove-PSSession

SQL Server 리소스 공급자 버전 1의 알려진 제한 사항

제한 사항:
배포, 업그레이드 또는 비밀 회전 스크립트가 실패하면 표준 로그 수집 메커니즘에서 일부 로그를 수집할 수 없습니다.

해결 방법:
표준 로그 수집 메커니즘을 사용하는 것 외에도 스크립트가 찾는 추출된 폴더의 Logs 폴더로 이동하여 더 많은 로그를 찾습니다.

다음 단계

SQL Server 호스팅 서버 추가