Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Erro de desconexão do PDB ORA-17528


Estou tentando remover um PDB no Oracle 19.3 que não é mais necessário. Eu obtenho o seguinte erro:

SQL> alter pluggable database DEV_PDB close immediate instances=all;

Pluggable database altered.

SQL> alter pluggable database DEV_PDB unplug into '/tmp/DEV_PDB.xml';
alter pluggable database DEV_PDB unplug into '/tmp/DEV_PDB.xml'

*
ERROR at line 1:

ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5590 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5589 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5588 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5587 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5586 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5585 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5584 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5583 (block # 1)
ORA-17500: ODM err:Invalid argument

ORA-01114: IO error writing block to file 5582 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5581 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5580 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5579 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5578 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5577 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5576 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-17528: A read-only file or a file opened read-only cannot be written to:
/u01/app/oracle/oradata/DEV_PDB/data04/users01.dbf.


Hmm interessante. Não tive esse problema quando fiz o mesmo processo no Oracle 12.1.0.2 (pulei 12.2 e 18).

Graças ao MOS Note 2419236.1 e alguns dos meus próprios trabalhos (o Note não corresponde exatamente ao meu problema), consegui resolver o problema. O problema é que esse PDB já foi a base para PDB's clonados no meu ambiente. Criamos um PDB em nosso ambiente Multitenant e o clonamos para criar vários bancos de dados de desenvolvimento e teste para nossa equipe de TI. Aprendi que no Oracle 12.2 e superior, o Oracle alterará as permissões de arquivo no nível do sistema operacional para qualquer PDB de origem clone. As permissões de arquivo são definidas como somente leitura. Quando tento desconectar o PDB, ele precisa gravar informações nos cabeçalhos do arquivo de dados e obtemos os erros acima.

A solução alternativa é simplesmente alterar as permissões de arquivo dos arquivos de dados para 640 e tentar a operação de desconexão novamente. A solução alternativa na Nota 2419236.1 requer tempo de inatividade, mas minha solução alternativa não.