Azure CLI를 사용하여 Azure VM의 SQL 데이터베이스 관업
Azure CLI는 명령줄 또는 스크립트를 통해 Azure 리소스를 만들고 관리하는 데 사용됩니다. 이 문서에서는 Azure CLI를 사용하여 Azure VM에서 SQL 데이터베이스를 백업하고 주문형 백업을 트리거하는 방법을 설명합니다. Azure Portal에서 이 작업을 수행해도 됩니다.
이 문서에서는 Azure VM에 SQL 데이터베이스가 이미 설치되어 있다고 가정합니다. (Azure CLI를 사용하여 VM 만들기 가능).
이 문서에서는 다음을 수행하는 방법을 알아봅니다.
- Recovery Services 자격 증명 모음 만들기
- SQL 서버 등록 및 데이터베이스 검색
- SQL 데이터베이스에서 백업 사용
- 주문형 백업 트리거
Azure VM에서의 SQL은 현재 지원되는 시나리오를 참조하세요.
사전 요구 사항
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
Recovery Services 자격 증명 모음 만들기
Recovery Services 자격 증명 모음은 Azure VM 또는 Azure VM에서 실행되는 워크로드(예: SQL 또는 HANA 데이터베이스)와 같은 보호된 각 리소스의 백업 데이터를 저장하는 논리 컨테이너입니다. 보호된 리소스에 대한 백업 작업이 실행될 때 Recovery Services 자격 증명 모음 내에 복구 지점을 만듭니다. 이러한 복구 지점 중 하나를 사용하여 지정된 특정 시점으로 데이터를 복원할 수 있습니다.
az backup vault create 명령을 사용하여 Recovery Services 자격 증명 모음을 만듭니다. 보호하려는 VM의 리소스 그룹과 위치를 사용합니다. Azure CLI를 사용하여 Windows VM과 Linux VM을 만드는 방법을 알아봅니다.
이 문서에서는 다음을 사용합니다.
- SQLResourceGroup 리소스 그룹
- testSQLVM VM
- westus2 위치의 리소스
다음 명령을 실행하여 SQLVault라는 자격 증명 모음을 만듭니다.
az backup vault create --resource-group SQLResourceGroup \
--name SQLVault \
--location westus2
기본적으로 Recovery Services 자격 증명 모음은 지역 중복 스토리지에 대해 설정됩니다. 지역 중복 스토리지는 보조 Azure 지역이 주 지역에서 수백 마일 떨어져 있더라도 백업 데이터가 보조 Azure 지역에 복제되었음을 보장합니다. 스토리지 중복 설정을 수정해야 하는 경우 az backup vault backup-properties set 명령을 사용합니다.
az backup vault backup-properties set \
--name SQLVault \
--resource-group SQLResourceGroup \
--backup-storage-redundancy "LocallyRedundant/GeoRedundant"
자격 증명 모음이 성공적으로 생성되었는지 확인하려면 az backup vault list 명령을 사용합니다. 응답은 다음과 같이 표시됩니다.
Location Name ResourceGroup
--------- --------------- -------------
westus2 SQLVault SQLResourceGroup
SQL Server 등록 및 보호
Recovery Services 자격 증명 모음에 SQL Server를 등록하려면 az backup container register 명령을 사용합니다. VMResourceId는 SQL을 설치하기 위해 만든 VM의 리소스 ID입니다.
az backup container register --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--resource-id VMResourceId
참고 항목
VM에 자격 증명 모음과 동일한 리소스 그룹이 없으면 SQLResourceGroup에서 자격 증명 모음이 생성된 리소스 그룹을 사용합니다.
SQL 서버를 등록하면 현재 데이터베이스가 자동으로 검색됩니다. 그러나 나중에 추가될 수 있는 새 데이터베이스를 검색하려면 등록된 SQL 서버에 추가된 새 데이터베이스 검색 섹션을 참조하세요.
SQL 인스턴스가 자격 증명 모음에 성공적으로 등록되었는지 확인하려면 az backup container list 명령을 사용합니다. 응답은 다음과 같이 표시됩니다.
Name Friendly Name Resource Group Type Registration Status
------------------------------------------------------ -------------- -------------------- --------- ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM testSQLVM SQLResourceGroup AzureWorkload Registered
참고 항목
위의 출력에서 열 name은 컨테이너 이름을 참조합니다. 이 컨테이너 이름은 다음 섹션에서 백업을 사용하고 트리거하는 데 사용됩니다. 예를 들면 VMAppContainer;Compute;SQLResourceGroup;testSQLVM입니다.
SQL 데이터베이스에서 백업 사용
az backup protectable-item list 명령은 앞선 단계에서 등록한 SQL 인스턴스에서 검색된 모든 데이터베이스를 나열합니다.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--protectable-item-type SQLDataBase
--output table
이 목록에서 백업하려는 데이터베이스를 찾아야 하며 목록은 다음과 같이 표시됩니다.
Name Protectable Item Type ParentName ServerName IsProtected
----------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;master SQLDataBase MSSQLServer testSQLVM NotProtected
sqldatabase;mssqlserver;model SQLDataBase MSSQLServer testSQLVM NotProtected
sqldatabase;mssqlserver;msdb SQLDataBase MSSQLServer testSQLVM NotProtected
이제 sqldatabase;mssqlserver;master 데이터베이스의 백업을 구성합니다.
데이터베이스에서 한 번에 하나씩 백업을 구성하고 보호하려면 az backup protection enable-for-azurewl 명령을 사용합니다. 사용할 정책의 이름을 입력합니다. CLI를 사용하여 정책을 만들려면 az backup policy create 명령을 사용합니다. 이 문서에서는 testSQLPolicy 정책을 사용했습니다.
az backup protection enable-for-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--policy-name SQLPolicy \
--protectable-item-name "sqldatabase;mssqlserver;master" \
--protectable-item-type SQLDataBase \
--server-name testSQLVM \
--workload-type SQLDataBase \
--output table
SQL Always On 가용성 그룹이 있고 가용성 그룹 내에서 보호할 수 있는 데이터 원본을 식별하려면 같은 명령을 사용하면 됩니다. 여기서 보호할 수 있는 항목 종류는 SQLAG입니다.
위 백업 구성이 완료되었는지 확인하려면 az backup job list 명령을 사용합니다. 출력은 다음과 같이 나타납니다.
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master 2019-12-03T03:09:210831+00:00
az backup job list 명령은 등록, 백업 구성 및 백업 데이터 삭제와 같은 다른 작업 외에도 보호된 데이터베이스에서 실행되었거나 현재 실행 중인 모든 백업 작업(예약 또는 요청 시)을 나열합니다.
참고 항목
Azure Backup은 Azure VM에서 실행되는 SQL 데이터베이스를 백업할 때 일광 절약 시간제 변경을 자동으로 조정하지 않습니다.
필요에 따라 정책을 수동으로 수정합니다.
자동 보호 사용
원활한 백업 구성을 위해 나중에 추가된 모든 데이터베이스는 특정 정책으로 자동 보호될 수 있습니다. 자동 보호를 사용하려면 az backup protection auto-enable-for-azurewl 명령을 사용합니다.
지침은 향후 모든 데이터베이스를 백업하는 지침이므로 작업은 SQLInstance 수준에서 완료됩니다.
az backup protection auto-enable-for-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--policy-name SQLPolicy \
--protectable-item-name "sqlinstance;mssqlserver" \
--protectable-item-type SQLInstance \
--server-name testSQLVM \
--workload-type MSSQL\
--output table
주문형 백업 트리거
주문형 백업을 트리거하려면 az backup protection backup-now 명령을 사용합니다.
참고 항목
이 백업의 보존 기간은 실행한 주문형 백업 유형에 따라 결정됩니다.
- 주문형 전체는 백업을 최소 45일부터 최대 99년까지 보존됩니다.
- 주문형 복사 전용 전체는 보존을 위해 모든 값을 허용합니다.
- 주문형 차등은 정책에 설정된 예약된 차등 보존에 따라 백업을 보존합니다.
- 주문형 로그는 정책에 설정된 예약 로그 보존에 따라 백업을 보존합니다.
az backup protection backup-now --resource-group SQLResourceGroup \
--item-name sqldatabase;mssqlserver;master \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--backup-type Full
--retain-until 01-01-2040
--output table
출력은 다음과 같이 나타납니다.
Name ResourceGroup
------------------------------------ -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 sqlResourceGroup
응답에 작업 이름이 제공됩니다. 이 작업 이름을 사용하여 az backup job show 명령을 사용해서 작업 상태를 추적할 수 있습니다.
다음 단계
- CLI를 사용하여 Azure VM에서 SQL 데이터베이스를 복원하는 방법을 알아봅니다.
- Azure Portal을 사용하여 Azure VM에서 실행되는 SQL 데이터베이스를 백업하는 방법을 알아봅니다.