Oracle的PDB數(shù)據(jù)庫(kù)創(chuàng)建DIRECTORY時(shí)遇到ORA-65254問(wèn)題及解決方法
在Oracle 19c多租戶(hù)環(huán)境的PDB數(shù)據(jù)庫(kù)下面創(chuàng)建一個(gè)DIRECTORY時(shí),遇到了“ORA-65254: invalid path specified for the directory”,下面簡(jiǎn)單演示一下所遇到的這個(gè)案例
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
##注意,創(chuàng)建DIRECTORY時(shí),這個(gè)目錄/db19c/exp_dump已經(jīng)存在。
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>如上所示,數(shù)據(jù)庫(kù)提示,出現(xiàn)這個(gè)錯(cuò)誤的原因在于創(chuàng)建PDB的語(yǔ)句中指定了PATH_PREFIX參數(shù),創(chuàng)建目錄DIRECTORY時(shí)只能使用相對(duì)路徑,而不能使用絕對(duì)路徑。其實(shí)創(chuàng)建PDB時(shí),如果設(shè)置了PATH_PREFIX參數(shù),那么這個(gè)PDB中的所有對(duì)象只能限定在PATH_PREFIX指定的路徑下,,只能指定基于PATH_PREFIX的相對(duì)路徑。官方文檔關(guān)于這個(gè)的解釋如下所示:
Restrictions on PDB File Locations
The PATH_PREFIX clause of the CREATE PLUGGABLE DATABASE statement ensures that all directory object paths associated with the PDB are restricted to the specified directory or its subdirectories. This clause also ensures that the following files associated with the PDB are restricted to the specified directory: the Oracle XML repository for the PDB, files created with a CREATE PFILE statement, and the export directory for Oracle wallets. Use this clause when you want to ensure that a PDB's files reside in a specific directory and its subdirectories. You can use this clause to specify one of the following options:
An absolute path that is used as a prefix for all file paths associated with the PDB.
The name of a directory object that exists in the CDB root (CDB$ROOT). The directory object points to the absolute path to be used for PATH_PREFIX.
NONE to indicate that there are no restrictions for the file paths. Omitting the PATH_PREFIX clause is the same as specifying NONE.
After a PDB is created, its PATH_PREFIX setting cannot be modified.
也就是說(shuō),如果我要?jiǎng)?chuàng)建一個(gè)目錄,只能使用相對(duì)路徑的目錄,而且必須在PATH_PREFIX指定的/db19c/oracle_data/PDB6/下面,想指定到其他路徑,例如/db19c/exp_dump.此時(shí)就會(huì)拋出ORA-65254錯(cuò)誤。
解決方法
SQL>?CREATE?OR?REPLACE?DIRECTORY?EXP_DUMP?AS?'exp_dump'; Directory?created. SQL>?SET?LINESIZE?1080; SQL>?COL?OWNER?FOR?A16; SQL>?COL?DIRECTORY_NAME?FOR?A30; SQL>?COL?DIRECTORY_PATH?FOR?A64; SQL>?SELECT?*?FROM?DBA_DIRECTORIES; OWNER??????DIRECTORY_NAME???????DIRECTORY_PATH?????????????????ORIGIN_CON_ID -------?------------------?-----------------------------------?------------- SYS??????????????EXP_DUMP???/db19c/oracle_data/PDB6/exp_dump???
關(guān)于這種問(wèn)題,如果在創(chuàng)建PDB數(shù)據(jù)庫(kù)時(shí),不設(shè)定參數(shù)PATH_PREFIX就不會(huì)遇到這個(gè)問(wèn)題。一般沒(méi)有特殊要求,也不用設(shè)定參數(shù)PATH_PREFIX。
到此這篇關(guān)于Oracle的PDB數(shù)據(jù)庫(kù)創(chuàng)建DIRECTORY時(shí)遇到ORA-65254的文章就介紹到這了,更多相關(guān)Oracle的PDB數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
oracle 監(jiān)聽(tīng) lsnrctl 命令 (推薦)
這篇文章主要介紹了oracle 監(jiān)聽(tīng) lsnrctl 命令 ,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
Oracle12c的數(shù)據(jù)庫(kù)向11g導(dǎo)進(jìn)的方法
這篇文章主要介紹了 Oracle12c的數(shù)據(jù)庫(kù)向11g導(dǎo)進(jìn)的方法的相關(guān)資料,需要的朋友可以參考下2016-03-03
Oracle數(shù)據(jù)庫(kù)下載與安裝的完整步驟
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)下載與安裝的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
oracle中fdisk導(dǎo)致的ASM磁盤(pán)數(shù)據(jù)丟失的解決方法
oracle中fdisk 導(dǎo)致的ASM磁盤(pán)數(shù)據(jù)丟失 有需要的朋友可參考一下2012-10-10
Oracle中的translate函數(shù)用法小結(jié)
translate提供了與replate函數(shù)相關(guān)的功能, replace讓你用一個(gè)字符串替換另一個(gè)字符串,以及刪除字符串,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-12-12
Oracle CBO優(yōu)化模式中的5種索引訪(fǎng)問(wèn)方法淺析
這篇文章主要介紹了Oracle CBO優(yōu)化模式中的5種索引訪(fǎng)問(wèn)方法淺析,包含索引唯一掃描、索引范圍掃描、索引全掃描、索引跳躍掃描、索引快速全掃描等內(nèi)容,需要的朋友可以參考下2014-07-07
Oracle數(shù)據(jù)遠(yuǎn)程連接的四種設(shè)置方法和注意事項(xiàng)
Oracle數(shù)據(jù)庫(kù)的遠(yuǎn)程連接可以通過(guò)多種方式來(lái)實(shí)現(xiàn),本文我們主要介紹四種遠(yuǎn)程連接的方法和注意事項(xiàng),并通過(guò)示例來(lái)說(shuō)明,接下來(lái)我們就開(kāi)始介紹2014-04-04

