Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Como: Copiar seus bancos de dados
Collapse the table of content
Expand the table of content

Como: Usar cópia de banco de dados (Banco de Dados SQL do Azure)

Atualizado: fevereiro de 2015

Este tópico descreve como usar a Cópia de Banco de Dados (Cópia do DB) para fazer uma cópia do seu Banco de dados SQL do Microsoft Azure. O novo banco de dados criado como resultado da operação de cópia é uma cópia totalmente funcional e independente do banco de dados de origem. A operação de cópia preserva a camada de serviço e o nível de desempenho do banco de dados de origem. Verifique se o servidor de destino tem uma cota disponível, do contrário a operação irá falhar. Para obter todos os métodos e cenários disponíveis para a cópia de bancos de dados, consulte Copiando bancos de dados no Banco de dados SQL do Azure.

Neste tópico

A tabela a seguir lista os métodos disponíveis para criar uma cópia de um banco de dados.

 

Método de cópia Premium Standard Basic Business Web Entre servidores/Entre regiões

Portal de Gerenciamento do Azure

Oferece suporte apenas para cópia no mesmo servidor.

ImportantImportante
Consulte a seção de restrições abaixo para obter mais informações.

Transact-SQL

(instrução CREATE DATABASE com a cláusula AS COPY OF)

Há suporte para o método entre servidores, mas ambos os servidores devem estar na mesma região.

API de REST

Dá suporte para cópia entre servidores e regiões. Para bancos de dados Premium, existe a opção de configurar uma relação de replicação entre regiões, o que permite manter cópias do banco de dados em servidores localizados em todas as regiões geográficas. Para obter mais informações, consulte Available Methods to Copy a Database.

PowerShell

Dá suporte para cópia entre servidores e regiões. Para bancos de dados Premium, existe a opção de configurar uma relação de replicação entre regiões, o que permite manter cópias do banco de dados em servidores localizados em todas as regiões geográficas. Para obter mais informações, consulte Available Methods to Copy a Database.

  • Uma região do Banco de dados SQL do Azure pode conter vários clusters físicos. Atualmente, você só pode copiar um banco de dados entre dois clusters diferentes usando cmdlets do PowerShell ou a API REST. Além disso, você só pode copiar um banco de dados entre duas assinaturas diferentes usando Transact-SQL. Como parte do gerenciamento da capacidade, o Banco de dados SQL do Azure pode mover periodicamente o seu servidor para um cluster diferente. No entanto, os servidores pertencentes à mesma assinatura são mantidos no mesmo cluster.

    Para determinar se a cópia de banco de dados é possível:  use um comando ping ("ping <server>") nos servidores de origem e destino para resolver seus endereços IP. Se os endereços IP forem iguais, a cópia de bancos de dados será possível. Para obter mais informações, consulte Usando o comando ping.

  • A cópia de bancos de dados pode ser feita usando Transact-SQL, PowerShell ou a API REST. No entanto, usando Transact-SQL, você estará limitado a fazer cópias entre servidores diferentes dentro do mesmo cluster. O PowerShell e a API REST dão suporte para cópias em um servidor diferente de um cluster físico diferente.

A carga de trabalho de cópia do banco de dados afeta o desempenho dos servidores do Banco de dados SQL do Azure envolvidos no processo de cópia. Desse modo, o processo de cópia pode exigir um tempo maior para ser concluído. Se a cópia do banco de dados falhar, reinicie o processo de cópia quando a demanda no banco de dados de origem estiver baixa. Talvez seja necessário suspender outras cargas de trabalho no banco de dados de origem até que o processo de cópia seja concluído.

Para copiar um banco de dados usando Transact-SQL, seu logon requer as seguintes permissões:

  • Em ambos os servidores: o logon deve ter o mesmo nome de logon e senha em ambos os servidores Banco de dados SQL do Azure.

  • No servidor de destino: o logon deve ser membro da função dbmanager no nível de servidor. Observação: a entidade de segurança em nível de servidor do seu servidor Banco de dados SQL do Azure não é membro da função dbmanager, mas tem automaticamente as mesmas permissões. Para obter mais informações sobre como gerenciar logons no Banco de dados SQL do Azure, consulte Gerenciamento de bancos de dados, logons e usuários em Banco de dados SQL do Azure.

  • No servidor de origem: o logon deve ser o DBO do banco de dados de origem. Somente o logon que criou o banco de dados de origem, o DBO ou a entidade de segurança no nível de servidor pode copiar o banco de dados para outro banco de dados.

Quando esses requisitos de permissão forem atendidos, seu logon poderá executar as instruções Banco de dados SQL do Azure ALTER DATABASE e DROP DATABASE no novo banco de dados. Ao copiar um banco de dados usando o PowerShell ou a API REST, as permissões usam a autenticação baseada em certificado.

noteObservação
Não há suporte para a alteração do proprietário do banco de dados usando a instrução ALTER AUTHORIZATION ON DATABASE no Banco de dados SQL do Azure. Você pode criar usuários adicionais dentro do banco de dados no Banco de dados SQL do Azure e adicioná-los à função db_owner em nível de banco de dados. Esses usuários adicionais podem ser vinculados a um logon diferente do logon que criou o banco de dados inicialmente. Entretanto, esses usuários adicionais não podem executar uma cópia de banco de dados.

ImportantImportante
Configurações de auditoria do banco de dados não são copiadas para o novo banco de dados. Caso você precise de auditoria no novo banco de dados, será necessário habilitá-la quando o banco de dados estiver ativo. Se o novo banco de dados estiver na mesma região que o banco de dados original, você poderá usar a mesma conta de armazenamento do Azure. Se o novo banco de dados estiver em uma região diferente da do banco de dados original, você deverá usar uma conta de armazenamento que esteja localizada na mesma região que o novo banco de dados. Para obter mais informações sobre auditoria para o Banco de Dados SQL do Azure, consulte Auditoria do Banco de Dados.

Ícone de seta usado com o link Voltar ao Início [Top]

  1. Inscreva-se no Portal de Gerenciamento do Azure usando sua conta da Microsoft.

  2. Navegue para a guia BANCOS DE DADOS SQL.

  3. Realce o banco de dados na lista Bancos de Dados e, na barra de comandos na parte inferior da tela, clique em Copiar. Isso abre a caixa de diálogo Copiar Configurações do Banco de Dados. Especifique um nome para o novo banco de dados e clique na caixa de diálogo Verificar para iniciar a operação de cópia.

  1. Inicie o PowerShell e conecte-se à sua assinatura do Azure.

  2. Use o cmdlet Start-AzureSqlDatabaseCopy para criar uma cópia do seu banco de dados.

    Observe que o parâmetro –ContinuousCopy para este cmdlet não é usado neste caso. Esse parâmetro é usado apenas para configurar a Replicação Geográfica. Para obter mais informações sobre a Replicação Geográfica, consulte Continuidade dos negócios no Banco de dados SQL do Azure.

  3. Exemplo de uso: Esse exemplo copia o banco de dados "Orders" para o banco de dados "Orders Copy". O banco de dados original e a cópia residem no mesmo servidor, "abc".

    PS C:\>Start-AzureSqlDatabaseCopy -ServerName "abc" -DatabaseName "Orders" -PartnerDatabase "Orders Copy"
    
    

  • Faça logon no banco de dados master usando o logon da entidade de segurança no nível de servidor ou o logon que criou o banco de dados que deseja copiar. Logons que não são a entidade de segurança em nível de servidor devem ser membros da função dbmanager para copiar bancos de dados. Para obter mais informações sobre logons e conexão com o servidor, consulte Gerenciamento de bancos de dados, logons e usuários em Banco de dados SQL do Azure e Desenvolvimento do Banco de Dados SQL do Azure: Tópicos de instruções, respectivamente.

  • Inicie a cópia do banco de dados de origem com a instrução CREATE DATABASE. A execução dessa instrução inicia o processo de cópia do banco de dados. Como a cópia de um banco de dados é um processo assíncrono, a instrução CREATE DATABASE é retornada antes que a cópia do banco de dados seja concluída.

  • Monitore o processo de cópia consultando as exibições sys.databases e sys.dm_database_copies.

    • Enquanto a cópia está em andamento, a coluna state_desc da exibição sys.databases do novo banco de dados é definida como COPYING.

    • Se a cópia falhar, a coluna state_desc da exibição sys.databases do novo banco de dados será definida como SUSPECT. Nesse caso, execute a instrução DROP no novo banco de dados e tente novamente mais tarde.

    • Se a cópia for bem-sucedida, a coluna state_desc da exibição sys.databases do novo banco de dados será definida como ONLINE. Nesse caso, a cópia foi concluída e o novo banco de dados é um banco de dados normal, que pode ser alterado independentemente do banco de dados de origem.

  • (Opcional) Se você decidir cancelar a cópia enquanto estiver em andamento, execute a instrução DROP DATABASE no novo banco de dados. Opcionalmente, executar a instrução DROP DATABASE no banco de dados de origem também cancelará o processo de cópia.

O exemplo de código a seguir inicia o processo de cópia do banco de dados. O exemplo copia o banco de dados Database1A em um novo banco de dados denominado Database1B no mesmo servidor do Banco de dados SQL do Azure.

-- Execute on the master database.
-- Start copying.
CREATE DATABASE Database1B AS COPY OF Database1A;

Os exemplos de código a seguir podem ser usados para monitorar o processo de cópia do banco de dados, consultando as exibições sys.databases e sys.dm_database_copies para obter informações sobre o novo banco de dados denominado Database1B.

-- Execute on the master database.
-- Retrieve state of the new database, Database1B.
SELECT name, state, state_desc FROM sys.databases WHERE name = 'Database1B'

ImportantImportante
A instrução a seguir retorna um conjunto de resultados apenas enquanto a cópia está em andamento. Quando a cópia for concluída e o novo banco de dados estiver online, essa consulta não retornará mais um resultado.

-- Execute on the master database.
-- Retrieve copying details.
SELECT * FROM sys.dm_database_copies copies
Inner JOIN sys.databases databases ON copies.database_id = databases.database_id
      WHERE databases.name = 'Database1B';

Ícone de seta usado com o link Voltar ao Início [Top]

  • Faça logo no banco de dados master do servidor de destino, o servidor do Banco de dados SQL do Azure onde o novo banco de dados será criado. Use um logon que tenha os mesmos nome e senha que o DBO (proprietário do banco de dados) do banco de dados de origem no servidor do Banco de dados SQL do Azure de origem. O logon no servidor de destino também deve ser membro da função dbmanager ou ser o logon de entidade de segurança no nível do servidor. Para obter mais informações sobre logons e conexão com o servidor, consulte Gerenciamento de bancos de dados, logons e usuários em Banco de dados SQL do Azure e Desenvolvimento do Banco de Dados SQL do Azure: Tópicos de instruções, respectivamente.

  • Inicie a cópia do banco de dados de origem com a instrução Banco de dados SQL do Azure CREATE DATABASE. A execução dessa instrução no servidor de destino inicia o processo de cópia do banco de dados. Como a cópia de um banco de dados é um processo assíncrono, a instrução CREATE DATABASE é retornada antes que a cópia do banco de dados seja concluída.

  • Monitore o processo de cópia consultando as exibições sys.databases e sys.dm_database_copies.

    • Enquanto a cópia está em andamento, a coluna state_desc da exibição sys.databases do novo banco de dados é definida como COPYING.

    • Se a cópia falhar, a coluna state_desc da exibição sys.databases do novo banco de dados será definida como SUSPECT. Nesse caso, execute a instrução DROP no novo banco de dados e tente novamente mais tarde.

    • Se a cópia for bem-sucedida, a coluna state_desc da exibição sys.databases do novo banco de dados será definida como ONLINE. Nesse caso, a cópia foi concluída e o novo banco de dados é um banco de dados normal, que pode ser alterado independentemente do banco de dados de origem.

  • (Opcional) Se você decidir cancelar a cópia enquanto estiver em andamento, execute a instrução DROP DATABASE no novo banco de dados. Opcionalmente, executar a instrução DROP DATABASE no banco de dados de origem também cancelará o processo de cópia.

  • (Opcional) Depois que o novo banco de dados estiver online no servidor de destino, use a instrução ALTER USER para remapear os usuários do novo banco de dados para os logons no servidor de destino. Todos os usuários no novo banco de dados mantêm as permissões que eles tinham no banco de dados de origem. O usuário que iniciou a cópia do banco de dados torna-se o proprietário do novo banco de dados e é atribuído a um novo SID (identificador de segurança). Após a cópia bem-sucedida e antes que outros usuários sejam remapeados, somente o logon que iniciou a cópia, o DBO (proprietário do banco de dados), poderá fazer logon no novo banco de dados.

O exemplo de código a seguir inicia o processo de cópia do banco de dados do bipk56ex. O exemplo demonstra a cópia do banco de dados Database1A do servidor do Banco de dados SQL do Azure denominado vipk56ex5c em um novo banco de dados denominado Database2A no Server2.

-- Execute on the master database of bipk56ex
-- Start copying from Server1 to Server2
CREATE DATABASE Database2A AS COPY OF vipk56ex5c.Database1A;

O exemplo de código a seguir monitora o processo de cópia do banco de dados. O exemplo consulta as exibições sys.databases e sys.dm_database_copies no Server2 para obter informações sobre o novo banco de dados denominado Database2A.

ImportantImportante
A instrução a seguir retorna um conjunto de resultados apenas enquanto a cópia está em andamento. Quando a cópia for concluída e o novo banco de dados estiver online, essa consulta não retornará mais um resultado.

-- Execute on the master database.
-- Retrieve state of the new database, Database1B.
SELECT name, state, state_desc FROM sys.databases WHERE name = 'Database1B'

ImportantImportante
A instrução a seguir retorna um conjunto de resultados apenas enquanto a cópia está em andamento. Quando a cópia for concluída e o novo banco de dados estiver online, essa consulta não retornará mais um resultado.

-- Execute on the master database.
-- Retrieve copying details.
SELECT * FROM sys.dm_database_copies copies
Inner JOIN sys.databases databases ON copies.database_id = databases.database_id
      WHERE databases.name = 'Database1B';

Ícone de seta usado com o link Voltar ao Início [Top]

Se quiser interromper o processo de cópia antes de concluí-lo, poderá usar a instrução DROP DATABASE para remover o banco de dados de destino. Para que isso funcione, use um logon que atenda aos requisitos de permissão descritos em Permissões, acima neste tópico.

Ícone de seta usado com o link Voltar ao Início [Top]

  • Quando a cópia do banco de dados é concluída, o novo banco de dados entra em um de dois estados, como se segue:

    • Se o processo de cópia for bem-sucedido, o novo banco de dados entrará no estado ONLINE. Depois que o novo banco de dados estiver online, ele poderá ser gerenciado e usado independentemente do banco de dados de origem.

    • Se o processo de cópia falhar, o novo banco de dados entrará no estado SUSPECT. O banco de dados suspeito está indisponível. Ele não pode ser acessado nem recuperado. Nesse caso, remova o banco de dados de destino e tente copiar o banco de dados de origem novamente.

    Para exibir o estado, consulte a coluna state_desc da exibição sys.databases.

  • Quando a cópia estiver concluída, o novo banco de dados terá a mesma camada de serviço, nível de desempenho e tamanho máximo que o banco de dados de origem. Para obter informações sobre como definir e alterar a camada de serviço ou o nível de desempenho no Banco de dados SQL do Azure, consulte Changing Database Service Tiers and Performance Levels.

  • Quando a cópia entre servidores estiver concluída, os logons, os usuários e as permissões da cópia poderão ser gerenciados de forma independente do banco de dados de origem. Use o logon do DBO e a instrução ALTER USER para mapear usuários no novo banco de dados para logons no novo servidor do Banco de dados SQL do Azure. Por exemplo: ALTER USER userName WITH LOGIN='loginName'.

Ícone de seta usado com o link Voltar ao Início [Top]

Consulte também

Mostrar:
© 2015 Microsoft