- Este tópico contém 7 respostas, 3 vozes e foi atualizado pela última vez 10 anos, 8 meses atrás por Fábio Prado.
-
AutorPosts
-
25 de fevereiro de 2014 às 11:18 pm #106356Edgar Rombesso RisolaParticipante
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 ???
26 de fevereiro de 2014 às 2:57 pm #106357Fábio PradoParticipanteEdgar,
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.net26 de fevereiro de 2014 às 5:12 pm #106359rmanParticipante@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;
26 de fevereiro de 2014 às 5:38 pm #106360Edgar Rombesso RisolaParticipanteFá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.
26 de fevereiro de 2014 às 5:41 pm #106361Edgar Rombesso RisolaParticipanteRman,
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.
26 de fevereiro de 2014 às 7:59 pm #106363rmanParticipante@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.
26 de fevereiro de 2014 às 10:40 pm #106364Edgar Rombesso RisolaParticipanteEntendi 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…
2 de março de 2014 às 6:31 pm #106366Fábio PradoParticipanteEdgar,
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
-
AutorPosts
- Você deve fazer login para responder a este tópico.