Como armazenar dados que não são necessários no servidor MS SQL

Como armazenar dados que não são necessários no servidor MS SQL

Pediram-me para truncar uma tabela grande no MS SQL Server 2008. Os dados não são necessários, mas podem ser necessários uma vez a cada dois anos. NUNCA terá que ser alterado, apenas visualizado.

A questão é: como não preciso dos dados diariamente, o que faço com eles para protegê-los e fazer backup deles?

Lembre-se de que precisarei acessá-lo talvez uma vez a cada dois anos, e será bom para nós se o processo de recuperação demorar algumas horas.

A tabela inteira tem cerca de 3 milhões de linhas e preciso truncá-la para cerca de 1 milhão de linhas.

Responder1

Como você planeja acessar os dados da tabela?

Se você estiver usando algo um pouco flexível (seu próprio código ou simplesmente consultas SQL), uma saída fácil é copiar a tabela necessária para outro banco de dados e desanexá-la do servidor. Depois, trunque a tabela (ou exclua as linhas indesejadas, embora você possa querer verificar o tamanho do T-Log ao fazer isso).

Quando precisar, você sempre poderá remontar o banco de dados relevante do armazenamento no modo somente leitura. Se precisar executar consultas em vários backups de uma só vez, você pode criar uma visualização reagrupando todos os dados.

Se você estiver usando um software que não permite personalizar como essa tabela é acessada, você ainda poderá copiar a tabela para outro banco de dados por conta própria, mas restaurar esse backup pode ser problemático porque você precisará mesclar o contexto existente (a outra tabela indica) com os dados antigos. Além disso, a estrutura de dados pode ter mudado, tornando quase impossível a restauração.

Nesse caso, sugiro que você simplesmente faça um backup do banco de dados completo e armazene-o (de preferência junto com uma versão do software que o acessa).

Responder2

3 milhões de linhas não são muitos, especialmente para o SQL Server. Além disso, você não pode truncar uma tabela e manter linhas. Truncar esvazia completamente.

A exclusão também é lenta, mesmo se você tiver tempo.

Eu clicaria com o botão direito na sua tabela, criaria um script como, criaria uma nova tabela. Renomeie-o para Table_Backup11232011, certifique-se de renomear suas chaves primárias também...

insert into Table_Backup11232011 select * from oldtable

truncate table oldtable

Agora você tem um backup e uma mesa nova. 3 milhões de linhas provavelmente custarão apenas algumas centenas de megabytes, o que não é nada.

Responder3

Arquivamento/Acessibilidade: Aqui está uma ideia... 1) Execute a exclusão de seus dados 2) Coloque sua tabela em seu próprio grupo de arquivos SQL 3) Grave o arquivo em um dispositivo somente leitura (espaço permitido) 4) Use ALTER TABLE para redefinir onde o arquivo é e defina-o como somente leitura 5) Continue a festa, Garth!

Agora os dados estão fora dos seus discos rígidos, inalteráveis, mas ainda disponíveis quando necessário.

informação relacionada