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

Oracle DBA 經典面試題 50 題精選 (含標準答案)

     編輯:Oracle 資料庫基礎

備份與恢復

  1. 冷備份 vs 熱備份:冷備份 (關庫) 適用所有模式,操作簡單、性能稍好 (無歸檔開銷);熱備份 (開庫、歸檔模式) 可恢復至任意時間點、不影響業務。
  2. 無控制文件恢復:重建控制文件 → RECOVER DATABASE USING BACKUP CONTROLFILE。
  3. PFILE 轉 SPFILE:CREATE SPFILE FROM PFILE。

存儲結構

  1. Data Block / Extent / Segment:Block 為最小邏輯單元;連續 Blocks 組成 Extent;對象所有 Extents 稱為 Segment。
  2. 查看表結構:DESCRIBE、DBMS_METADATA.GET_DDL。
  3. 查看引擎報錯:ALERT LOG。

SQL 優化與對象

  1. TRUNCATE vs DELETE:TRUNCATE (DDL) 移動 HWM、不產生 Rollback、速度快;DELETE (DML) 產生 Rollback、可回滾、較慢。
  2. 索引目的:快速訪問 Data Block。
  3. Star Schema 兩表:Fact Table (核心度量) + Dimension Tables (屬性描述)。
  4. Fact Table 索引:Bitmap Index。

約束與對象管理

  1. 關聯約束:Primary Key、Foreign Key。
  2. 不影響子表重建父表:Disable FK → 重建父表 → Enable FK。

歸檔模式

  1. 歸檔 vs 非歸檔:歸檔可時間點恢復;非歸檔性能略高但不可時間點恢復。
  2. 備份控制文件:ALTER DATABASE BACKUP CONTROLFILE TO TRACE。

啟動流程與視圖

  1. 啟動三階段:NOMOUNT (實例) → MOUNT (掛載控制文件) → OPEN (打開數據文件)。
  2. V$ vs GV$ 區別:INST_ID 標識 RAC 實例。

性能調優

  1. 生成 Explain Plan:@?/rdbms/admin/utlxplan.sql → EXPLAIN PLAN SET STATEMENT_ID='tst1' INTO PLAN_TABLE FOR ... → @utlxplp.sql。
  2. 提高 Buffer Cache 命中率:查 V$DB_CACHE_ADVICE → ALTER SYSTEM SET DB_CACHE_SIZE。
  3. ORA-01555:增大 Undo/Rollback Segment、優化長查詢 SQL。

目錄與基礎

  1. ORACLE_BASE vs ORACLE_HOME:BASE 為根目錄,HOME 為產品安裝目錄。
  2. 查時區:SELECT DBTIMEZONE FROM DUAL。
  3. GLOBAL_NAMES=TRUE:強制 DB Link 名稱與遠端資料庫全局名一致。

PL/SQL 進階

  1. 加密 PL/SQL:WRAP 工具。
  2. Function/Procedure/Package:Function 必須返回值;Procedure 不返回;Package 為業務邏輯集合。
  3. Table Function:返回記錄集,用於 Pipeline/ETL。

統計與審計

  1. 三大 Advisor 統計:Buffer Cache、Segment Level、Timed Statistics。
  2. Audit Trace 位置:Unix $ORACLE_HOME/rdbms/audit,Windows 事件查看器。

數據倉庫與後台進程

  1. Materialized View:預聚合數據,適用 DW/DSS。
  2. 用戶進程異常清理:PMON。
  3. 刷新 MView:Job Queue Processes。

診斷與維護

  1. 會話等待分析:V$SESSION / V$SESSION_WAIT。
  2. Redo Logs:記錄數據變更,用於恢復。
  3. 強制 Log Switch:ALTER SYSTEM SWITCH LOGFILE。
  4. DDL 變更追蹤:LogMiner 或 Streams。
  5. Coalesce:字典管理表空間碎片整理,合併相鄰小 Extents。

表空間與用戶

  1. Temporary vs Permanent Tablespace:臨時對象 (排序) vs 永久對象 (表、回滾段)。
  2. 建庫自動建表空間:SYSTEM。
  3. 新用戶連接權限:GRANT CONNECT。

數據文件操作

  1. 添加數據文件:ALTER TABLESPACE ADD DATAFILE '...' SIZE ...
  2. 調整文件大小:ALTER DATABASE DATAFILE '...' RESIZE ...
  3. 查文件大小:DBA_DATA_FILES。
  4. 查表空間剩餘:DBA_FREE_SPACE。

審計與索引

  1. 誰插入記錄:AUDITING。
  2. 重建索引:ALTER INDEX ... REBUILD。

分區與調試

  1. Partitioning:將大表/索引拆分為更小、可管理的分區。
  2. 編譯錯誤查看:SHOW ERRORS。
  3. 收集表統計:ANALYZE (或 DBMS_STATS)。

Trace 與工具

  1. 啟用 Session Trace:DBMS_SESSION.SET_SQL_TRACE 或 ALTER SESSION SET SQL_TRACE=TRUE。
  2. IMPORT vs SQL*Loader:IMP 僅處理 EXP 導出文件;SQL*Loader 處理各類 ASCII 數據源。
  3. 網絡配置兩文件:TNSNAMES.ORA、SQLNET.ORA。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved