Oracle的PDB数据库创建directory时遇到ORA-65254
Tags: OraclePDB故障处理目录( Directory)
模拟
在Oracle 19c多租户环境的PDB数据库下面创建一个DIRECTORY时,遇到了“ORA-65254: invalid path specified for the directory”,下面简单演示一下所遇到的这个案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | SQL> CREATE PLUGGABLE DATABASE PDB6 ADMIN USER pdbadmin IDENTIFIED BY hqLDJ7236#4U8JHD 2 STORAGE (MAXSIZE 1G MAX_SHARED_TEMP_SIZE 2G) 3 DEFAULT TABLESPACE TEST DATAFILE '/db19c/oracle_data/PDB6/test_data_01.dbf' SIZE 100M 4 PATH_PREFIX ='/db19c/oracle_data/PDB6/' 5 FILE_NAME_CONVERT=('/db19c/CTEST/pdbseed/','/db19c/oracle_data/PDB6/'); Pluggable database created. SQL> SQL> alter pluggable database pdb6 open; Pluggable database altered. SQL> alter session set container=PDB6; Session altered. SQL> CREATE OR REPLACE DIRECTORY EXP_DUMP AS '/db19c/exp_dump'; CREATE OR REPLACE DIRECTORY EXP_DUMP AS '/db19c/exp_dump' * ERROR at line 1: ORA-65254: invalid path specified for the directory ##注意,创建DIRECTORY时,这个目录/db19c/exp_dump已经存在。 SQL> SQL> !oerr ora 65254 65254, 00000, "invalid path specified for the directory" // *Cause: An absolute path was used in the CREATE DIRECTORY statement. // Since the PDB has set the PATH_PREFIX property, only relative // path is allowed for directories. // *Action: Specify a relative path and reissue the statement. // SQL> |
如上所示,数据库提示,出现这个错误的原因在于创建PDB的语句中指定了PATH_PREFIX参数,创建目录DIRECTORY时只能使用相对路径,而不能使用绝对路径。其实创建PDB时,如果设置了PATH_PREFIX参数,那么这个PDB中的所有对象只能限定在PATH_PREFIX指定的路径下,,只能指定基于PATH_PREFIX的相对路径。官方文档关于这个的解释如下所示: