none
Implementar rotina de expurgo RRS feed

  • Pergunta

  • Olá a todos!

     

    Gostaria de dicas e sugestões sobre como criar uma rotina de expurgo.

    Pretendemos criar uma rotina onde moveremos dados antigos de um servidor de produção para um outro servidor de dados

    históricos e, logo após essa carga, precisamos excluir os dados antigos do servidor de produção, deixando somente dados

    referentes ao periodo de 6 meses.

    Utilizamos o MSSQL Server 2005 Standard e 2008 R2 Standard

     

    Jeferson

     

    • Movido Gustavo Maia Aguiar quarta-feira, 13 de julho de 2011 23:31 (De:SQL Server - Desenvolvimento Geral)
    quarta-feira, 13 de julho de 2011 19:31

Respostas

  • Jeferson,

         Se estivéssemos falando de SQL Enterprise, eu recomendaria você a verificar o uso de tabelas particionadas. Mas infelizmente esta funcionalidade só está disponível apenas no SQL Enterprise Edition..

         Como não é esse o caso, talvez você tenha que fazer esse processo manualmente, com algumas procedures que rodam mensalmente (ou um outro período conforme sua necessidade) e "movem" (mover, neste caso representa você inserir os dados na tabela de histórico e apagar os dados da tabela online, sempre com transações) os dados da tabela online para o histórico

         Além disso, como estamos falando de servidores diferentes, talvez você tenha que criar um Linked Server entre os servidores e manter o serviço MSDTC para poder fazer isso.

     


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
    quarta-feira, 13 de julho de 2011 20:31
    Moderador

Todas as Respostas

  • Jeferson,

         Se estivéssemos falando de SQL Enterprise, eu recomendaria você a verificar o uso de tabelas particionadas. Mas infelizmente esta funcionalidade só está disponível apenas no SQL Enterprise Edition..

         Como não é esse o caso, talvez você tenha que fazer esse processo manualmente, com algumas procedures que rodam mensalmente (ou um outro período conforme sua necessidade) e "movem" (mover, neste caso representa você inserir os dados na tabela de histórico e apagar os dados da tabela online, sempre com transações) os dados da tabela online para o histórico

         Além disso, como estamos falando de servidores diferentes, talvez você tenha que criar um Linked Server entre os servidores e manter o serviço MSDTC para poder fazer isso.

     


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
    quarta-feira, 13 de julho de 2011 20:31
    Moderador
  • Jeferson,

    imagine duas tabelas Pedidos e PedidosAntigos:

    A idéia é criar uma trigger de delete na tabela Pedidos para que, quando os dados da tabela Pedidos forem excluídos, estes sejam movidos para a PedidosAntigos através do insert pegando da tabela DELETED (no contexto da trigger). Isso é o que vai rodar no ambiente de produção.

    Na janela da madrugada, você pode criar cargas para mover os dados da PedidosAntigos para outro banco, servidor, etc.

    sábado, 16 de julho de 2011 19:47