數據庫調優都涉及哪些方面?

面試時,經常被問及 “數據庫調優”的事情,心想這不是DBA的事嗎,但回答不好還是顯得不夠專業,查壹下資料,許多還真是程序員的事情,下面總結壹下,希望對大家有所幫助。

方面:

以影響程度排序

D1 業務邏輯 (影響最大)
D2 數據設計 (表結構設計,數據建模)
D3 應用程序設計 (SQL 語句的寫法)
D4 數據庫的邏輯結構 (索引,區間,段,表空間)
D5 數據庫操作 (參數和配置)
D6 訪問路徑
D7 內存分配情況
D8 I/O 和物理設計 (DBA 與業務溝通)(峰值多大,使用周期)
D9 資源的征用
D10 操作系統的調節

D1-D3 影響最大但比較難修改 (事先去做)
D4-D9 性能影響不是最大但經常去做的(DBA)
D10 手段不是很多

可以看出D1-D3都是和程序員相關的,這也正合我以前的想法——良好的程序,業務邏輯設計是最好的調優。其他的數據庫系統都為我們做的差不多了。

DataPump 導入時報錯 ORA-39125

Import: Release 10.2.0.4.0 – 64bit Production on 星期四, 04 1月, 2010 2:52:24

Copyright (c) 2003, 2007, Oracle.  All rights reserved.
;;;
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
啟動 “xxxx”.”xxxx11″:  xxxx/******** DIRECTORY=DUMP_DIR LOGFILE=xxx.log JOB_NAME=xxxx SCHEMAS=xxxx NETWORK_LINK=dblinkxxx
正在使用 BLOCKS 方法進行估計…
處理對象類型 SCHEMA_EXPORT/TABLE/TABLE_DATA
ORA-39125: 在 KUPW$WORKER.GET_TABLE_DATA_OBJECTS 中 Worker 發生意外的致命錯誤 (在調用 DBMS_METADATA.FETCH_XML_CLOB [] 時)
ORA-02041: client database did not begin a transaction
ORA-06512: 在 “SYS.DBMS_SYS_ERROR”, line 95
ORA-06512: 在 “SYS.KUPW$WORKER”, line 6307
—– PL/SQL Call Stack —–
  object      line  object
  handle    number  name
00000008CDA44A20     15032  package body SYS.KUPW$WORKER
00000008CDA44A20      6372  package body SYS.KUPW$WORKER
00000008CDA44A20      9206  package body SYS.KUPW$WORKER
00000008CDA44A20      3949  package body SYS.KUPW$WORKER
00000008CDA44A20      7000  package body SYS.KUPW$WORKER
00000008CDA44A20      1314  package body SYS.KUPW$WORKER
00000007BF9148C8         2  anonymous block
作業 “xxxx”.”xxxx11″ 因致命錯誤於 02:52:28 停止
ORA-39014: 壹個或多個 worker 進程已過早地退出。—

—————————————–

經驗證,屬於bug,bug編號:Bug 6751966

NAC网络准入–整个初始化过程

初始化階段

1)主機接入到Switch

2)Switch立即送SNMP給CAM(這個trap包含了Client的MAC地址和Switch端口號)。

3)CAM首先要看是否這個Mac address已經被Posture assessment過(CAM看是否Mac地址在已經認證的表裏面。換句話說,check這臺機器是不是曾經從網絡裏面logged off的),如果是曾經logged off的機器,則只需直接放到access vlan 或者讓它重新認證,如果重新認證的話,壹般我們不會再次做Postrue assessment,只需要authentication就可以。這個可以在CAM上定義。
4)如果這是壹臺新的Client,CAM會送壹個SNMP write給Switch,讓Switch的這個接口處於authentication VLAN(比如vlan 200)。
5)CAM同時會把這個Client的信息添加到自己的OOB Discovered list 列表裏面。這個信息是從Switch上發過來的SNMP Mac trap 或Switch link up down traps。
6)到了這裏,Client 已經被放到了Untrasted Vlan裏面vlan 200,所有的從Client過來的traffic都被強迫通過CAS。當然CAS上面已經被配置允許DHCP 和DNS queries信息通過,缺省情況下,是不允許通過任何流量的。
7)這個時候,Client要開始從DHCP server 上Request 壹個IP 地址了。
8)Client的IP Address request被CAS的untrusted 口(Vlan 200)接收,在CAS上,request packet的VLAN ID 被改成CAS trusted 口的VLAN ID比如VLAN 100(如何更改vlan其實使我們在CAM上已經預定義好的),反向同時也需要在CAS上更改包的vlan。
9)Okey,當DHCP server收到這個request後,它會分配給client 壹個VLAN 100 的地址,因為這個DHCP server是在VLAN 100 裏面
10)CAS 把從DHCP返回來的packet送給Client,這裏其實CAS又做了壹次更改VLAN ID的工作。

11)此時,這個Client已經擁有了Access vlan 100 裏面的地址,但它又處在authentication VLAN裏面。註意這種方式只能用在Virtual gateway 模式,如果是Router模式,CAS兩端需要不同的地址。

CAA 需要做的工作

1)Okey,到了此時,這臺Client處於未認證的角色裏面,而且有了IP address,除了DHCP和DNS queries,其他的任何流量都不可以通過CAS(我們可以定義允許通過的流量)。CAA該開始工作了。
2)網絡壹旦連通,則CAA開始送SWISS discovery packets 給Default gateway。
3)CAS的Swiss 端口壹直在監聽,壹旦收到CAA發過來的信息,它馬上會給壹個Feedback。
4)CAS回送的信息同時會促使CAA彈出 Login 窗口。用戶名和passwrd將被NAC server 轉發到CAM。

如果CAS通過了authentication 則開始進行Posture assessment。當Posture 失敗時,CAM會把Client放入Temporary 角色,這些工作都是在CAM上來定義,由CAS來執行。Client升級的traffic會通過CAS到達Trast壹邊,這些過程其實流量又向之前壹樣在CAS上被改過VLAN ID.因此,如果妳出不來結果,可能是CAM配置問題。
如果用戶身份認證通過,則進入Posture檢測狀態,註意這裏Client身份可以由CAM完成,但建議使用RADIUS等server來做。到底檢測Client上的那些posture也是在CAM上定義的。我們可以根據Client的不同角色來定義檢測什麽。

CAM 首先通過CAS告訴CAA要檢測哪些內容,CAA負責收集Client上的信息。

CAA收集Client上的信息然後通過CAS送給CAM。

CAM會把CAA發過來的信息與已知的病毒版本、主機patch信息進行比較,如果不match,則CAM指引Client 上的CAA彈出修復對話框,該對話框中會告訴用戶發現的問題,如何修復。

這個時候,CAM會把Client的角色從Unauthenticated 移到Temporary。

所有的update 信息要在這裏通過CAS,Traffic通過CAS時VLAN ID被修改再次上演。

其實二層的OOB配置還是比較簡單的,三層的OOB比較復雜壹點,中間鏈路需要做PBR或者ACC-LIST

Cisco網絡準入控制(NA 被過濾廣告C)之前名為Cisco Clean Access,主要用於在網絡基礎架構中強化安全策略。
網絡準入控制(NAC)是壹項由思科發起、多家廠商參加的計劃,其宗旨是防止病毒和蠕蟲等新興黑客技術對企業安全造成的危害。借助NAC,客戶可以只允許合法的、值得信任的端點設備(例如PC、服務器、PDA)接入網絡,而不允許其他設備接入。在初始階段,當端點設備進入網絡時,NAC能夠幫助思科路由器實施訪問權限。NAC決策可以根據端點設備的信息制定,例如設備的當前防病毒狀況以及操作系統補丁等。網絡將按照客戶制定的策略實行相應的準入控制決策:允許、拒絕、隔離或限制。