locked
Atualização de dados entre servidores RRS feed

  • Pergunta

  • Ola pessoal!
    Gostaria de sugestões de como solucionar a situação abaixo que esta ocorrendo na empresa que trabalho...

    Cenário:
    Temos um sistema ERP, com base de dados SQL Server 2005, neste sistema existe um processo de fechamento de transações (este fechamento de transação, é um processo contábil aplicado a cada movimentação do sistema, ou seja, cada documento de entrada, de saída, transferencias, pagamentos e recebimentos gera uma transação, que é fechada a parte).

    Os documentos estão sendo lançados normalmente (diariamente), mas o problema está nas transações, que estão com seus fechamentos atrasados, temos transações em aberto desde 2007.

    A pergunta:
    Será que tem alguma forma de fecharmos estas transações antigas em uma outra base (base de backup) e depois transferir estas informações para a base de produção?

    Observação: Estas informações da base de backup, deveriam voltar (para a base de produção) como se fosse uma atualização da informação que estava anteriormente, ou seja, sem alterar a sequencia dos lançamentos destas transação (as colunas chaves são identity).

     

    Resumindo:

    1. Tenho a base de produção

    2. Tenho uma base auxiliar (backup da base de produção)

    3. O que preciso é fechar documentos antigos (2007 até 2011) no sistema ERP que consomem muito o processamento do servidor de banco de dados de produção devido ao grande fluxo de informações diárias.

    4. Meu pensamento seria fazer este fechamento nesta base auxiliar (esta em um outro servidor) e depois de fechado enviar novamente estas informações ao banco de produção

     

    Desde já agradeço.


    Alex Souza http://pessoalex.wordpress.com

    sexta-feira, 20 de janeiro de 2012 13:22

Respostas

  • Antonio,

     

    Em relação a seu negocio, sinceramente não entendi direito, alem de que, não creio que alguem do forum podera realmente ajudar.

    Acho foruns interessantes, porem limitados, uma vez que para maiores ajudas é necessario entender o negocio da empresa, o que pode gerar muitas thread, enfim...

    Em relação aos seus dados, não entendi se voce os possui em base de backup ou não, porem, voce pode fazer inserção de campos IDENTITY, setando como ON, assim:

    SET IDENTITY_INSERT SuaTabela ON

    INSERT INTO SuaTabela(CampoIdentity,OutrosCampos) SELECT * FROM OutraTabelaDeBackup

    SET IDENTITY_INSERT SuaTabela OFF

    Lembre-se que ao realizar insert em tabelas, mesmo que o select preencha todas as colunas da tabela destino, é necessario especificar todas as colunas!


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    sexta-feira, 20 de janeiro de 2012 13:37
    Moderador

Todas as Respostas

  • Antonio,

     

    Em relação a seu negocio, sinceramente não entendi direito, alem de que, não creio que alguem do forum podera realmente ajudar.

    Acho foruns interessantes, porem limitados, uma vez que para maiores ajudas é necessario entender o negocio da empresa, o que pode gerar muitas thread, enfim...

    Em relação aos seus dados, não entendi se voce os possui em base de backup ou não, porem, voce pode fazer inserção de campos IDENTITY, setando como ON, assim:

    SET IDENTITY_INSERT SuaTabela ON

    INSERT INTO SuaTabela(CampoIdentity,OutrosCampos) SELECT * FROM OutraTabelaDeBackup

    SET IDENTITY_INSERT SuaTabela OFF

    Lembre-se que ao realizar insert em tabelas, mesmo que o select preencha todas as colunas da tabela destino, é necessario especificar todas as colunas!


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    sexta-feira, 20 de janeiro de 2012 13:37
    Moderador
  • Bom dia Fabrizzio, realmente é dificil explicar aqui o que estou precisando...

    Resumindo:

    1. Tenho a base de produção

    2. Tenho uma base auxiliar (backup da base de produção)

    3. O que preciso é fechar documentos antigos (2007 até 2011) no sistema ERP que consomem muito o processamento do servidor de banco de dados de produção devido ao grande fluxo de informações diárias.

    4. Meu pensamento seria fazer este fechamento nesta base auxiliar (esta em um outro servidor) e depois de fechado enviar novamente estas informações ao banco de produção

     

    Pelo que vi no seu blog mesmo, creio que dê para fazer via SSIS no seguinte post:
    http://fabrizziocaputo.wordpress.com/2011/11/25/tratando-erro-de-primary-key-em-insercoes-via-ssis-data-flow-integration-services/

    Obrigado pela ajuda!


    Alex Souza http://pessoalex.wordpress.com

    sexta-feira, 20 de janeiro de 2012 13:39
  • Antonio,

     

    É, ai no caso, nesse meu post, ele só evita erros de PK em um DataFlow, no seu caso, se é um ident, voce deve ativar o ident insert, e sim, pode utilizar o SSIS para jogar os dados para la.

    Nao sei como funciona sua aplicação, mas voce tera de aponta-la para la.


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    sexta-feira, 20 de janeiro de 2012 16:24
    Moderador
  • Antonio,

    Como estas transações são encerradas? Existe algum processo de transferência destes dados para o outro banco de dados?

    Algum status ou flag é alterada nestes registros que indicam o fechamento das suas transações?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    domingo, 22 de janeiro de 2012 00:39
    Moderador
  • Ola Junior Galvão,
    Atualmente não existe nenhum processo de transferência entre servidores.

    Isso, existe um FLAG que informa quando a transação esta fechada.


    Alex Souza http://pessoalex.wordpress.com
    quarta-feira, 25 de janeiro de 2012 16:38