다음을 통해 공유


데이터베이스에 대해 Stretch Database를 사용하도록 설정

적용 대상: SQL Server 2016(13.x) 이상 - Windows만 해당

중요

Stretch Database는 SQL Server 2022(16.x) 및 Azure SQL 데이터베이스에서 사용되지 않습니다. 데이터베이스 엔진의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.

Stretch Database에 기존 데이터베이스를 구성하려면 SQL Server Management Studio에서 데이터베이스에 대해 작업 > 스트레치 > 사용을 선택하여 스트레치에 데이터베이스 사용 마법사를 엽니다. Transact-SQL을 사용하여 데이터베이스에 대해 Stretch Database를 사용하도록 설정할 수 있습니다.

Stretch Database에 대해 데이터베이스를 사용하도록 설정하지 않은 경우 개별 테이블에 대해 작업 > 스트레치 > 사용을 선택하면 마법사에서 Stretch Database에 대해 데이터베이스를 구성하고 사용자가 프로세스의 일부로 테이블을 선택할 수 있도록 합니다. 테이블에 대해 Stretch Database를 사용하도록 설정의 단계 대신 이 문서의 단계를 따르세요.

데이터베이스 또는 테이블에 대해 Stretch Database를 사용하도록 설정하려면 db_owner 권한이 필요합니다. 또한 데이터베이스에 대해 Stretch Database를 사용하도록 설정하려면 CONTROL DATABASE 권한이 필요합니다.

참고

나중에 Stretch Database를 사용하지 않도록 설정하는 경우 테이블 또는 데이터베이스에 대해 Stretch Database를 사용하지 않도록 설정해도 원격 개체가 삭제되지 않습니다. 원격 테이블 또는 원격 데이터베이스를 삭제하려면 Azure 관리 포털을 사용하여 삭제해야 합니다. 원격 개체는 수동으로 삭제할 때까지 Azure 비용이 계속해서 발생합니다.

시작하기 전에

  • Stretch Database에 대한 제한을 참조하세요.

  • Stretch Database는 Azure로 데이터를 마이그레이션하므로 청구를 위해 Azure 계정 및 구독이 필요합니다. Azure 계정에 등록합니다.

  • 새 Azure 서버를 만들거나 기존 Azure 서버를 선택하는 데 필요한 연결 및 로그인 정보를 갖습니다.

전제 조건: 서버에서 Stretch Database 사용

데이터베이스나 테이블에서 Stretch Database를 사용하도록 설정하려면 먼저 로컬 서버에서 Stretch Database를 사용하도록 설정해야 합니다. 이 작업을 수행하려면 sysadmin 또는 serveradmin 권한이 필요합니다.

  • 필요한 관리 권한이 있으면 스트레치에 데이터베이스 사용 마법사가 Stretch Database에 사용할 서버를 구성합니다.

  • 필요한 권한이 없는 경우에는 마법사를 실행하기 전에 관리자가 sp_configure를 실행하여 수동으로 옵션을 활성화하거나 관리자가 마법사를 실행해야 합니다.

서버에서 Stretch Database를 수동으로 활성화하려면, sp_configure을(를) 실행하고 원격 데이터 보관 옵션을 설정합니다. 다음 예에서는 값을 1로 설정하여 원격 데이터 보관 옵션을 활성화합니다.

EXEC sp_configure 'remote data archive' , '1';
GO

RECONFIGURE;
GO

자세한 내용은 원격 데이터 보관 서버 구성 옵션sp_configure(Transact-SQL)을 참조하세요.

마법사 사용

스트레치용 데이터베이스 활성화 마법사에 대한 자세한 내용(입력해야 하는 정보 및 선택해야 하는 항목 포함)은 스트레치용 데이터베이스 활성화 마법사를 실행하여 시작을 참조하세요.

Transact-SQL 사용

개별 테이블에서 Stretch Database를 사용하도록 설정하려면 데이터베이스에서 사용하도록 설정해야 합니다.

데이터베이스 또는 테이블에 대해 Stretch Database를 사용하도록 설정하려면 db_owner 권한이 필요합니다. 또한 데이터베이스에 대해 Stretch Database를 사용하도록 설정하려면 CONTROL DATABASE 권한이 필요합니다.

  1. 시작하기 전에 Stretch Database가 마이그레이션하는 데이터에 대한 기존 Azure 서버를 선택하거나 새 Azure 서버를 만듭니다.

  2. Azure 서버에서 SQL Server가 원격 서버와 통신할 수 있도록 하는 SQL Server의 IP 주소 범위를 사용하여 방화벽 규칙을 만듭니다.

    SSMS(SQL Server Management Studio)의 개체 탐색기에서 Azure 서버에 연결을 시도하면 필요한 값을 쉽게 찾고 방화벽 규칙을 만들 수 있습니다. SSMS를 사용하면 필요한 IP 주소 값이 이미 포함된 다음 대화 상자를 열어 규칙을 만들 수 있습니다.

    중요

    Stretch Database 지원은 SQL Server Management Studio v19에서 제거됩니다. Stretch Database를 관리하기 위해 SQL Server Management Studio v18.9.1 이하를 사용할 수 있습니다.

    Stretch에 대한 방화벽 규칙을 보여주는 스크린샷.

  3. Stretch Database에 대해 SQL Server 데이터베이스를 구성하려면 데이터베이스에 데이터베이스 마스터 키가 있어야 합니다. 데이터베이스 마스터 키는 Stretch Database가 원격 데이터베이스에 연결하는 데 사용하는 자격 증명을 보호합니다. 다음 예에서는 새 데이터베이스 마스터 키를 만듭니다.

    USE <database>;
    GO
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD='<password>';
    GO
    

    데이터베이스 마스터 키에 대한 자세한 내용은 CREATE MASTER KEY(Transact-SQL)데이터베이스 마스터 키 만들기를 참조하세요.

  4. Stretch Database용 데이터베이스를 구성하는 경우 온-프레미스 SQL Server와 원격 Azure 서버 간의 통신에 사용할 Stretch Database에 대한 자격 증명을 제공해야 합니다. 두 가지 옵션이 있습니다.

    • 관리자 자격 증명을 제공할 수 있습니다.

      • 마법사를 실행하여 Stretch Database를 사용하도록 설정하는 경우 그때 자격 증명을 만들 수 있습니다.

      • ALTER DATABASE를 실행하여 Stretch Database를 사용하도록 설정하려는 경우 수동으로 자격 증명을 만든 다음, ALTER DATABASE를 실행하여 Stretch Database를 사용하도록 설정해야 합니다.

        다음 예제에서는 새 자격 증명을 만듭니다.

        CREATE DATABASE SCOPED CREDENTIAL [<db_scoped_credential_name>]
            WITH IDENTITY = '<identity>' , SECRET = '<secret>';
        GO
        

        자격 증명에 대한 자세한 내용은 CREATE DATABASE SCOPED CREDENTIAL(Transact-SQL)를 참조하세요. 자격 증명을 만들려면 ALTER ANY CREDENTIAL 권한이 필요합니다.

    • 다음 조건이 모두 참인 경우 원격 Azure 서버와 통신하기 위해 SQL Server용 페더레이션된 서비스 계정을 사용할 수 있습니다.

      • SQL Server 인스턴스를 실행하는 서비스 계정은 도메인 계정입니다.

      • 이 도메인 계정은 Active Directory가 Microsoft Entra ID(이전의 Azure Active Directory)와 페더레이션된 도메인에 속합니다.

      • 원격 Azure 서버는 Microsoft Entra 인증을 지원하도록 구성됩니다.

      • SQL Server 인스턴스를 실행하는 서비스 계정은 원격 Azure 서버에서 dbmanager 또는 sysadmin 계정으로 구성되어야 합니다.

  5. Stretch Database에 대한 데이터베이스를 구성하려면 ALTER DATABASE 명령을 실행합니다.

    1. SERVER 인수의 경우 이름의 .database.windows.net 부분(예: MyStretchDatabaseServer.database.windows.net)을 포함하여 기존 Azure 서버의 이름을 제공합니다.

    2. CREDENTIAL 인수와 기존 관리자 자격 증명을 제공하거나 FEDERATED_SERVICE_ACCOUNT = ON을 지정합니다. 다음 예제에서는 기존 자격 증명을 제공합니다.

    ALTER DATABASE [<database name>]
        SET REMOTE_DATA_ARCHIVE = ON
            (
                SERVER = '<server_name>' ,
                CREDENTIAL = [<db_scoped_credential_name>]
            );
    GO
    

다음 단계

참고 항목