Copie o banco de dados com o Sql Server 2005

1

Minha situação é a seguinte: Eu tenho um banco de dados Sql Server 2005 de produção. Uma vez por dia, desejo duplicar esse banco de dados para outro banco de dados de failover que esteja na mesma instância do servidor. Não quero que esses bancos de dados sejam sincronizados mais de uma vez por dia (sem espelhamento, por exemplo). Eu sei que posso fazer isso com backup / restauração, mas queria saber se há uma solução de uma etapa para fazer isso.

Alguém sabe uma boa maneira de fazer isso sem backup / restauração?

    
por Mike Gates 20.08.2009 / 00:21

6 respostas

2

Por que você quer evitar backup / restauração?

Você pode fazer o script dos comandos de backup e restauração e criá-los como uma tarefa do SQL, para que seja executada automaticamente. Alguma coisa estará se conectando ao banco de dados de cópia durante as operações normais? (porque isso pode causar problemas com a restauração)

    
por 20.08.2009 / 00:31
1

Existem duas maneiras de copiar um banco de dados por atacado: backup / restore e detach / attach - nenhum dos quais é um processo de uma etapa, e backup / restore definitivamente seria preferível, dado o cenário que você descreve.

Se o banco de dados de "failover" precisar ser mantido on-line enquanto está sendo atualizado, você estará praticamente preso à replicação. No entanto, como os bancos de dados estão na mesma instância, você pode simplesmente usar consultas entre bancos de dados para mover dados.

Eu odeio ir além dos limites da questão, mas um banco de dados de "failover" na mesma instância da produção não fornece muita tolerância a falhas. Com que tipo de falhas você está tentando se proteger?

Edit: O que você pode estar procurando, então (se você estiver na edição enterprise 2005+), é um instantâneo do banco de dados como JMusgrove sugere. Você pode tirar um instantâneo a qualquer momento e depois reverter o banco de dados para o instantâneo, se necessário. O instantâneo é somente de leitura até e a menos que você reverta para ele. Consulte este artigo do MSDN sobre Reverter para um instantâneo do banco de dados . Eu sugiro que seja entre instantâneos e backup / restauração.

    
por 20.08.2009 / 00:54
0

Como codeulike sugere, o que há de errado com backup e restauração. Parece o ajuste semântico mais próximo do que você está tentando fazer.

Praticamente qualquer ação que você possa fazer no SQL Server Management Studio tem a opção de gerar um script para executar a ação, em vez de realmente realizar a ação lá e então.

Procure o botão Script na parte superior de cada janela pop-up. O resto é fácil - crie um script usando os blocos de construção gerados para você pelo SSMS e crie um trabalho do SQL Server para automatizar.

    
por 20.08.2009 / 00:48
0

Existe a necessidade de a cópia resultante ser modificada de alguma forma, ou uma cópia somente leitura será suficiente? Se este último, você pode usar um instantâneo de banco de dados para gerar sua "cópia" do banco de dados - e isso é praticamente um processo de uma etapa, conforme descrito em este artigo da Technet

Exemplo:

CREATE DATABASE myCopy ON (
    NAME = originalLogicalName,
    FILENAME = 'path\to\new\snapshotfile'
) AS SNAPSHOT OF myOriginal

Se a primeira abordagem, em seguida, uma etapa é um pouco mais complicada. Para bancos de dados simples sem procedimentos armazenados, relacionamentos complexos, etc., você pode criar um pacote SSIS (tarefa DTS) para copiar os dados de um banco de dados para outro - mas isso pode ficar muito confuso rapidamente.

    
por 20.08.2009 / 01:06
0

Uma maneira de replicação de instantâneos pode ser configurada. Ele iria da fonte ao destino, uma vez como o dia em que você agendá-lo Quando estiver no servidor de destino, o destino funcionará exatamente como a origem. No entanto, quaisquer alterações feitas no destino serão perdidas quando a próxima replicação ocorrer, já que na próxima hora agendada, a origem substituirá o destino.

Então, se o seu destino é uma cópia da fonte para que seus desenvolvedores possam acessar um banco de dados com dados reais e não importa se ele é sobrescrito quando a próxima cópia acontece, então isso funcionaria para você .

    
por 20.08.2009 / 14:40
0

Por que não configurar a replicação de instantâneos? Tornar o banco de dados de produção a publicação e o backup da assinatura? Defina a replicação para ocorrer a cada 24 horas e você está definido.

Esse banco de dados replicado também terá todas as propriedades e permissões do banco de dados do produto, portanto, ele pode ser anexado como um teste sem nenhum problema.

    
por 20.08.2009 / 14:02