빠른 시작: Azure Blob Storage로 SQL 백업 및 복원

적용 대상: SQL Server 2016(13.x) 이상 Azure SQL Managed Instance

이 빠른 시작은 Azure Blob Storage에 백업을 쓰고 Azure Blob Storage에서 복원하는 방법을 이해하는 데 도움이 됩니다. 이 문서에서는 Azure Blob Storage 컨테이너를 만들고, Azure Blob Storage에 백업을 작성한 다음, 복원을 수행하는 방법을 설명합니다.

참고 항목

SQL Server 2012 SP1 CU2는 Azure Blob Storage에 백업하기 위한 지원을 도입했습니다. SQL Server 2014 및 이전 버전에서는 이 빠른 시작 문서에서 설명하는 SAS(공유 액세스 서명)를 지원하지 않습니다.

SQL Server 2014 이전의 경우 자습서: SQL Server 2014 백업 및 Microsoft Azure Blob Storage로 복원을 사용합니다.

전제 조건

이 빠른 시작을 완료하려면 SQL Server 백업 및 복원 개념 및 T-SQL 구문을 잘 알고 있어야 합니다. Azure Storage 계정, SSMS(SQL Server Management Studio) 및 SQL Server 또는 Azure SQL Managed Instance를 실행하는 서버에 대한 액세스 권한이 필요합니다. 또한 BACKUP 및 RESTORE 명령을 실행하는 데 사용하는 계정은 모든 자격 증명 변경 권한이 있는 db_backup operator 데이터베이스 역할에 있어야 합니다.

Azure Blob Storage 컨테이너 만들기

컨테이너는 Blob 집합의 그룹화를 제공합니다. 모든 Blob은 컨테이너에 있어야 합니다. 스토리지 계정은 개수에 제한 없이 컨테이너를 포함할 수 있지만 적어도 하나는 포함해야 합니다. 한 컨테이너에 저장될 수 있는 Blob 수에도 제한이 없습니다.

컨테이너를 만들려면 다음 단계를 수행합니다.

  1. Azure Portal을 엽니다.

  2. 스토리지 계정으로 이동합니다.

  3. 스토리지 계정을 선택하고 Blob Services까지 아래로 스크롤합니다.

  4. Blobs을 선택하고 + 컨테이너를 선택하여 새 컨테이너를 추가합니다.

  5. 컨테이너의 이름을 입력하고 지정한 컨테이너 이름을 기록해 둡다. 이 정보는 이 빠른 시작의 뒷부분에 있는 T-SQL 문의 URL(백업 파일 경로)에서 사용됩니다.

  6. 확인을 선택합니다.

    New container

참고 항목

공용 컨테이너를 만들도록 선택한 경우에도 SQL Server 백업 및 복원에는 스토리지 계정에 대한 인증이 필요합니다. REST API를 사용하여 프로그래밍 방식으로 컨테이너를 만들 수도 있습니다. 자세한 내용은 컨테이너 만들기를 참조하세요.

테스트 데이터베이스 만들기

이 단계에서는 SSMS(SQL Server Management Studio)를 사용하여 테스트 데이터베이스를 만듭니다.

  1. SSMS(SQL Server Management Studio)를 시작하고 SQL Server 인스턴스에 연결합니다.
  2. 새 쿼리 창을 엽니다.
  3. 다음 T-SQL(Transact-SQL) 코드를 실행하여 테스트 데이터베이스를 만듭니다. 개체 탐색기 에서 데이터베이스 노드를 새로 고쳐 새 데이터베이스를 확인합니다. SQL Managed Instance에서 새로 만든 데이터베이스는 TDE를 자동으로 사용하도록 설정되므로 계속하려면 TDE를 사용하지 않도록 설정해야 합니다.
USE [master]
GO

-- Create database
CREATE DATABASE [SQLTestDB]
GO

-- Create table in database
USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
    ID INT NOT NULL PRIMARY KEY,
    c1 VARCHAR(100) NOT NULL,
    dt1 DATETIME NOT NULL DEFAULT getdate()
)
GO

-- Populate table 
USE [SQLTestDB]
GO

INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO

SELECT * FROM SQLTest
GO

-- Disable TDE for newly-created databases on SQL Managed Instance 
USE [SQLTestDB];
GO
ALTER DATABASE [SQLTestDB] SET ENCRYPTION OFF;
GO
DROP DATABASE ENCRYPTION KEY
GO

자격 증명 만들기

SQL Server Management Studio의 GUI를 사용하여 아래 단계에 따라 자격 증명을 만듭니다. 또는 프로그래밍 방식으로 자격 증명을 만들 수 있습니다.

  1. SSMS(SQL Server Management Studio)개체 탐색기 내에서 데이터베이스 노드를 확장합니다.

  2. SQLTestDB 데이터베이스를 마우스 오른쪽 단추로 클릭하고 작업을 마우스로 가리킨 다음 백업...을 선택하여 데이터베이스 백업 마법사를 시작합니다.

  3. 백업에서 대상 드롭다운까지 URL을 선택한 다음 추가 선택하여 백업 대상 선택 대화 상자를 시작합니다.

    Back up to URL

  4. 백업 대상 선택 대화 상자에서 새 컨테이너를 선택하여 Microsoft 구독에 연결 창을 시작합니다.

    Screenshot of the Select Backup Destination dialog window with the New container option called out.

  5. 로그인을 선택하여 Azure Portal에 로그인 한 다음 로그인 프로세스를 진행합니다.

  6. 드롭다운에서 구독을 선택합니다.

  7. 드롭다운에서 스토리지 계정을 선택합니다.

  8. 드롭다운에서 이전에 만든 컨테이너를 선택합니다.

  9. 자격 증명 만들기를 선택하여 SAS(공유 액세스 서명)를 생성합니다. 복원에 필요하므로 이 값을 저장합니다.

    Create credential

  10. 확인을 클릭하여 Microsoft 구독에 연결 창을 닫습니다. 그러면 백업 대상 선택 대화 상자에서 Azure Storage 컨테이너 값이 채워집니다. 확인을 선택하여 선택한 스토리지 컨테이너를 선택하고 대화 상자를 닫습니다.

  11. 이 시점에서 다음 섹션의 4단계로 건너뛰고 데이터베이스 백업을 수행하거나, Transact-SQL을 사용하여 데이터베이스를 백업하려면 데이터베이스 백업 마법사를 닫을 수 있습니다.

데이터베이스 백업

이 단계에서는 SQL Server Management Studio의 GUI 또는 T-SQL(Transact-SQL)을 사용하여 Azure Blob Storage 계정에 SQLTestDB 데이터베이스를 백업합니다.

  1. 데이터베이스 백업 마법사가 아직 열려 있지 않으면 SSMS(SQL Server Management Studio)개체 탐색기 내에서 데이터베이스 노드를 확장합니다.

  2. SQLTestDB 데이터베이스를 마우스 오른쪽 단추로 클릭하고 작업을 마우스로 가리킨 다음 백업...을 선택하여 데이터베이스 백업 마법사를 시작합니다.

  3. 백업할 위치 드롭다운에서 URL을 선택하고 추가를 선택하여 백업 대상 선택 대화 상자를 시작합니다.

    Back up to URL

  4. Azure Storage 컨테이너 드롭다운에서 이전 단계에서 만든 컨테이너를 선택합니다.

    Azure storage container

  5. 데이터베이스 백업 마법사에서 확인을 선택하여 데이터베이스를 백업합니다.

  6. 데이터베이스가 성공적으로 백업되면 확인을 선택하여 모든 백업 관련 창을 닫습니다.

    데이터베이스 백업 마법사 맨 위에 있는 스크립트를 선택하여 이 명령 뒤에 Transact-SQL을 스크립팅할 수 있습니다.Script command

데이터베이스 삭제

이 단계에서는 복원을 수행하기 전에 데이터베이스를 삭제합니다. 이 단계는 이 자습서의 용도로만 필요하지만 일반 데이터베이스 관리 절차에서는 사용되지 않을 수 있습니다. 이 단계를 건너뛸 수 있지만 관리되는 인스턴스에서 복원하는 동안 데이터베이스 이름을 변경하거나 복원 명령을 WITH REPLACE 실행하여 데이터베이스를 온-프레미스에서 성공적으로 복원해야 합니다.

  1. 개체 탐색기에서 데이터베이스 노드를 확장하고 데이터베이스를 SQLTestDB 마우스 오른쪽 단추로 클릭한 다음 삭제를 선택하여 개체 삭제 마법사를 시작합니다.
  2. 관리되는 인스턴스의 경우, 확인을 선택하여 데이터베이스를 삭제합니다. 온-프레미스의 경우, 기존 연결 닫기 옆의 확인란을 선택하고 확인을 선택하여 데이터베이스를 삭제합니다.

데이터베이스 복원

이 단계에서는 SQL Server Management Studio의 GUI 또는 Transact-SQL을 사용하여 데이터베이스를 복원합니다.

  1. SQL Server Management Studio 내의 개체 탐색기에서 데이터베이스 노드를 마우스 오른쪽 단추로 클릭하고 데이터베이스 복원을 선택합니다.

  2. 디바이스를 선택한 다음 줄임표(...)를 선택하여 디바이스를 선택합니다.

    Select restore device

  3. Backup 미디어 유형 드롭다운에서 URL선택하고 추가를 선택하여 디바이스를 추가합니다.

    Add backup device

  4. 드롭다운에서 컨테이너를 선택하고 자격 증명을 만들 때 저장한 SAS(공유 액세스 서명)를 붙여넣습니다.

    Screenshot of the Select a Backup File Location dialog box with the Shared Access Signature field populated.

  5. 확인을 선택하여 백업 파일 위치를 선택합니다.

  6. 컨테이너를 확장하고 백업 파일이 있는 컨테이너를 선택합니다.

  7. 복원할 백업 파일을 선택하고 확인을 선택합니다. 파일이 표시되지 않으면 잘못된 SAS 키를 사용할 수 있습니다. 이전과 동일한 단계에 따라 SAS 키를 다시 생성하여 컨테이너에 추가할 수 있습니다.

    Select restore file

  8. 확인을 선택하여 백업 디바이스 선택 대화 상자를 닫습니다.

  9. 확인을 선택하여 데이터베이스를 복원합니다.

참고 항목

다음은 SQL Server 백업에 Azure Blob Storage를 사용할 때 개념 및 모범 사례를 이해하는 데 권장되는 몇 가지 권장 사항입니다.