Fazendo backup de um banco de dados do SQL Server 2008 R2 sem procedimentos armazenados

2

É possível fazer backup de um banco de dados do SQL Server, mas apenas fazer o backup das estruturas e do conteúdo da Tabela (ou seja, não incluir os procedimentos armazenados, exibições, etc.?)

O cenário:

Temos um produto hospedado no data center com um banco de dados exclusivo por cliente.

Para muitos dos clientes, somos obrigados a fornecer a eles uma cópia de seus dados diariamente para importar em seus armazéns de dados para fins de relatórios que não são bem atendidos pelo sistema transacional ao vivo.

Portanto, atualmente, fazemos um backup completo diário do banco de dados de produção, restauramos isso em um servidor "temporário" onde executamos um script de sanificação para remover exibições e procedimentos armazenados (como nosso IPR no código nos Sps / views etc) e depois fazemos o backup e exportamos para eles.

Isso leva a grandes bancos de dados enviados diariamente.

Eles estão descobrindo que a sobrecarga de fazer o download e o processamento de um arquivo de backup de 20 gb por dia é uma sobrecarga e gostaria que nós fornecessemos backups incrementais.

O problema é que, se fizermos um backup completo para copiar para o servidor de temporariedade, isso anulará o rastreamento de alterações e um backup diferencial conterá tudo.

Nós tentamos um processo de:

  1. Dia 1: backup completo
  2. Restaurar para teste
  3. Executar a sanitização
  4. COPY_ONLY backup completo.
  5. Enviar para o cliente
  6. Dia 2: COPY_ONLY backup completo.
  7. Restaurar para teste
  8. Executar a sanitização
  9. Backup diferencial
  10. Enviar para o cliente

Isso não funciona porque a linha de base diferencial é considerada incorreta ao restaurar o diferencial que enviamos.

Agora, se pudéssemos fazer algum tipo de backup que não incluísse os SPs, mas permanecesse incremental, isso resolveria o problema.

    
por THEMike 29.03.2011 / 10:48

5 respostas

1
  1. Backup do banco de dados de produção.
  2. Restaurar como staging_extract.
  3. Remova os SPs etc (temos um script para isso).
  4. Faça um backup completo, envie para o cliente.
  5. Backup do banco de dados de produção.
  6. Restaurar como staging_master
  7. Use o Redgate SQL Data Compare para fazer uma comparação de dados e copiar os dados alterados em staging_extract
  8. Faça um backup diferencial de staging_extract
  9. Envie para o cliente.

Repita os passos 5 a 9 para uma semana / mês e volte ao passo 1.

    
por 01.04.2011 / 09:53
1

Um 'backup' como chamado no mundo do servidor SQL inclui tudo. Ele foi projetado para pegar todo o banco de dados e soltá-lo em disco ou fita.

Se você quiser apenas pegar o esquema da tabela e os dados, você quer algo mais próximo da funcionalidade 'Gerar Scripts' que eu sei que está no SQL 2008, e provavelmente em versões anteriores também. Clique com o botão direito do mouse no banco de dados, clique em "tarefas", em seguida, em "Gerar scripts" e siga o assistente.

    
por 29.03.2011 / 11:33
1

Se você quiser fazer backup apenas da estrutura de tabelas e do conteúdo deles sem qualquer outra coisa, não é possível usar o SQL Comando de Backup .

As estruturas das tabelas podem ser roteirizadas para ter sua estrutura. Quanto ao conteúdo, você pode exportar usando várias ferramentas como: Ferramenta Export / Import do SQL ou o utilitário BCP .

Lembre-se de que, com essa solução, não é possível recuperar o banco de dados com suas opções e segurança, a menos que você faça o script do banco de dados. Você terá apenas alguns arquivos (.xls ou .txt) a serem importados para um banco de dados existente já criado. A tarefa é muito mais pesada e não muito prática.

Se você precisar de todas as tabelas de um banco de dados, sugiro realizar um backup regular e excluir as exibições ou os SPs após uma restauração. Estes não ocupam muito espaço embora.

    
por 29.03.2011 / 11:59
1

É muito simples. Você precisa gerar um script para isso. Clique com o botão direito do mouse no nome do banco de dados no explorador de objetos e siga estas etapas - Tarefa > Gerar Script > Avançar > Selecione Objetos Específicos do Banco de Dados > selecione a tabela e clique em próximo > Clique em "Avançar"

Aparecerá uma janela pop-up chamada "Opções Avançadas de Script". Encontre "Tipo de dados para script" em "Geral" e altere para "Esquema e Dados". Então pressione "Ok".

    
por 26.01.2015 / 07:55
0

O SQL Server 6.5 tinha a opção de fazer backup de tabelas individuais, mas isso foi removido em versões posteriores. O backup regular do SQL Server fará backup de todo o banco de dados.

Algum motivo específico pelo qual você precisa dessa funcionalidade?

    
por 29.03.2011 / 11:31