Habilitar o Banco de Dados de Stretch para uma tabela

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores – Somente Windows

Importante

O banco de dados de ampliação foi preterido no SQL Server 2022 (16.x) e no Banco de Dados SQL do Azure. Esse recurso será removido em uma versão futura do mecanismo de banco de dados. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

Para configurar uma tabela para o Stretch Database, selecione Stretch > Habilitar para que uma tabela no SQL Server Management Studio abra o assistente Habilitar Tabela para Stretch. Você também pode usar o Transact-SQL para habilitar o Stretch Database em uma tabela existente ou para criar uma nova tabela com o Stretch Database habilitado.

Importante

O suporte ao Stretch Database é removido no SQL Server Management Studio v19. Para gerenciar o Stretch Database, você pode usar o SQL Server Management Studio v18.9.1 ou inferiores.

  • Se você armazenar dados frios em uma tabela separada, poderá migrar a tabela inteira.

  • Se a tabela contiver dados quentes e frios, será possível especificar uma função de filtro para selecionar as linhas a serem migradas.

Pré-requisitos. Se você selecionar Stretch > Habilitar para uma tabela e ainda não tiver habilitado o Stretch Database para o banco de dados, o assistente configurará primeiro o banco de dados para o Stretch Database. Siga as etapas em Comece executando o Assistente para Habilitar o Banco de Dados para Stretch em vez das etapas deste artigo.

Permissões. A habilitação do Stretch Database em um banco de dados ou em uma tabela requer permissões db_owner. A habilitação do Banco de Dados de Stretch em uma tabela também exige permissões ALTERAR na tabela.

Observação

Mais tarde, se você desabilitar o Stretch Database, lembre-se de que desabilitar uma tabela ou um banco de dados do Stretch Database não excluirá o objeto remoto. Se você quiser excluir a tabela remota ou o banco de dados remoto, descarte-o(a) usando o Portal de Gerenciamento do Azure. Os objetos remotos continuam incorrendo em custos do Azure até que você os exclua manualmente.

Use o assistente

1. Inicie o assistente

  1. No SQL Server Management Studio, no Pesquisador de objetos, selecione a tabela na qual você deseja habilitar o Stretch.

  2. Clique com o botão direito do mouse e selecione Stretch > Habilitar para iniciar o assistente.

2. Introdução

Verifique o objetivo do assistente e os pré-requisitos.

3. Selecione as tabelas do banco de dados

Confirme se a tabela que você quer habilitar é exibida e selecionada.

Você pode migrar uma tabela inteira ou especificar uma função de filtro no assistente. Se você desejar usar um tipo diferente de função de filtro para selecionar as linhas a serem migradas, siga um destes procedimentos.

  • Saia do assistente e execute a instrução ALTER TABLE para habilitar o Stretch para a tabela e especificar uma função de filtro.

  • Execute a instrução ALTER TABLE para especificar uma função de filtro depois que você sair do assistente. Para as etapas obrigatórias, consulte Adicionar uma função de filtro após executar o assistente.

A sintaxe ALTER TABLE é descrita posteriormente neste artigo.

4. Resumo

Examine os valores que você inseriu e as opções selecionadas no assistente. Em seguida, escolha Concluir para habilitar o Stretch.

5. Resultados

Revise os resultados.

Usar o Transact-SQL

Você pode habilitar o Stretch Database para uma tabela existente ou criar uma nova tabela com o Stretch Database habilitado usando Transact-SQL.

Opções

Use as seguintes opções ao executar CREATE TABLE ou ALTER TABLE para habilitar o Stretch Database em uma tabela.

  • Opcionalmente, use a cláusula FILTER_PREDICATE = <function> para especificar uma função a fim de selecionar linhas a serem migradas se a tabela contiver dados quentes e frios. O predicado deve chamar uma função embutida com valor de tabela. Para obter mais informações, consulte Selecione linhas para migrar usando uma função de filtro. Se você não especificar uma função de filtro, a tabela inteira será migrada.

    Importante

    Se você fornecer uma função de filtro precária, a migração de dados também será precária. O Stretch Database aplica a função de filtro à tabela usando o operador CROSS APPLY.

  • Especifique MIGRATION_STATE = OUTBOUND para iniciar a migração de dados imediatamente ou MIGRATION_STATE = PAUSED para adiar o início da migração de dados.

Habilitar o Stretch Database para uma tabela existente

Para configurar uma tabela existente para o Stretch Database, execute o comando ALTER TABLE.

O exemplo a seguir migra a tabela inteira e começa a migração de dados imediatamente.

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

O exemplo a seguir migra apenas as linhas identificadas pela função com valor de tabela embutida dbo.fn_stretchpredicate e adia a migração de dados. Para obter mais informações sobre a função de filtro, veja Select rows to migrate by using a filter function (Selecionar linhas a serem migradas usando uma função de filtro).

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

Para saber mais, confira ALTER TABLE (Transact-SQL).

Criar uma nova tabela com o Stretch Database habilitado

Para criar uma nova tabela com o Stretch Database habilitado, execute o comando CREATE TABLE.

O exemplo a seguir migra a tabela inteira e começa a migração de dados imediatamente.

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

O exemplo a seguir migra apenas as linhas identificadas pela função com valor de tabela embutida dbo.fn_stretchpredicate e adia a migração de dados. Para obter mais informações sobre a função de filtro, veja Select rows to migrate by using a filter function (Selecionar linhas a serem migradas usando uma função de filtro).

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

Para saber mais, confira CREATE TABLE (Transact-SQL).

Confira também