none
Expurgo de Dados SQL Server RRS feed

  • Pergunta

  • Boa Tarde Srs.

    Estou prestes a iniciar um projeto de expurgo de dados no SQL Server 2008 R2.

    Poderiam me indicar links ou materiais sobre o assunto????


    Muito obrigado.


    Philipe

    segunda-feira, 8 de setembro de 2014 16:47

Respostas

  • Philipe,

    Eu faria da seguinte forma:

    1. Crie uma nova base somente para históricos, com as tabelas sem relacionamento (será somente leitura, então não precisa de relacionamento... fica até mais rápido).

    2. Crie uma SP para adicionar os registros na base de históricos e apagar da tabela principal (criando a SP fica mais fácil adicionar novas tabelas no futuro). 

    3. Crie um JOB para executar essa SP periodicamente.


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    terça-feira, 9 de setembro de 2014 11:15
  • Philipe,

    Para realizar um expurgo de uma ou mais tabelas de um banco de dados você deve planejar a rotina de expurgo(mensal, semestral ou anual) para adicionar os dados antigos nas novas tabelas, preferencialmente isoladas em um banco de dados dedicado para esta tarefa ou em um FileGroup exclusivo para estas tabelas.

    Se você planeja consultar estes dados através de um sistema, você vai precisar manter índices e constraints, o que vai gerar um grande trabalho para migração dos dados. Você deverá inserir os dados antigos para expurgo em uma estrutura semelhante à que você irá manter para sua produção, inserindo primeiro os dados nas tabelas principais de expurgo e posteriormente realizando a transferência entre cada tabela secundária.

    Para facilitar a identificação as tabelas de expurgo no banco atual (ou se preferir exportar para o novo banco) adicione alguma identificação sobre o "expurgo". Por exemplo: "TB_PESSOA" agora passa a ser "TB_EXPURGO_PESSOA".

    Vou sugerir duas possibilidades:


    1ªPossib.- Criar um script T-SQL para inserir os dados antigos nas tabelas de expurgo e após esta tarefa ser concluída, apagar os dados da(s) tabela(s) em Produção. Tudo dentro de uma transação.


    2ªPossib.- Criar um pacote SSIS para executar o mesmo procedimento do T-SQL. Você poderá iniciar seu projeto, salvando um pacote através do Import Data.. / Export Data... do SSMS.


    Para maiores informações veja:

    http://msdn.microsoft.com/pt-br/library/ms140052.aspx

    http://technet.microsoft.com/pt-br/library/ms188263(v=sql.105).aspx

    http://msdn.microsoft.com/pt-br/library/ms188929.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    terça-feira, 9 de setembro de 2014 12:16
    Moderador

Todas as Respostas

  • Philipe,

    Você esta querendo apagar os dados das tabelas ou copiar para "tabelas de históricos" ?


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    segunda-feira, 8 de setembro de 2014 17:32
  • Boa noite, Tulio.

    Eu pretendo mover os dados para uma tabela histórica, só não tenho definido ainda as regras de negócios que serão utilizadas para o processo. Como se trata de um sistema ERP para seguros, gostaria de ver alguns modelos já realizados em ambiente parecido.

    Na verdade são dados de n tabelas, contendo integridade referencial entre elas.



    Philipe

    terça-feira, 9 de setembro de 2014 02:34
  • Philipe,

    Eu faria da seguinte forma:

    1. Crie uma nova base somente para históricos, com as tabelas sem relacionamento (será somente leitura, então não precisa de relacionamento... fica até mais rápido).

    2. Crie uma SP para adicionar os registros na base de históricos e apagar da tabela principal (criando a SP fica mais fácil adicionar novas tabelas no futuro). 

    3. Crie um JOB para executar essa SP periodicamente.


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    terça-feira, 9 de setembro de 2014 11:15
  • Philipe,

    Para realizar um expurgo de uma ou mais tabelas de um banco de dados você deve planejar a rotina de expurgo(mensal, semestral ou anual) para adicionar os dados antigos nas novas tabelas, preferencialmente isoladas em um banco de dados dedicado para esta tarefa ou em um FileGroup exclusivo para estas tabelas.

    Se você planeja consultar estes dados através de um sistema, você vai precisar manter índices e constraints, o que vai gerar um grande trabalho para migração dos dados. Você deverá inserir os dados antigos para expurgo em uma estrutura semelhante à que você irá manter para sua produção, inserindo primeiro os dados nas tabelas principais de expurgo e posteriormente realizando a transferência entre cada tabela secundária.

    Para facilitar a identificação as tabelas de expurgo no banco atual (ou se preferir exportar para o novo banco) adicione alguma identificação sobre o "expurgo". Por exemplo: "TB_PESSOA" agora passa a ser "TB_EXPURGO_PESSOA".

    Vou sugerir duas possibilidades:


    1ªPossib.- Criar um script T-SQL para inserir os dados antigos nas tabelas de expurgo e após esta tarefa ser concluída, apagar os dados da(s) tabela(s) em Produção. Tudo dentro de uma transação.


    2ªPossib.- Criar um pacote SSIS para executar o mesmo procedimento do T-SQL. Você poderá iniciar seu projeto, salvando um pacote através do Import Data.. / Export Data... do SSMS.


    Para maiores informações veja:

    http://msdn.microsoft.com/pt-br/library/ms140052.aspx

    http://technet.microsoft.com/pt-br/library/ms188263(v=sql.105).aspx

    http://msdn.microsoft.com/pt-br/library/ms188929.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    terça-feira, 9 de setembro de 2014 12:16
    Moderador