Resolvendo o ORA-17627 em uma operação de clone remoto

Resolvendo o ORA-17627 em uma operação de clone remoto

Em ambientes multitenant é comum que tenhamos que clonar ou migrar PDBs entre CDBs, e uma das formas de fazermos isso é através do método de clone remoto, que utiliza um database link no CDB de destino, apontando para o CDB de origem. Durante uma dessas operações, encontrei o erro ORA-17627, e neste post vou falar sobre a sua causa e resolução.

Pré requisitos para o clone remoto

Antes de partir direto para o erro, vale a pena relembrar os pré requisitos de um clone remoto:

  • Os CDBs origem e destino devem ter Charsets compatíveis;
  • O usuário executor do clone deve ter o privilégio CREATE PLUGGABLE DATABASE;
  • Um database link deve existir, do CDB de destino apontando para o CDB (ou PDB) de origem;
  • O usuário usado no database link precisa ter os privilégios CREATE PLUGGABLE DATABASE e SYSOPER;

Com esses prereqs podemos efetuar o clone usando o comando CREATE PLUGGABLE DATABASE com a cláusula FROM, passando o nome do PDB de origem e o database link logo após ela:

SQL> CREATE PLUGGABLE DATABASE MYPDB FROM MYPDB@DBLINK;

O problema

O procedimento é bem simples, porém durante a execução do comando de clone, recebo o seguinte erro:

Command: CREATE PLUGGABLE DATABASE MYPDB FROM MYPDB@DBLINK;

ERROR at Line 1:
ORA-65169: error encounted while attempting to copy file +DATA1/CDB/DATAFILE/my_datafile.dbf
ORA-17627: ORA-01017: invalid username/password; logon denied
ORA-17629: Cannot connect to the remote database server

Bom, inicialmente pensei o óbvio: “Errei a senha do usuário que estou usando no dblink, vou recriar ele, cuidando com a digitação da senha”. Feito isso, comando reexecutado e o mesmo erro aconteceu.

A solução

O grande problema dessa mensagem de erro é que ela nos direciona pra uma linha de resolução que não condiz com o problema em si. Depois de muita pesquisa, a Doc ID 2863929.1: ORA-17627: ORA-01017: invalid username/password; logon denied While Creating Pluggable Database From Non-CBD Through DBLINK forneceu a resposta.

O problema ocorre porque durante um clone remoto de PDB, o Oracle abre diversas sessões na origem, e o erro é gerado quando o limite do SESSIONS_PER_USER configurado no profile do usuário do dblink é alcançado. Infelizmente aqui o Oracle retorna o erro ORA-01017 ao invés do ORA-02391 (exceeded simultaneous SESSIONS_PER_USER limit), o que causa a confusão e torna a resolução menos intuitiva.

Ao aumentar o valor de SESSIONS_PER_USER para o usuário do dblink, o clone prossegue sem mais erros.

Referências

Cloning a Remote PDB;

ORA-17627: ORA-01017: invalid username/password; logon denied While Creating Pluggable Database From Non-CBD Through DBLINK (Doc ID 2863929.1);

3 comentários

  1. Cristiano Pedreira Góes 25/06/2025

    Será mais um requisito Oracle de check antes do remote clone PDB.

    Show.

  2. Mateus 30/06/2025

    Existe um valor mínimo para esse limit na origem? Conseguimos estimar quantas sessões serão iniciadas em uma operação como essa?

    Ótima dica.

    1. piontk 08/07/2025

      Não existe uma forma fácil de estimar isso Mateus. O número de sessões vai depender principalmente do paralelismo usado durante a operação, mas mesmo sem o paralelismo o Oracle abre mais de uma sessão durante o processo. Uma forma que pode ser usada para verificar o número exato seria criando uma trigger de logon que registra informações em uma tabela de controle ou habilitando o trace para o serviço que o clone usa no database link.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *