다음을 통해 공유


빠른 시작: 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 스토리지에 대한 백업을 지원합니다. SQL Server 2014 및 이전 버전에서는 이 빠른 시작 문서에서 설명하는 SAS(공유 액세스 서명)를 지원하지 않습니다.

SQL Server 2014 및 이전 버전의 경우 자습서: SQL Server 2014 백업 및 Microsoft Azure Blob 스토리지로 복원을 참조합니다.

필수 조건

이 빠른 시작을 완료하려면 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. 확인을 선택합니다.

    새 컨테이너

참고 항목

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

데이터베이스를 만듭니다.

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

  1. SQL Server Management Studio(SSMS)를 열고 SQL Server 인스턴스에 연결합니다.
  2. 새 쿼리 창을 엽니다.
  3. 다음 Transact-SQL(T-SQL) 코드를 실행하여 테스트 데이터베이스를 만듭니다. 새 데이터베이스를 보려면 개체 탐색기에서 데이터베이스 노드를 새로 고칩니다. SQL Managed Instance에서 새로 만든 데이터베이스는 자동으로 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. SQL Server Management Studio(SSMS)개체 탐색기 내에서 데이터베이스 노드를 확장합니다.

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

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

    URL로 백업

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

    새 컨테이너 옵션이 호출된 ‘백업 대상 선택’ 대화 상자 창의 스크린샷

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

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

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

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

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

    자격 증명 만들기

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

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

데이터베이스 백업

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

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

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

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

    URL로 백업

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

    Azure Storage 컨테이너

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

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

    이 명령 뒤에 있는 Transact-SQL을 스크립트로 작성하려면 데이터베이스 백업 마법사 상단에서 스크립트를 선택하면 됩니다. 스크립트 명령

데이터베이스 삭제

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

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

데이터베이스 복원

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

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

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

    복원 디바이스 선택

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

    백업 디바이스 추가

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

    공유 액세스 서명 필드가 채워진 백업 파일 위치 선택 대화 상자의 스크린샷

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

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

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

    복원 파일을 선택합니다.

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

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

참고 항목

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