首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle DBA 面試題精選 23 題:從備份恢復到架構設計的完整答案解析

     編輯:Oracle 資料庫基礎

核心知識領域覆蓋

本題庫涵蓋:備份恢復、架構元件、效能調優、安全管理、RAC/Data Guard、故障排查 — 面試官最關心的實戰能力指標。

題目與標準答案

1. 冷備份 vs 熱備份差異與優缺點

冷備份:資料庫關閉狀態複製檔案。適用所有模式。優點:操作簡單、無一致性風險、可非歸檔模式 (效能稍好)。缺點:需停機。

熱備份:歸檔模式下資料庫開啟狀態備份。優點:零停機、可時間點恢復 (PITR)。缺點:複雜度高、產生額外 Redo、需歸檔模式。

2. 無控制檔如何從備份恢復

重建控制檔:CREATE CONTROLFILE ...,然後 RECOVER DATABASE USING BACKUP CONTROLFILE,最後 ALTER DATABASE OPEN RESETLOGS。

3. PFILE 轉 SPFILE

CREATE SPFILE FROM PFILE; 或指定路徑 CREATE SPFILE='...' FROM PFILE='...'。

4. Data Block、Extent、Segment 差異

  • Data Block:最小邏輯儲存單位 (8K/16K/32K)
  • Extent:連續 Data Block 組成,空間分配單位
  • Segment:物件擁有的所有 Extents 集合 (表段、索引段、Undo 段、暫存段)

5. 檢查表結構兩種方法

  1. DESC table_name (SQL*Plus 指令)
  2. DBMS_METADATA.GET_DDL('TABLE', 'TABLE_NAME') (取得完整 DDL)

6. 查看資料庫引擎錯誤

Alert Log ($DIAG_HOME/alert_.log 或 ADRCI)。

7. TRUNCATE vs DELETE

TRUNCATEDELETE
類型DDLDML
HWM重置不變
Rollback不產生 (不可回滾)產生 Undo
觸發器不觸發觸發
速度極快慢 (與筆數成正比)
WHERE不支援支援

8. 使用索引的理由

快速存取表中 Data Block,避免全表掃描,提升查詢效能。

9. Star Schema 兩類表

  • Fact Table:大量核心業務度量 (銷售額、數量)
  • Dimension Table:描述 Fact 屬性 (時間、產品、客戶、門市)

10. Fact Table 適合索引類型

Bitmap Index (位圖索引) — 低基數欄位、資料倉庫環境、星型查詢優化。

11. 兩種約束

Primary Key (主鍵)、Foreign Key (外鍵)。

12. 不影響子表重建父表

停用子表外鍵 → 重建父表 → 啟用外鍵。ALTER TABLE child DISABLE CONSTRAINT fk_name; ... ALTER TABLE child ENABLE CONSTRAINT fk_name;

13. 歸檔 vs 非歸檔模式

歸檔:可 PITR、Data Guard、閃回。非歸檔:不可 PITR、效能略好 (無歸檔寫入)、僅能冷備份恢復至備份點。

14. 建立備份控制檔

ALTER DATABASE BACKUP CONTROLFILE TO TRACE; (產生建立腳本) 或 TO '/path/control.bak' (二進位備份)。

15. 資料庫正常啟動三階段

  1. STARTUP NOMOUNT:Instance 啟動 (SGA、背景進程)
  2. STARTUP MOUNT:掛載資料庫 (讀取控制檔)
  3. STARTUP OPEN:開啟資料庫 (讀取資料檔、線上重做日誌)

16. V$ vs GV$ 差異欄位

INST_ID:識別叢集中具體 Instance。

17. 產生 Explain Plan

  1. 執行 @?/rdbms/admin/utlxplan.sql 建立 PLAN_TABLE
  2. EXPLAIN PLAN SET STATEMENT_ID='tst1' INTO PLAN_TABLE FOR SELECT ...
  3. @?/rdbms/admin/utlxplp.sql 或 utlxpls.sql 檢視

18. 提高 Buffer Cache 命中率

繁忙時查詢 V$DB_CACHE_ADVICE,若建議調大則 ALTER SYSTEM SET DB_CACHE_SIZE=...;。配合 DB_KEEP_CACHE_SIZE 釘住熱門物件。

19. ORA-01555 處理

「Snapshot too old」。增大 Undo 表空間/保留時間 (UNDO_RETENTION)、避免長查詢與大量 DML 並發、檢查導致錯誤的 SQL 優化。

20. ORACLE_HOME vs ORACLE_BASE

ORACLE_BASE:Oracle 安裝根目錄 (如 /u01/app/oracle)。ORACLE_HOME:特定版本產品目錄 (如 /u01/app/oracle/product/19.0.0/dbhome_1)。

21. 判斷資料庫時區

SELECT DBTIMEZONE FROM DUAL; (資料庫時區)。Session 時區:SESSIONTIMEZONE。

22. GLOBAL_NAMES=TRUE 用途

強制 Database Link 名稱必須與遠端資料庫 GLOBAL_NAME 相同,防止連線錯誤。

23. PL/SQL 程式加密

WRAP 工具 (wrap iname=proc.sql oname=proc.plb) 或 DBMS_DDL.WRAP / CREATE_WRAPPED (12c+)。

面試加分技巧

  • 答案結構:定義 → 差異 → 優缺點 → 實戰經驗 → 相關參數/工具
  • 主動延伸:如答 TRUNCATE 時補充「分區截斷 ALTER TABLE ... TRUNCATE PARTITION」
  • 承認盲區:不懂誠實說明並描述排查思路,比硬猜可信度高
  • 帶作品集:AWR 報告分析、故障根因分析報告、自動化腳本庫

這 23 題是 Oracle DBA 核心知識的「最小必要集」。深度理解每題背後的原理 (而非背誦答案),才能在面試中展現專業深度,並在實際運維中從容應對各種挑戰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved