테이블에 대해 Stretch Database를 사용하도록 설정

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

중요

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

Stretch Database에 테이블을 구성하려면 SQL Server Management Studio에서 테이블에 대해 스트레치 > 활성화를 선택하여 스트레치에 테이블 사용 마법사를 엽니다. 또한 Transact-SQL을 사용하여 기존 테이블에 Stretch Database를 사용하도록 설정하거나 Stretch Database를 사용하여 새 테이블을 만들 수도 있습니다.

중요

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

  • 콜드 데이터를 별도 테이블에 저장하는 경우 전체 테이블을 마이그레이션할 수 있습니다.

  • 테이블에 핫 및 콜드 데이터가 모두 포함된 경우 필터 함수를 지정하여 마이그레이션할 행을 선택할 수 있습니다.

필수 구성 요소. 데이터베이스에 대해 Stretch Database를 사용하도록 설정하지 않은 경우 테이블에 대해 스트레치 > 사용 을 선택하면 마법사에서 먼저 Stretch Database에 대해 데이터베이스를 구성합니다. 이 문서의 단계 대신 스트레치에 데이터베이스 사용 마법사를 실행하여 시작의 단계를 수행합니다.

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

참고

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

마법사 사용

1. 마법사 시작

  1. SQL Server Management Studio의 개체 탐색기에서 스트레치를 사용하도록 설정할 테이블을 선택합니다.

  2. 마우스 오른쪽 단추로 클릭하고 스트레치 > 사용을 선택하여 마법사를 시작합니다.

2. 소개

마법사의 목적과 필수 구성 요소를 검토합니다.

3. 데이터베이스 테이블 선택

사용하도록 설정하려는 테이블이 표시되고 선택되어 있는지 확인합니다.

전체 테이블을 마이그레이션하거나 마법사에서 필터 함수를 지정할 수 있습니다. 다른 유형의 필터 함수를 사용하여 마이그레이션할 행을 선택하려면 다음 중 하나를 수행합니다.

  • 마법사를 종료하고 ALTER TABLE 문을 실행하여 테이블에 대해 스트레치를 사용하도록 설정하고 필터 함수를 지정합니다.

  • 마법사를 종료한 후 ALTER TABLE 문을 실행하여 필터 함수를 지정합니다. 필요한 단계는 마법사를 실행한 후 필터 함수 추가를 참조하세요.

ALTER TABLE 구문은 이 문서의 후반부에 설명되어 있습니다.

4. 요약

마법사에서 입력한 값과 선택한 옵션을 검토합니다. 그런 다음, 마침을 선택하여 스트레치를 사용하도록 설정합니다.

5. 결과

결과를 검토합니다.

Transact-SQL 사용

또한 Transact-SQL을 사용하여 기존 테이블에 대해 Stretch Database를 사용하도록 설정하거나 Stretch Database를 사용하여 새 테이블을 만들 수도 있습니다.

옵션

CREATE TABLE 또는 ALTER TABLE을 실행하여 테이블에서 Stretch Database를 사용하는 경우 다음 옵션을 사용합니다.

  • 선택 사항으로, 테이블에 핫 및 콜드 데이터가 모두 포함된 경우 FILTER_PREDICATE = <function> 절을 사용하여 함수를 지정해 마이그레이션할 행을 선택할 수 있습니다. 조건자는 인라인 테이블 반환 함수를 호출해야 합니다. 자세한 내용은 필터 함수를 사용하여 마이그레이션할 행 선택을 참조하세요. 필터 함수를 지정하지 않으면 전체 테이블이 마이그레이션됩니다.

    중요

    제대로 수행되지 않는 필터 함수를 제공하면 데이터 마이그레이션 성능도 저하됩니다. Stretch Database는 CROSS APPLY 연산자를 사용하여 테이블에 필터 함수를 적용합니다.

  • MIGRATION_STATE = OUTBOUND를 지정하여 즉시 마이그레이션을 시작하거나 MIGRATION_STATE = PAUSED를 지정하여 데이터 마이그레이션의 시작을 연기합니다.

기존 테이블에 Stretch Database를 사용하도록 설정

Stretch Database에 대한 기존 테이블을 구성하려면 ALTER TABLE 명령을 실행합니다.

다음 예제에서는 전체 테이블을 마이그레이션하고 즉시 데이터 마이그레이션을 시작합니다.

USE [<Stretch-enabled database name>];
GO
ALTER TABLE [<table name>]
    SET ( REMOTE_DATA_ARCHIVE = ON ( MIGRATION_STATE = OUTBOUND ) );
GO

다음 예제에서는 dbo.fn_stretchpredicate 인라인 테이블 값 함수에 의해 식별된 행만 마이그레이션하고 데이터 마이그레이션을 연기합니다. 필터 함수에 대한 자세한 내용은 필터 함수를 사용하여 마이그레이션할 행 선택을 참조하세요.

USE [<Stretch-enabled database name>];
GO
ALTER TABLE [<table name>]
    SET ( REMOTE_DATA_ARCHIVE = ON (
        FILTER_PREDICATE = dbo.fn_stretchpredicate(),
        MIGRATION_STATE = PAUSED ) );
GO

자세한 내용은 ALTER TABLE(Transact-SQL)을 참조하세요.

활성화된 Stretch Database에서 새 테이블 만들기

Stretch Database를 사용하도록 설정된 새 테이블을 만들려면 CREATE TABLE 명령을 실행합니다.

다음 예제에서는 전체 테이블을 마이그레이션하고 즉시 데이터 마이그레이션을 시작합니다.

USE [<Stretch-enabled database name>];
GO
CREATE TABLE [<table name>]
    (
        col1 int
        /* replace the sample "col1" column shown above, with the actual list of columns */
    )
    WITH ( REMOTE_DATA_ARCHIVE = ON ( MIGRATION_STATE = OUTBOUND ) );
GO

다음 예제에서는 dbo.fn_stretchpredicate 인라인 테이블 값 함수에 의해 식별된 행만 마이그레이션하고 데이터 마이그레이션을 연기합니다. 필터 함수에 대한 자세한 내용은 필터 함수를 사용하여 마이그레이션할 행 선택을 참조하세요.

USE [<Stretch-enabled database name>];
GO
CREATE TABLE [<table name>]
    (
        col1 int
        /* replace the sample "col1" column shown above, with the actual list of columns */
    )
    WITH ( REMOTE_DATA_ARCHIVE = ON (
        FILTER_PREDICATE = dbo.fn_stretchpredicate(),
        MIGRATION_STATE = PAUSED ) );
GO

자세한 내용은 CREATE TABLE(Transact-SQL)을 참조하세요.

참고 항목