#DICA Erro ORA-32017 ORA-01031 ao alterar o parametro db_create_file_dest em um PDB com um usuário local


No cenário citado, temos um PDB que foi criado definindo o parâmetro create_file_dest durante sua criação.

Comando usado na criação do PDB TST03:

CREATE PLUGGABLE DATABASE TST03 FROM PRD02@LAMIMTST
create_file_dest='/u02/app/oracle/oradata/cdbtst01_gru1kd/CDBTST01_GRU1KD/tst01/CDBTST01_GRU1KD/TST02/'
keystore identified by "senha";

Porém após a criação do PDB, ao tentar trocar o destino do create_file_dest com um usuário local temos o erro abaixo.

[oracle@lamim01]$ sqlplus  lamim/senha@tst03 as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed May 10 09:07:05 2023
Version 19.18.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.18.0.0.0

SQL> show user;
USER is "SYS"
SQL> alter system set db_create_file_dest='/u02/app/oracle/oradata/cdbtst01_gru1kd/CDBTST01_GRU1KD/tst02/';
alter system set db_create_file_dest='/u02/app/oracle/oradata/cdbtst01_gru1kd/CDBTST01_GRU1KD/tst02/'
*
ERROR at line 1:
ORA-32017: failure in updating SPFILE
ORA-01031: insufficient privileges


SQL>

Para poder alterar o parâmetro db_create_file_dest depois que um PDB foi criado usando esse parametro na criação do PDB, é necessário que seja feito com um common user.

[oracle@lamim01]$ sqlplus  c##lamim/senha@tst03 as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed May 10 09:10:04 2023
Version 19.18.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.18.0.0.0


SQL> alter system set db_create_file_dest='/u02/app/oracle/oradata/cdbtst01_gru1kd/CDBTST01_GRU1KD/tst03/';

System altered.

SQL>

Este comportamento ocorre apenas quando o PDB é criado com a clausula create_file_dest. Para contornar essa restrição e poder alterar o parâmetro com um usuário local, teremos que desplugar o PDB e plugá-lo novamente. 

Agora vamos simular a alteração do parâmetro create_file_dest com um usuário local, quando o PDB é criado sem o parametro create_file_dest.

Comando usado na criação do PDB TST03 sem o parâmetro:

CREATE PLUGGABLE DATABASE TST03 FROM PRD02@LAMIMTST

Conectando com um usuário local e tentando alterar o parâmetro:

[oracle@lamim01]$ sqlplus lamim/senha@tst03 as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed May 10 09:29:00 2023
Version 19.18.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.18.0.0.0

SQL> alter system set db_create_file_dest='/u02/app/oracle/oradata/cdbtst01_gru1kd/CDBTST01_GRU1KD/tst03/';

System altered.

SQL>



Comentários