Pular para o conteúdo
  • Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 5 anos, 6 meses atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #139570
    Avatar de airoospairoosp
    Participante

      Boa tarde,

      Estou fazendo testes usando o datapump, e ao fazer a exportação do 11g e importando no 11g, funcionou corretamente, mas do 11g para 12c não.

      A linha de comando foi:

      impdp system/pass … remap_schema=teste123:teste456

      No 11g de destino, o usuário teste456 foi criado corretamente e a importação ocorreu sem problema.

      Mas no 12c, o usuário teste456 não foi criado. Pesquisando sobre o assunto, vi que é necessário colocar o prefixo c## para usuários comuns no 12c.
      Mesmo alterado a linha de comando para:

      impdp system/pass … remap_schema=teste123:c##teste456

      A importação não funcionou, apareceu erro, usuário não existe.

      O usuário system utilizado no processo tem as permissões:

      datapump_exp_full_database e datapump_imp_full_database

      Alguém já passou por este cenário?

      Obrigado

      Airton

      #139728
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Bom, vc Pra Variar não o diz claramente mas PELO CENÁRIO GERAL eu DEDUZO que vc criou esse banco no 12c como um banco CDB, ie, um banco que PODE ser usado para controlar outros PDB/bancos plugáveis, okdoc ?? Isso não existe no 11g (e por isso 11g->11g vai ok), mas no 12c em diante PODE existir, é OPCIONAL vc criar um banco 12c como CDB (controlador de bancos plugáveis) E criar um ou mais bancos plugáveis, OU não…
        Sendo isso mesmo (ie, vc CRIOU esse banco 12c como CDB), eu Acho que o que te falta aqui é o CONCEITO do que é um usuário Comum e do que é um banco CDB : começando pelo conceito de CBD, um banco CDB é um banco “root”, um database que em tese só deve ser usado pelo DBA para tarefas administrativas e para o Oracle armazenar metadaddos – os dados das aplicações/usuários em princípio ficam nos databases plugáveis (PDBs) controlados/gerenciados por esse database CDB, okdoc ?? É o mesmo conceito do SQL SERVER, onde vc tem um database MASTER que em princípio NÂO deve conter dados dos usuários, os dados ficam em OUTROS databases, esse database CDB/”master”/principal em tese é reservado para fins administrativos…. Vc até PODE enfiar dados de usuários nesse database ‘principal’ mas Não Deveria, se há PDBs/bancos de usuário disponíveis….
        Nesse cenário é que se encaixa o conceito de COMMON USER : esse tipo de usuário é um usuário com poderes Administrativos leves, capaz de conectar TANTO no banco CDB/administrativo quanto em qquer um dos bancos PDBs/de usuário, E (opcionalmente) ter determinados privilégios em determinados databases….. Isso tá bem documentado tanto no manual 12c (vide https://docs.oracle.com/database/121/ADMQS/GUID-DA54EBE5-43EF-4B09-B8CC-FAABA335FBB8.htm) quanto em artigos como https://www.oracle.com/technetwork/pt/articles/idm/common-local-oracle-database-12c-2235405-ptb.html ,

        ===> Isso Esclarecido, aí vem as perguntas : se vc tem PDBs, exatamente POR QUE vc tá fazendo o import no CDB ?? Se vc NÃO TEM PDBs (e/ou se REALMENTE deseja fazer o import no CDB), vc QUER ou NÃO que esse usuário 11g seja REALMENTE um common user?? Se for desejado isso, em princípio o método é SIM usar o remap, vide
        https://docs.oracle.com/database/121/SUTIL/GUID-C1578FB6-216F-473E-A6D5-18453D4F9021.htm#SUTIL4336 : SE vc REALMENTE não tiver PDBs e/ou REALMENTE necessitar que o usuário seja COMMON USER e não conseguir usar o REMAP, PLEASE nos diga a EXATA VERSÃO do 12c que vc está usando E a versão / detalhes do seu sistema operacional – como o impdp é um utilitário de linha de comando, Não Digo nada se vc não precisar de aspas no argumento da linha de comando do impdp, ou coisas do tipo…..

        Mas Repito de Novo, IDEALMENTE no 12c se um database é CDB vc DEVERIA deixar ele só pra fins administrativos e ter seus dados em PDBs….

        []s

        Chiappa
        
        #139733
        Avatar de airoospairoosp
        Participante

          Bom dia Chiappa,

          Tudo beleza?

          Primeiro agradeço pelas informações.

          O ambiente que esta no notebook é uma VM (Virtual Box 7.5), onde instalei o Oracle Linux 7.5 e o banco 12c (12.2.0.1). Sim, criei o banco como CDB mas não criei nenhum PDB.
          Pesquisando na internet, vi que a importação como estou tentando fazer funciona se instalar o 12c como não CDB.

          Airton

          #139773
          Avatar photoJosé Laurindo Chiappa
          Moderador

            OK, o fato que funciona se o banco NÃO for CDB é a ** ESSÊNCIA ** do que eu falei, ie, que o CDB ** deveria ** ser reservado para fins Administrativos.. Óbvio que se vc recriar o banco como não-CDB funciona, ele passa a se comportar como banco único em instância única, que nem funciona o 11g e que nem o RDBMS Oracle sempre funcionou antes do 12c, sim….
            Aí vc tem uma ESCOLHA a fazer , como eu disse : SE vc quiser ESTUDAR / APRENDER o 12c como ele foi Criado pra funcionar, deixa esse CDB só pra fins Administrativos mesmo e crie um PDB e importe os dados , usuários, etc, da sua Aplicação no PDB…
            Já SE vc de momento não quiser mexer com PDBs, aí OU vc Recria esse banco como não-CDB , OU então vc cria esse usuário manualmente (SEGUINDO as regras de common user, se esse usuário dever ser um common user) OU vc cria o usuário cno LOCAL CONTAINER, vide http://www.oracle-wiki.net/premium:startdocsminimultiusers ….

            []s

            Chiappa

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