資料庫是資料的實體集合,儲存在 資料檔 中。邏輯上劃分為 表空間,每個表空間由一或多個資料檔組成,一個表空間只屬於一個資料庫。
| 特性 | 說明 |
|---|---|
| 磁碟分配控制 | 限制用戶在表空間可用空間 |
| 狀態屬性 | ONLINE / OFFLINE / READ ONLY / READ WRITE |
| 備份恢復單位 | 可針對單一表空間備份/恢復 |
| 擴展方式 | 新增資料檔或調整現有檔案大小 |
-- 查詢表空間狀態 SELECT tablespace_name, status FROM dba_tablespaces; -- 查詢表空間與資料檔對應 SELECT tablespace_name, bytes, file_name FROM dba_data_files; -- 修改表空間屬性 (SYSTEM/UNDO/TEMP 不可 OFFLINE) ALTER TABLESPACE users READ ONLY; -- 查詢用戶預設表空間 SELECT username, default_tablespace FROM dba_users; -- 移動表至新表空間 ALTER TABLE emp MOVE TABLESPACE users;
實例 = SGA (記憶體結構) + 背景進程。實例是存取資料庫的「程式」,啟動實例 → 掛載資料庫 → 開啟資料庫。一個實例同一時間只能開啟一個資料庫 (RAC 除外)。
| 進程 | 職責 |
|---|---|
| DBWn | 髒緩衝區寫入資料檔 |
| LGWR | 重做日誌緩衝區寫入線上日誌 |
| CKPT | 更新檢查點資訊至控制檔/資料檔 |
| SMON | 例程恢復、暫存段整理 |
| PMON | 清理失敗進程資源 |
| ARCn | 歸檔滿日誌組 |
+---------------------+
| 實例 |
| +---------------+ |
| | SGA | |
| +---------------+ |
| | 背景進程 | |
| +---------------+ |
+----------+----------+
| 掛載/開啟
v
+---------------------+
| 資料庫 |
| +---------------+ |
| | 控制檔 | |
| | 資料檔 | |
| | 重做日誌檔 | |
| +---------------+ |
+---------------------+
STARTUP NOMOUNT 僅啟動實例;STARTUP MOUNT 掛載控制檔;STARTUP OPEN 開啟資料檔/日誌檔。