Azure CLI를 사용하여 Azure VM의 SQL 데이터베이스 관리
Azure CLI는 명령줄 또는 스크립트를 통해 Azure 리소스를 만들고 관리하는 데 사용됩니다. 이 문서에서는 Azure CLI를 사용하여 Azure VM에서 백업된 SQL 데이터베이스를 관리하는 방법을 설명합니다. Azure Portal에서 이 작업을 수행해도 됩니다.
이 문서에서는 다음을 수행하는 방법을 알아봅니다.
- 백업 및 복원 작업 모니터링
- SQL 인스턴스에 추가된 새 데이터베이스 보호
- 정책 변경
- 데이터 삭제로
- 보호 다시 시작
CLI를 사용하여 Azure에서 SQL 데이터베이스 백업을 사용하여 SQL 데이터베이스를 백업한 분들은 다음 리소스를 사용 중입니다.
- SQLResourceGroup 리소스 그룹
- SQLVault라는 자격 증명 모음
- VMAppContainer;Compute;SQLResourceGroup;testSQLVM이라는 이름의 보호된 컨테이너
- 백업된 데이터베이스/sqldatabase;mssqlserver;master라는 항목
- westus2 지역의 리소스
Azure CLI는 Azure Backup 사용하여 백업되는 Azure VM에서 실행되는 SQL 데이터베이스를 관리하는 프로세스를 용이하게 합니다. 다음 섹션에서는 각 관리 작업에 대해 설명합니다.
참고 항목
지원되는 구성 및 시나리오에 대한 자세한 내용은 SQL 백업 지원 매트릭스를 참조하세요.
백업 및 복원 작업 모니터링
az backup job list 명령을 사용하여 완료된 작업 또는 현재 실행 중인 작업(백업 또는 복원)을 모니터링합니다. 또한 CLI를 사용하면 현재 실행 중인 작업을 일시 중단하거나 작업이 완료될 때까지 대기할 수 있습니다.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
출력은 다음과 같이 나타납니다.
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master [testSQLVM] 2019-12-03T03:09:210831+00:00
ccdb4dce-8b15-47c5-8c46-b0985352238f Backup (Full) Completed master [testSQLVM] 2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282 Backup (Differential) Completed master [testSQLVM] 2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813 Restore (Log) Completed master [testSQLVM] 2019-12-03T05:44:51.081607+00:00
정책 변경
SQL 백업 구성을 기반으로 하는 정책을 변경하려면 az backup policy set 명령을 사용합니다. 이 명령의 name 매개 변수는 정책을 변경하려는 백업 항목을 참조합니다. 여기서 SQL 데이터베이스 sqldatabase;mssqlserver;master의 정책을 새 정책 newSQLPolicy로 바꿉니다. az backup policy create 명령을 사용하여 새 정책을 만들 수 있습니다.
az backup item set-policy --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name newSQLPolicy \
--name sqldatabase;mssqlserver;master \
출력은 다음과 같이 나타납니다.
Name Operation Status Item Name Backup Management Type Start Time UTC Duration
------------------------------------ --------------- --------- ----------- ------------------------ -------------------------------- --------------
ba350996-99ea-46b1-aae2-e2096c1e28cd ConfigureBackup Completed master AzureWorkload 2022-06-22T08:24:03.958001+00:00 0:01:12.435765
차등 백업 정책 만들기
차등 백업 정책을 만들려면 다음 매개 변수와 함께 az backup policy create 명령을 사용합니다.
- --backup-management-type: Azure 워크로드
- --workload-type: SQL Database
- --name: 정책 이름
- --policy: 일정 및 보존에 대한 적절한 세부 정보가 포함된 JSON 파일
- --resource-group: 자격 증명 모음의 리소스 그룹
- --vault-name: 자격 증명 모음의 이름/
예시:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
샘플 JSON (sqlpolicy.json):
"eTag": null,
"id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupPolicies/SQLPolicy",
"location": null,
"name": "sqlpolicy",
"properties": {
"backupManagementType": "AzureWorkload",
"workLoadType": "SQLDataBase",
"settings": {
"timeZone": "UTC",
"issqlcompression": false,
"isCompression": false
},
"subProtectionPolicy": [
{
"policyType": "Full",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Sunday"
],
"scheduleRunTimes": [
"2022-06-13T19:30:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"weeklySchedule": {
"daysOfTheWeek": [
"Sunday"
],
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 104,
"durationType": "Weeks"
}
},
"monthlySchedule": {
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 60,
"durationType": "Months"
}
},
"yearlySchedule": {
"retentionScheduleFormatType": "Weekly",
"monthsOfYear": [
"January"
],
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 10,
"durationType": "Years"
}
}
}
},
{
"policyType": "Differential",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunTimes": [
"2022-06-13T02:00:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 30,
"durationType": "Days"
}
}
},
{
"policyType": "Log",
"schedulePolicy": {
"schedulePolicyType": "LogSchedulePolicy",
"scheduleFrequencyInMins": 120
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 15,
"durationType": "Days"
}
}
}
],
"protectedItemsCount": 0
},
"resourceGroup": "SQLResourceGroup",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}
정책이 성공적으로 생성되면 명령을 실행하는 동안 매개 변수로 전달한 정책 JSON이 명령 출력에 표시됩니다.
정책의 다음 섹션을 수정하여 차등 백업에 대해 필요한 백업 빈도 및 보존 기간을 지정할 수 있습니다.
예시:
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 30,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
예시:
토요일에만 차등 백업을 사용하도록 설정하고 60일 동안 보존하려면 정책을 다음과 같이 변경합니다.
- retentionDuration 카운트를 60일로 업데이트
- 토요일만 ScheduleRunDays로 지정
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 60,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
SQL 인스턴스에 추가된 새 데이터베이스 보호
SQL 인스턴스를 Recovery Services 자격 증명 모음에 등록하면 이 인스턴스의 모든 데이터베이스가 자동으로 검색됩니다.
그러나 나중에 SQL 인스턴스에 새 데이터베이스를 추가한 경우 az backup protectable-item initialize 명령을 사용합니다. 이 명령은 추가된 새 데이터베이스를 검색합니다.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
그런 다음, az backup protectable-item list cmdlet을 사용하여 SQL 인스턴스에서 검색된 모든 데이터베이스를 나열합니다. 하지만 백업이 이미 구성된 데이터베이스는 이 목록에서 제외됩니다. 백업할 데이터베이스가 검색된 후에는 SQL 데이터베이스에 백업 사용을 참조하세요.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
백업하려는 새 데이터베이스는 다음과 같이 목록에 표시됩니다.
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
SQL 데이터베이스 보호 중지
다음 프로세스에서 SQL 데이터베이스 보호를 중지할 수 있습니다.
- 미래의 모든 백업 작업을 중지하고 모든 복구 지점을 {b>삭제.
- 미래의 모든 백업 작업을 중지하고 복구 지점을 원래 상태로 유지
복구 지점을 그대로 두기로 선택하는 경우 다음 세부 정보를 염두에 두어야 합니다.
- 모든 복구 지점은 영구적으로 유지되고, 모든 정리는 데이터 보관을 통해 보호 중지 시 중지됩니다.
- 보호된 인스턴스와 사용한 스토리지 요금이 청구됩니다.
- 백업을 중지하지 않고 데이터 원본을 삭제하면 새 백업이 실패합니다.
보호를 중지하는 프로세스는 아래에 자세히 설명되어 있습니다.
데이터 보관을 통해 보호 중지
데이터 보관을 통해 보호를 중지하려면 az backup protection disable 명령을 사용합니다.
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--output table
출력은 다음과 같이 나타납니다.
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
이 작업의 상태를 확인하려면 az backup job show 명령을 사용합니다.
데이터 보관 없이 보호 중지
데이터 보관 없이 보호를 중지하려면 az backup protection disable 명령을 사용합니다.
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--delete-backup-data true \
--output table
출력은 다음과 같이 나타납니다.
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
이 작업의 상태를 확인하려면 az backup job show 명령을 사용합니다.
보호 다시 시작
데이터 보관을 통해 SQL 데이터베이스에 대한 보호를 중지하는 경우 나중에 보호를 다시 시작할 수 있습니다. 백업된 데이터를 보관하지 않으면 보호를 다시 시작할 수 없습니다.
보호를 다시 시작하려면 az backup protection resume 명령을 사용합니다.
az backup protection resume --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name SQLPolicy \
--output table
출력은 다음과 같이 나타납니다.
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
이 작업의 상태를 확인하려면 az backup job show 명령을 사용합니다.