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

Oracle DBA 面試高頻題庫 (23-50):PL/SQL 加密、對象類型、統計收集、審計、物化視圖、後台進程、會話等待、Redo Log、分區、錯誤顯示、ANALYZE、TRACE、IMP/SQL*Loader 差異、網絡文件

     編輯:Oracle 資料庫基礎

前言

承接基礎題,本文精選 Oracle DBA 面試進階高頻題 23-50 號,涵蓋 PL/SQL 封裝、對象類型區別、統計收集、審計、物化視圖、後台進程職責、動態視圖、Redo Log 管理、DDL 審計、索引重建、分區、編譯錯誤、ANALYZE、SQL TRACE、導入工具差異、網絡配置文件,附標準答案與考點解析。

題目與標準答案

#問題標準答案考點解析
23如何加密 PL/SQL 程序?WRAP 工具 (wrap iname=xxx.pls oname=xxx.plb)源碼保護,生成可執行二進制文件,不可逆
24FUNCTION、PROCEDURE、PACKAGE 區別Function 必須返回值,Procedure 無返回值,Package 是相關 Function/Procedure 的邏輯集合,支持封裝、重載、狀態保持模塊化編程基礎,Package 為企業級開發標準
25TABLE FUNCTION 用途通過 PL/SQL 邏輯返回行集合,可像表/視圖一樣在 FROM 子句中查詢,用於管道流、ETL 轉換PIPELINED 關鍵字實現流式處理,減少內存佔用
26三種收集統計信息的建議Buffer Cache Advice、Segment Level Statistics、Timed Statistics對應 DB_CACHE_ADVICE、STATISTICS_LEVEL、TIMED_STATISTICS 參數
27Audit trace 存放目錄Unix: $ORACLE_HOME/rdbms/audit;Windows: 事件查看器AUDIT_TRAIL 參數控制 (DB/OS/XML/NONE)
28Materialized View 作用預計算彙總/分組/連接結果,加速數據倉庫/DSS 查詢,支持增量刷新 (FAST REFRESH)查詢重寫 (QUERY_REWRITE_ENABLED) 自動重定向
29用戶進程出錯,哪個後台進程清理?PMON (Process Monitor)釋放鎖、回滾未提交事務、清理 PGA、重新註冊服務
30哪個後台進程刷新 Materialized View?Job Queue Processes (Jnnn / CJQ0)JOB_QUEUE_PROCESSES > 0 才會自動刷新
31如何判斷哪個 Session 正在等待什麼資源?V$SESSION / V$SESSION_WAIT (或 V$SESSION_WAIT_HISTORY)關鍵列: SID, EVENT, SECONDS_IN_WAIT, P1/P2/P3, BLOCKING_SESSION
32什麼是 Redo Logs?記錄數據庫所有變更的物理/邏輯結構,用於實例恢復、介質恢復、Data Guard 同步循環寫入,組/成員多路鏡像,LGWR 寫入觸發 COMMIT 完成
33如何強制 Log Switch?ALTER SYSTEM SWITCH LOGFILE;手動觸發歸檔、均衡 Redo 分佈、備份前切換
34判斷 DDL 變更的兩種方法LogMiner (分析歸檔/聯機日志)、Streams (捕獲 DDL LCR)LogMiner 適合事後審計,Streams 適合實時捕獲複製
35Coalescing 做什麼?針對字典管理表空間 (Dictionary Managed Tablespace) 合併相鄰空閒區 (Extents) 形成大區,減少碎片局部管理表空間 (LMT) 自動管理,無需手動 COALESCE
36Temporary vs Permanent Tablespace 差異Temporary: 排序、哈希、臨時表、中間結果;Permanent: 持久對象 (表、索引、Undo 段)臨時表空間不產生 Redo,分配/釋放極快
37創建數據庫時自動建立的 TablespaceSYSTEM存放數據字典、系統回滾段 (10g+ 改用 SYSAUX/UNDO)
38創建用戶需授予什麼權限才能連接?CREATE SESSION (通常通過 GRANT CONNECT 間接授予)10g+ CONNECT 角色僅含 CREATE SESSION
39如何給 Tablespace 增加數據文件?ALTER TABLESPACE ADD DATAFILE '' SIZE [AUTOEXTEND ON ...];在線操作,無需停機
40如何調整數據文件大小?ALTER DATABASE DATAFILE '' RESIZE ;縮小需高水位標記以下,否則報 ORA-03297
41哪個 View 查數據文件大小?DBA_DATA_FILES (或 V$DATAFILE)列: FILE_ID, TABLESPACE_NAME, FILE_NAME, BYTES, AUTOEXTENSIBLE
42哪個 View 判斷 Tablespace 剩餘空間?DBA_FREE_SPACE (配合 DBA_DATA_FILES 計算總/已用/剩餘)常用查詢: SELECT tablespace_name, SUM(bytes)/1024/1024 free_mb FROM dba_free_space GROUP BY tablespace_name
43如何判斷誰向表插入了一行?啟用審計: AUDIT INSERT ON table_name BY ACCESS; 查 DBA_AUDIT_TRAIL細粒度審計 (FGA) 可加條件
44如何重建索引?ALTER INDEX REBUILD [ONLINE] [TABLESPACE ts] [PARALLEL n];ONLINE 允許 DML 並發,PARALLEL 加速
45什麼是 Partitioning?優點?將大表/索引按範圍/列表/哈希/間隔分割為多個分區,優點: 分區裁剪、分區級維護、分區級備份、並行度提升、歷史數據歸檔分區鍵選擇決定裁剪效果
46PL/SQL Package 編譯報錯如何顯示錯誤?SHOW ERRORS 或 SELECT * FROM USER_ERRORS WHERE NAME = 'PKG_NAME';編譯警告不阻塞,錯誤導致對象 INVALID
47如何收集表的統計信息?ANALYZE TABLE ... COMPUTE STATISTICS (舊) / DBMS_STATS.GATHER_TABLE_STATS (推薦, 10g+)DBMS_STATS 支持並行、增量、直方圖、發布/鎖定統計
48如何啟用 Session 級 SQL Trace?DBMS_SESSION.SET_SQL_TRACE(TRUE) 或 ALTER SESSION SET SQL_TRACE = TRUE; 或事件 10046生成 .trc 文件,TKPROF 格式化分析
49IMPORT vs SQL*Loader 差異IMP 只能導入 EXP 導出的 .dmp 文件;SQL*Loader 可導入各種 ASCII/CSV/定長格式文本文件,性能更高 (直路徑/並行)SQL*Loader 是大數據加載首選
50網絡連接用到哪兩個文件?TNSNAMES.ORA (服務名映射) 和 SQLNET.ORA (客戶端網絡參數: 域、超時、加密、命名方法)還有 LISTENER.ORA (服務端監聽配置)

面試加分技巧

  • 答案後主動補充「生產環境最佳實踐」或「踩過的坑」。
  • 涉及參數時說明動態/靜態、作用域 (SESSION/SYSTEM/SPFILE)。
  • 工具題 (WRAP, LogMiner, TKPROF, oradebug) 談出生產使用場景。
  • 遇到不確定題,誠實說明「未實操但知原理」,並描述排查思路。

總結

23-50 題覆蓋 PL/SQL 封裝、統計/審計/物化視圖、後台進程分工、動態視圖診斷、Redo/分區/索引管理、編譯錯誤、TRACE、導入工具選型、網絡配置。掌握標準答案並能展開實戰細節,是資深 DBA 面試的核心競爭力。

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