必須透過命令查看,切勿假設預設路徑,前任 DBA 可能已調整。
| 檔案類型 | 副檔名 | 用途 |
|---|---|---|
| 控制檔 | .ctl | 記錄資料庫名、資料檔/日誌檔位置、檢查點、備份資訊等 |
| 資料檔 | .dbf | 實際儲存使用者資料、系統資料字典等 |
| 重做日誌檔 | .log | 記錄所有變更,支援崩潰恢復 |
| 參數檔 | .ora | 啟動參數 (SPFILE/PFILE),非運行時元件,僅用於啟動階段尋找控制檔 |
-- 控制檔
DESC v$controlfile;
SELECT status, name FROM v$controlfile;
-- 資料檔
DESC v$datafile;
SELECT file#, status, name FROM v$datafile;
-- 日誌檔
DESC v$logfile;
SELECT member FROM v$logfile;
/u01/app/oracle/oradata//
物理路徑可任意遷移,支援裸裝置。
REDO01.LOG ~ REDOn.LOG,循環覆寫,順序寫入。Database MountDatabase Open由大到小:
| 類別 | 名稱範例 | 用途 |
|---|---|---|
| 系統表空間 | SYSTEM, SYSAUX | 資料字典、系統程序單元、SYSAUX 分擔 SYSTEM 負載 |
| 使用者資料/索引表空間 | USERS, 自訂 | 業務資料與索引,建議分多個、分類存放 |
| 回滾/UNDO 表空間 | UNDOTBS1 | 儲存 UNDO 記錄,保障讀取一致性與交易回滾 |
| 臨時表空間 | TEMP | 排序、雜湊連接等臨時運算空間,關閉後自動清空 |
-- 查詢所有表空間
SELECT * FROM dba_tablespaces;
-- 查詢資料檔 (含大小)
SELECT * FROM dba_data_files;
SELECT tablespace_name, SUM(bytes) FROM dba_data_files GROUP BY tablespace_name;
-- 查詢臨時檔
SELECT * FROM dba_temp_files;
-- 查詢剩餘空間
SELECT tablespace_name, SUM(bytes) FROM dba_free_space GROUP BY tablespace_name;
-- 建立表空間
CREATE TABLESPACE test DATAFILE '/u01/a.dat' SIZE 5M;
-- 新增資料檔擴充
ALTER TABLESPACE test ADD DATAFILE '/u01/b.dat' SIZE 6M;
-- 更名
ALTER TABLESPACE test RENAME TO fff;
-- 離線/上線
ALTER TABLESPACE test OFFLINE;
ALTER TABLESPACE test ONLINE;
-- 唯讀/讀寫
ALTER TABLESPACE test READ ONLY;
ALTER TABLESPACE test READ WRITE;
-- 擴充資料檔
ALTER DATABASE DATAFILE '/u01/a.dat' RESIZE 80M;
-- 自動擴充
ALTER DATABASE DATAFILE '/u01/a.dat' AUTOEXTEND ON MAXSIZE 100M;
-- 刪除 (含資料檔)
DROP TABLESPACE test INCLUDING CONTENTS AND DATAFILES;
DB_BLOCK_SIZE 參數控制,建庫後不可變更。SHOW PARAMETER undo; -- UNDO 相關
SHOW PARAMETER db_block_size;
SHOW PARAMETER db_files;