PDB 指的是 Pluggable Database(可插拔資料庫),這是 Oracle 從 12c 版本開始引入的一種新的資料庫架構。
多租戶架構:
. CDB(Container Database): 是容器資料庫,負責管理系統資源並包含一組 PDB。
. PDB: 是可插拔資料庫,可以看作是一個獨立的資料庫,但它共享 CDB 的系統資源。一個 CDB 可以包含多個 PDB。
資源隔離與管理:
. 每個 PDB 都是獨立的資料庫實例,擁有自己的使用者、資料字典、資料檔案等,但共享 CDB 的內核進程和記憶體。
. PDB 之間是相互隔離的,這意味著它們可以獨立備份、恢復和管理。
靈活性與便捷性:
. PDB 可以在不同的 CDB 之間輕鬆遷移,支持資料庫的快速克隆和移動。
. 簡化了資料庫的管理和維護,例如,可以在不影響其他 PDB 的情況下關閉或重啟某個 PDB。
多租戶環境:
. PDB 的引入使得一個資料庫實例可以服務於多個租戶(即多個獨立的使用者或應用),這對於雲計算和大型企業環境非常有用。
PDB 是 Oracle 資料庫多租戶架構的核心,廣泛應用於需要高效資源利用和簡化資料庫管理的場景。
存儲位置: 在 Windows 系統中,PDB 的數據文件(包括表空間、控制文件、日誌文件等)存儲在磁碟上的特定目錄中。默認情況下,這些文件通常存放在 Oracle 安裝目錄下的 ORACLE_HOME 目錄中。
PDB 的管理: PDB 是通過 SQL*Plus 或 Oracle SQL Developer 等工具來管理的。管理員可以啟動、關閉、創建、刪除 PDB,以及進行其他操作。
文件系統的管理: 每個 PDB 的數據文件可以位於不同的磁碟驅動器或目錄中。Windows 系統的文件系統操作,比如複製、移動文件等,同樣適用於 PDB 的數據文件。
步驟 1: 關閉 PDB 首先,你需要將 PDB 關閉以確保數據文件不會被使用。
ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
步驟 2: 確定 PDB 數據文件的位置 使用以下 SQL 查詢來確定 PDB 數據文件的當前存儲位置:
SELECT file_name FROM dba_data_files WHERE tablespace_name IN (
SELECT tablespace_name FROM dba_tablespaces WHERE con_id = (SELECT con_id FROM v$pdbs WHERE pdb_name = 'PDB_NAME')
);
步驟 3: 移動數據文件 使用 Windows 文件管理器或命令行工具(如 xcopy 或 robocopy)將文件從原始位置移動到目標硬碟。
步驟 4: 更新文件路徑 移動文件後,需要在 Oracle 中更新 PDB 的文件路徑。使用 ALTER DATABASE 語句來修改文件的位置。
ALTER PLUGGABLE DATABASE pdb_name
RENAME FILE 'C:\old_path\pdb_datafile.dbf' TO 'D:\new_path\pdb_datafile.dbf';
步驟 5: 啟動 PDB 最後,重新啟動 PDB:
ALTER PLUGGABLE DATABASE pdb_name OPEN;
. 權限: 確保 Oracle 用戶對目標硬碟的目錄有足夠的讀寫權限。
. 備份: 在移動文件前,建議先對 PDB 數據進行備份,以防出現意外問題。
. 確保在移動文件時 Oracle 服務處於適當狀態,通常建議在 PDB 關閉的情況下進行文件操作。