Pular para o conteúdo
  • Este tópico contém 7 respostas, 3 vozes e foi atualizado pela última vez 10 anos, 8 meses atrás por Avatar de Fábio PradoFábio Prado.
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #106356
    Avatar de Edgar Rombesso RisolaEdgar Rombesso Risola
    Participante

      Boa tarde…sou novato em Oracle e estou com um problema….importação…a situação é a seguinte:

      Servidor de Testes (nome = sitestes)
      1 Instância (Sit)
      Schemas e tabelas criadas e populadas com ultima atualização em 10/2013.

      Servidor de Homologação (nome = sihomog)
      2 Instâncias (Sih / Sigh)
      Schemas e tabelas criadas e atualizadas diariamente em ambas instâncias.

      Situação:

      Fiz um backup full da instancia Sih do servidor de homologação via expdp e preciso restaurar ele no servidor de testes na instancia Sit via impdp.

      Procedimento este que ao restaurar me gera diversos erros informando que os objetos da instância Sit já existem, não atualizando os dados que necessito.

      Como devo proceder para replicar o conteúdo de Sih no outro servidor em Sit ???

      #106357
      Avatar de Fábio PradoFábio Prado
      Participante

        Edgar,

        Primeiramente poste aqui o comando completo do impdp que vc está usando.

        É importante entender que o impdp só consegue substituir tabelas, portanto, se vc quer uma cópia completa, um dos modos mais fáceis de se conseguir isso, é excluindo o(s) schema(s) correspondentes no BD de homologação… mas tome cuidado antes de fazer este procedimento, pois talvez existam objetos em homologação que não existem em produção. Se este for caso, o trabalho será maior, vc terá que gerar um dump tbém do BD de homologação para depois importá-lo novamente após importação do dump de produção, ok?

        []s

        Fábio Prado
        http://www.fabioprado.net

        #106359
        Avatar de rmanrman
        Participante

          @Edgar Rombesso Risola

          Se realmente você quer substituir o conteúdo de Teste pela Homologação é necessário remover o SCHEMA antes de importar. Mas é claro, se você quer manter os registros do schema de Teste você deve analisar melhor e seguir outra estratégia.


          DROP USER USUARIO CASCADE;

          #106360
          Avatar de Edgar Rombesso RisolaEdgar Rombesso Risola
          Participante

            Fábio,

            Estou utilizando o seguinte contexto de comandos:

            expdp system/password@sih DIRECTORY=sih DUMPFILE=sih.dmp FULL=y

            impdp system/password@sith DIRECTORY=sit DUMPFILE=sih.dmp FULL=y

            Sim, pode ser que existam objetos inexistentes no testes e esse é o objetivo de atualizar via homologação. O de produção está ok 100% compatível com o de homologação, mas o de testes está desatualizado.

            #106361
            Avatar de Edgar Rombesso RisolaEdgar Rombesso Risola
            Participante

              Rman,

              Quero substituir tudo que existe no teste pelo que veio do dump de homologação….a instancia tem 67 schemas com diversas tabelas…tudo desatualizado…achei que ao importar do homologação, ele iria atualizar o que for necessário e criar o que falta.

              #106363
              Avatar de rmanrman
              Participante

                @Edgar Rombesso Risola

                Aqui eu também faço atualização de ambiente de desenvolvimento e homologação com base na produção. Ao invés de fazer um dump FULL, eu prefiro trabalhar com SCHEMAS. Se você fizer a importação FULL até a senha do SYS vai vir da produção.

                Veja o parâmetro SCHEMAS do expdp/impdp. Desta forma você não é obrigado a atualizar todos os SCHEMAS, e sim só os necessários.

                E lembrando, o impdp não fará o complementar, por isso é necessário remover o schemas antes de importar.

                #106364
                Avatar de Edgar Rombesso RisolaEdgar Rombesso Risola
                Participante

                  Entendi seu conceito rman, mas não sei dizer ainda quais schemas são necessários para a aplicação funcionar e são mais 60 schemas para fazer isso…neste momento eu precisaria importar o banco inteiro…

                  #106366
                  Avatar de Fábio PradoFábio Prado
                  Participante

                    Edgar,

                    O jeito mais fácil de vc fazer isso será apagando os usuários de aplicação e seus objetos do BD, antes de fazer o import. Para isso, execute com privs de DBA o script SQL dinâmico abaixo, substituindo a palavra TESTE, por uma lista de usuários que vc tem certeza de que precisa atualizar:

                    select 'DROP USER ' || USERNAME || ' CASCADE;' from dba_users where username in ('TESTE');

                    Pegue o resultado do comando acima e execute em uma nova janela de scripts do SQL Developer ou ferramenta similar q vc utiliza. Tome muito cuidado ao executar este script para não apagar usuários que contenham objetos de sistema (Ex.: SYS, SYSTEM, SYSMAN etc).

                    Obs.: Só execute este procedimento qdo tiver certeza de qual usuários vc precisa apagar. Faça um export full de homologação primeiro p/ recuperá-lo ao estado anterior, caso ocorra algum problema.

                    []s

                  Visualizando 8 posts - 1 até 8 (de 8 do total)
                  • Você deve fazer login para responder a este tópico.
                  plugins premium WordPress