Enable Stretch Database for a database

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

Importante

O Stretch Database foi preterido no SQL Server 2022 (16.x). Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

Para configurar um banco de dados para o Stretch Database, selecione Tarefas > Stretch > Habilitar para um banco de dados no SQL Server Management Studio a fim de abrir o assistente Habilitar Banco de Dados para Stretch. Você também pode usar o Transact-SQL de modo a habilitar o Stretch Database para um banco de dados.

Se você selecionar Tarefas > Stretch > Habilitar para uma tabela individual e ainda não tiver habilitado o banco de dados para o Stretch Database, o assistente configurará o banco de dados para o Stretch Database e permitirá que você selecione tabelas como parte do processo. Siga as etapas deste artigo em vez das etapas em Habilitar o Stretch Database para uma tabela.

A habilitação do Stretch Database em um banco de dados ou em uma tabela requer permissões db_owner. Habilitar o Banco de Dados de Stretch em um banco de dados também exige as permissões CONTROLAR BANCO DE DADOS.

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.

Antes de começar

  • Leia Limitações do Stretch Database.

  • O Stretch Database migra dados para o Azure, portanto, você precisa de uma conta do Azure e uma assinatura para cobrança. Inscreva-se para obter uma conta do Azure.

  • Ter as informações de conexão e o logon necessárias para criar um novo servidor do Azure ou para selecionar um servidor do Azure existente.

Pré-requisito: habilitar Stretch Database no servidor

Para que seja possível habilitar o Stretch Database em um banco de dados ou em uma tabela, você precisa habilitá-lo no servidor local. Essa operação requer permissões sysadmin ou serveradmin.

  • Se você tiver as permissões administrativas necessárias, o assistente Habilitar o Banco de Dados para Stretch vai configurar o servidor para o Stretch Database.

  • Se você não tiver as permissões necessárias, um administrador deverá habilitar a opção manualmente executando sp_configure antes de você executar o assistente, ou um administrador deverá executar o assistente.

Para habilitar o Stretch Database no servidor manualmente, execute sp_configure e ative a opção remover arquivo de dados . O exemplo a seguir habilita a opção remote data archive definindo seu valor para 1.

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

RECONFIGURE;
GO

Para saber mais, confira Configurar a opção de configuração de servidor do arquivo de dados remoto e sp_configure (Transact-SQL).

Usar o assistente

Para obter informações sobre o Assistente Habilitar o Banco de Dados para Stretch, incluindo as informações que você tem que inserir e as escolhas que tem que fazer, confira Comece executando o Assistente para habilitar o banco de dados para Stretch.

Usar o Transact-SQL

Para que seja possível habilitar o Stretch Database em tabelas individuais, você precisa habilitá-lo no banco de dados.

A habilitação do Stretch Database em um banco de dados ou em uma tabela requer permissões db_owner. Habilitar o Banco de Dados de Stretch em um banco de dados também exige as permissões CONTROLAR BANCO DE DADOS.

  1. Antes de começar, escolha um servidor do Azure existente para os dados que o Stretch Database migra, ou crie um novo servidor do Azure.

  2. No servidor do Azure, crie uma regra de firewall com o endereço IP do SQL Server que permita ao SQL Server comunicar-se com o servidor remoto.

    Você pode encontrar facilmente os valores necessários e criar a regra de firewall ao tentar se conectar ao servidor do Azure no Pesquisador de Objetos do SSMS (SQL Server Management Studio). O SSMS ajuda você a criar a regra, abrindo a caixa de diálogo a seguir, que já inclui os valores de endereços IP necessários.

    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.

    Captura de tela mostrando uma regra de firewall para o Stretch.

  3. Para configurar um banco de dados do SQL Server para o Stretch Database, o banco de dados deve ter uma chave mestra de banco de dados. A chave mestra de banco de dados protege as credenciais usadas pelo Stretch Database para se conectar ao banco de dados remoto. O exemplo a seguir cria uma nova chave mestra de banco de dados.

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

    Para saber mais sobre a chave mestra de banco de dados, confira CREATE MASTER KEY (Transact-SQL) e Criar uma chave mestra de banco de dados.

  4. Quando você configura um banco de dados para o Stretch Database, é preciso fornecer uma credencial para o Stretch Database usar na comunicação entre o SQL Server local e o servidor remoto do Azure. Você tem duas opções.

    • Pode fornecer uma credencial do administrador.

      • Se você habilitar o Stretch Database executando o assistente, será possível criar a credencial nesse momento.

      • Se você planeja habilitar o Stretch Database executando ALTER DATABASE, será preciso criar a credencial manualmente antes de executar ALTER DATABASE para habilitar o Stretch Database.

        O exemplo a seguir cria uma nova credencial.

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

        Para saber mais sobre as credenciais, confira CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL). A criação da credencial exige permissões ALTER ANY CREDENTIAL.

    • Você pode usar uma conta de serviço federado para o SQL Server se comunicar com o servidor remoto do Azure quando todas as condições a seguir forem verdadeiras.

      • A conta do serviço na qual a instância do SQL Server está sendo executada é uma conta de domínio.

      • A conta de domínio pertence a um domínio cujo Active Directory é federado com o Azure Active Directory.

      • O servidor remoto do Azure está configurado para permitir a autenticação do Azure Active Directory.

      • A conta de serviço na qual a instância do SQL Server está sendo executada deve ser configurada como uma conta dbmanager ou sysadmin no servidor remoto do Azure.

  5. Para configurar um banco de dados para o Stretch Database, execute o comando ALTER DATABASE.

    1. Para o argumento SERVER, forneça o nome de um servidor existente do Azure, incluindo a parte .database.windows.net do nome; por exemplo, MyStretchDatabaseServer.database.windows.net.

    2. Forneça uma credencial de administrador existente com o argumento CREDENTIAL ou especifique FEDERATED_SERVICE_ACCOUNT = ON. O exemplo a seguir fornece uma credencial existente.

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

Próximas etapas

Confira também