DBA 面試題 (三)

楊奇龍發表於2010-03-01

1.解釋冷備份和熱備份的不同點以及各自的優點

解 答:熱備份針對歸檔模式的資料庫,在資料庫仍舊處於工作狀態時進行備份。而冷備份指在資料庫關閉後,進行備份,適用於所有模式的資料庫。熱備份的優點在於 當備份時,資料庫仍舊可以被使用並且可以將資料庫恢復到任意一個時間點。冷備份的優點在於它的備份和恢復操作相當簡單,並且由於冷備份的資料庫可以工作在 非歸檔模式下,資料庫效能會比歸檔模式稍好。(因為不必將archive log寫入硬碟)

2.你必須利用備份恢復資料庫,但是你沒有控制檔案,該如何解決問題呢?

解答:重建控制檔案,用帶backup control file 子句的recover 命令恢復資料庫。

3.如何轉換init.ora到spfile?

解答:使用create spfile from pfile 命令.

4.解釋data block , extent 和 segment的區別(這裡建議用英文術語)

解答:data block是資料庫中最小的邏輯儲存單元。當資料庫的物件需要更多的物理儲存空間時,連續的data block就組成了extent . 一個資料庫物件擁有的所有extents被稱為該物件的segment.
5.給出兩個檢查表結構的方法
解答:1.DESCRIBE命令
2.DBMS_METADATA.GET_DDL 包
6.怎樣檢視資料庫引擎的報錯
解答:alert log.
評價:這裡的回答並不是十分全面,這些問題可以透過多個角度來進行解釋,也許你不必在面試過程中給出完全詳盡的答案,只需要透過你的解答使面試考官瞭解你對ORACLE概念的熟悉程度。
2
2.1你可以合併多個補丁。
2.2你可以為一個非互動的補丁建立一個響應檔案。
2.3你可以透過選項(nocompiledb, nomaintainmrc, nocompile)來應用補丁,並且在應用了所有的補丁之後,一次執行它們。
3 檢視失敗工作的日誌,找到並且糾正錯誤,用adctrl 工具重新開啟工作。
4在原始檔上(所有層)執行pre-clone,使用RMAN複製(或者從熱或者冷備份中重新儲存資料庫),複製檔案系統,然後在目標檔案(所有層)上執行post-clone 。
手工步驟(可能會更多):
4.1改變所有的非網站配置選項數值(快速克隆的話,只改變網站級別的配置檔案選項)。
4.2 修改工作流和併發管理器表。
4.3更改印表機。
5 AutoConfig 使用了一個上下文檔案來維護關鍵的配置檔案。一個上下文檔案就是一個檔案,在$APPL_TOP/admin 目錄下,進行集中式的儲存。
當你執行AutoConfig 的時候,它讀取XML檔案,並且建立所有的AutoConfig 管理配置檔案。
對於AutoConfig維護的每個配置檔案,都存在一個臨時檔案來判斷哪個數值是從哪個XML檔案中得來的。
6
6.1檢查DBC檔案中的guest的使用者名稱和密碼,配置選項guest的使用者名稱和密碼、資料庫。
6.2檢視apache/jserv是否啟動了。
6.3執行IsItWorking, FND_.PING, aoljtest等。
7很有可能是FNDFS監聽器停止了。看看 FND_CONCURRENT_REQUESTS 表中的OUTFILE_NODE_NAME 和 LOGFILE_NODE_NAME 的數值。看看FND_NODES 表。看看tnsnames.ora 中的FNDFS_ entry 。
8日誌問卷愛女的位置是由$APPLCSF/$APPLLOG 引數來決定的,輸出檔案的位置是由$APPLCSF/$APPLOUT 決定的。
9
9.1追蹤這個會話(用等待)並且使用tkprof 來分析追蹤檔案。
9.2生成statspack 報告並進行分析。
9.3使用top/iostat/sar/vmstat 監控O/s 。
9.4透過ping這類基本的測試結果來判斷網路的瓶頸。
10.1 使用FNDCPASS 來更改APPS密碼。
10.2 手工修改wdbsvr.app/CMD.dat 檔案。
10.3 更改所有從其他環境指過來的資料庫連結。
11.1位置:$FND_TOP/secure directory
11.2 重要性:在其他事務中指向資料庫。
11.3 應用程式透過使用“Applications Database Id.”來了解DBC檔案的名字。
怎樣檢視資料庫引擎的報錯
解答:alert log.
7.    比較truncate和delete 命令
解答:兩者都可以用來刪除表中所有的記錄。區別在於:truncate是DDL操作,它移動HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花費較長時間.
(1) A 表中有100條記錄.
  SELECT * FROM A WHERE A.COLUMN1 = A.COLUMN1
  這個語句返回幾條記錄?
  (2) CREATE SEQUENCE PEAK_NO
  SELECT PEAK_NO.NEXTVAL FROM DUAL --&gt 假設返回1
  10秒中後,再次做
  SELECT PEAK_NO.NEXTVAL FROM DUAL --&gt 返回多少?
  (3) SQL> connect sys as sysdba
  Connected.
  SQL> insert into dual values ( 'Y');
     1 row created.
  SQL> commit;
     Commit complete.
  SQL> select count(*) from dual;
     COUNT(*)

     ----------

     2

  SQL> delete from dual;
     commit;
     --&gtDUAL裡還剩幾條記錄?

自己解答:
(1) 100
(2) 2
(3) 1
請大家鑑定

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-628267/,如需轉載,請註明出處,否則將追究法律責任。

相關文章