Add-SqlAvailabilityDatabase
가용성 그룹에 주 데이터베이스를 추가하거나 보조 데이터베이스를 가용성 그룹에 조인합니다.
구문
Add-SqlAvailabilityDatabase
-Database <String[]>
[[-Path] <String[]>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Add-SqlAvailabilityDatabase
-Database <String[]>
[-InputObject] <AvailabilityGroup[]>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Add-SqlAvailabilityDatabase cmdlet은 가용성 그룹에 주 데이터베이스를 추가하거나 보조 데이터베이스를 가용성 그룹에 조인합니다. InputObject 또는 Path 매개 변수는 가용성 그룹을 지정합니다. 데이터베이스는 하나의 가용성 그룹에만 속할 수 있습니다.
가용성 그룹에 데이터베이스를 추가하려면 주 복제본을 호스트하는 서버 인스턴스에서 이 cmdlet을 실행합니다. 하나 이상의 로컬 사용자 데이터베이스를 지정합니다.
보조 데이터베이스를 가용성 그룹에 조인하려면 보조 복제본을 호스트하는 서버 인스턴스에서 보조 데이터베이스를 수동으로 준비합니다. 그런 다음 보조 복제본을 호스트하는 서버 인스턴스에서 이 cmdlet을 실행합니다.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
예제
예제 1: 가용성 그룹에 데이터베이스 추가
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"
이 명령은 가용성 그룹 'MainAG'에 데이터베이스 'Database16'을 추가합니다. 가용성 그룹의 주 서버 인스턴스에서 이 명령을 실행합니다. 이 명령은 데이터 동기화를 위해 보조 데이터베이스를 준비하지 않습니다.
예제 2: 가용성 그룹에 데이터베이스 조인
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"
이 명령은 'Database16'이라는 보조 데이터베이스를 보조 복제본을 호스트하는 서버 인스턴스 중 하나의 가용성 그룹 'MainAG'에 조인합니다.
예제 3: 데이터베이스 추가 및 가용성 그룹에 보조 데이터베이스 조인
PS C:\> $DatabaseBackupFile = "\\share\backups\Database16.bak"
PS C:\> $LogBackupFile = "\\share\backups\Database16.trn"
PS C:\> $AGPrimaryPath = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG"
PS C:\> $MyAGSecondaryPath = "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG"
PS C:\> Backup-SqlDatabase -Database "Database16" -BackupFile $DatabaseBackupFile -ServerInstance "PrimaryServer\InstanceName"
PS C:\> Backup-SqlDatabase -Database "Database16" -BackupFile $LogBackupFile -ServerInstance "PrimaryServer\InstanceName" -BackupAction Log
PS C:\> Restore-SqlDatabase -Database "Database16" -BackupFile $DatabaseBackupFile -ServerInstance "SecondaryServer\InstanceName" -NoRecovery
PS C:\> Restore-SqlDatabase -Database "Database16" -BackupFile $LogBackupFile -ServerInstance "SecondaryServer\InstanceName" -RestoreAction Log -NoRecovery
PS C:\> Add-SqlAvailabilityDatabase -Path $AGPrimaryPath -Database 'Database16'
PS C:\> Add-SqlAvailabilityDatabase -Path $AGSecondaryPath -Database "Database16"
다음은 가용성 그룹의 주 복제본을 호스트하는 서버 인스턴스의 데이터베이스에서 보조 데이터베이스를 준비하는 예제입니다. 가용성 그룹에 데이터베이스를 주 데이터베이스로 추가합니다. 마지막으로 보조 데이터베이스를 가용성 그룹에 조인합니다.
여섯 번째 명령은 주 서버의 'Database16'에 대한 로그 파일을 $LogBackupFile 위치로 백업합니다.
예제 4: 가용성 그룹에 데이터베이스를 추가하는 스크립트 만들기
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16" -Script
이 명령은 가용성 그룹 'MainAG'에 데이터베이스 'Database16'을 추가하는 Transact-SQL 스크립트를 만듭니다.
매개 변수
-AccessToken
사용자/암호 또는 Windows 인증 대신 SQL Server에 인증하는 데 사용되는 액세스 토큰입니다.
예를 들어 Service Principal
또는 Managed Identity
사용하여 SQL Azure DB
연결하고 SQL Azure Managed Instance
데 사용할 수 있습니다.
사용할 매개 변수는 토큰을 나타내는 문자열이거나 Get-AzAccessToken -ResourceUrl https://database.windows.net
실행하여 반환된 PSAccessToken
개체일 수 있습니다.
이 매개 변수는 모듈의 v22에서 새로 생성됩니다.
형식: | PSObject |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Confirm
cmdlet을 실행하기 전에 확인 메시지를 표시합니다.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Database
사용자 데이터베이스의 배열을 지정합니다. 이 cmdlet은 이 매개 변수가 지정하는 데이터베이스를 가용성 그룹에 추가하거나 조인합니다. 지정한 데이터베이스는 SQL Server의 로컬 인스턴스에 있어야 합니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Encrypt
SQL Server에 연결할 때 사용할 암호화 유형입니다.
이 값은 Microsoft.Data.SqlClient 드라이버의 SqlConnection 개체에 있는 Encrypt
속성 SqlConnectionEncryptOption
매핑됩니다.
모듈의 v22에서 기본값은 Optional
(v21과의 호환성을 위해)입니다. 모듈의 v23+에서 기본값은 기존 스크립트에 대한 호환성이 손상되는 변경을 만들 수 있는 '필수'입니다.
이 매개 변수는 모듈의 v22에서 새로 생성됩니다.
형식: | String |
허용되는 값: | Mandatory, Optional, Strict |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-HostNameInCertificate
SQL Server TLS/SSL 인증서의 유효성을 검사하는 데 사용할 호스트 이름입니다. SQL Server 인스턴스가 Force Encryption을 사용하도록 설정되어 있고 호스트 이름/짧은 이름을 사용하여 인스턴스에 연결하려는 경우 이 매개 변수를 전달해야 합니다. 이 매개 변수를 생략하면 강제 암호화를 사용하도록 설정된 SQL Server 인스턴스에 연결하려면 FQDN(정규화된 도메인 이름)을 -ServerInstance 전달해야 합니다.
이 매개 변수는 모듈의 v22에서 새로 생성됩니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-InputObject
이 cmdlet이 데이터베이스를 추가하거나 조인하는 가용성 그룹을 AvailabilityGroup 개체로 지정합니다.
형식: | AvailabilityGroup[] |
Position: | 1 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Path
이 cmdlet이 데이터베이스를 추가하거나 조인하는 가용성 그룹의 경로를 지정합니다. 이 매개 변수를 지정하지 않으면 이 cmdlet은 현재 작업 위치를 사용합니다.
형식: | String[] |
Position: | 1 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ProgressAction
powerShell이 스크립트, cmdlet 또는 공급자(예: Write-Progress cmdlet에서 생성된 진행률 표시줄)에 의해 생성된 진행률 업데이트에 응답하는 방법을 결정합니다. Write-Progress cmdlet은 명령의 상태를 표시하는 진행률 표시줄을 만듭니다.
형식: | ActionPreference |
별칭: | proga |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Script
이 cmdlet이 이 cmdlet이 수행하는 작업을 수행하는 Transact-SQL 스크립트를 반환한다는 것을 나타냅니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-TrustServerCertificate
신뢰의 유효성을 검사하기 위해 인증서 체인을 건너뛰는 동안 채널이 암호화되는지 여부를 나타냅니다.
모듈의 v22에서 기본값은 $true
(v21과의 호환성을 위해)입니다. 모듈의 v23+에서 기본값은 '$false'이며, 이로 인해 기존 스크립트에 대한 호환성이 손상되는 변경이 발생할 수 있습니다.
이 매개 변수는 모듈의 v22에서 새로 생성됩니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-WhatIf
cmdlet이 실행되면 어떻게 되는지 보여 주세요. cmdlet이 실행되지 않습니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
System.String[], Microsoft.SqlServer.Management.Smo.AvailabilityGroup[]
출력
System.Object