下面從6個方面描述資料庫管理員(dba)的工作內容、職責範圍:
一:資料庫系統規劃
1、硬體:在整套系統規劃初期,要針對資料庫未來的成長需求、效能需求、商業考慮,決定資料庫執行需要的記憶體、硬碟、cpu及其他資源(iops、網路頻寬)。
在做硬體規劃時,考慮如何使用raid,這些都會影響到資料庫的效能。
2、 軟體:選擇作業系統、資料庫產品、第三方工具。
3、 整體架構:根據資料庫負載、重要程度,考慮使用單例項資料庫、集群、複製、映象等高可用性、 可擴充套件性、負載均衡, 讀寫分離等策略。
二:資料庫設計與開發
一般是在開發環境上進行的,可能接下來還會搬到uat環境,最後才是生產環境
1、表設計:**於對業務有詳盡的需求分析,從而對現實需求進行綜合、歸納與抽象並形成完整的e-r圖,再由e-r圖轉換為相應的邏輯模式(表、檢視定義等,考慮正規化要求)。
2、資料庫儲存方式設計:根據業務的初期、中期及後期,考慮合理的資料庫儲存規劃,物理儲存(資料檔案、日誌檔案要如何放置)、邏輯儲存方式(索引、資料、要如何擺放,是否需啊喲建立分割槽表)。
3、對開發人員的sql進行審核,優化sql
三:資料庫建設:
1、安裝、公升級資料庫軟體,在安裝軟體時要了解不同選項的意義,在公升級之前,要確定是否會影響到作業系統、應用程式。
尤其是部署生產環境,由於預設值不一定能滿足需求,所以每乙個引數都得結合其資料環境考量規劃,這個需要一定的經驗。
公升級:由於會有各種bug,所以比較重要的是要考慮更新patch等之後產生的影響以及做好回退措施。(白天監控資料庫,晚上挑燈戰bug大笑)。
2、資料庫的建立和引數設定,安裝之後要建立資料庫,有些資料庫引數是在建立時就要決定的,之後無法修改。建立資料庫需要考慮應用程式的需求、操作熊的限制。
3、建立完善的備份計畫,當資料庫損壞時,將資料庫在第一時間恢復,這依靠完善的備份計畫,要考慮到系統的重要性以及企業可承擔的分險。
4、建立資料庫安全性管理規範,將資料分類,給使用者設定適當的許可權。
四:運營維護(運維):
1、建立、維護資料庫使用者和物件,按照安全性管理規範,給使用者適當的訪問許可權。
2、保證資料庫的完整性:資料庫備份恢復。
很多時候我們無意中不小心刪除了資料,給生產資料庫帶來嚴重的後果,所以dba的細心以(每一步操作都盡可能思前想後)、資料庫的定期備份是至關重要的。
資料庫的備份方式:每種資料庫自帶的備份方式是必須要掌握的,對於sql server需要搞清資料庫的恢復模式以及全備,增量等方式,當然掌握bcp命令也是很有必要的。對於oracle,datapump,冷備,熱備,rman備份幾種最好都全部掌握。而且有諸多第三方備份方式。
備份檢查:定期監控資料庫的備份、做災備測試等,來確保資料庫的備份與恢復是完整無誤的。
3、控制、監控使用者對資料庫的訪問情況、使用資料庫資源的情況,
4、資料庫監控、定期巡檢:資料庫執行狀態、資料庫效能、健康檢查
通過對資料庫不同部分、元件的實時監控,我們可以及時發現問題,採取補救措施,通過這種防患於未然的策略,來保障資料庫持續、穩定、健康平穩執行。
這些部分通常包括以下內容:
(1) 實時監控錯誤日誌(絕大部分錯誤資訊都會記錄在資料庫告警日誌,監控告警日誌顯得尤為重要);
(2) 伺服器是否可用(作業系統cpu/io/memory監控);
(3) 資料庫例項狀態監控(資料庫服務是否啟用/中斷);
(4) 資料庫磁碟空間監控(表空間的使用率實時監控);
(5) 閃回區或歸檔日誌監控(如果有使用到閃迴區,歸檔主要是針對歸檔空間空間問題,如不足會hang住)
(6) 資料庫備份或恢復監控
(7) 無效物件的監控與處理;
(8) 資料庫一致性檢查;
(9) 作業執行狀態;
(10) 索引碎片檢查;
(11) ……
可以選擇圖形化介面,以及設定閥值來實現自動預警。
當然也可以自己編寫shell指令碼來定時完成。
比較好的工具大家可以借助於toad,spotlight,myora等優秀工具獲得包括sga,pga,top sql,instance等等更為詳細的資訊。
除了實時監控之外,定期巡檢也是有必要的,這樣可以發現隱性的或未決的問題,以及如何改善當前資料庫。
5、使用者反饋出來的任何資料庫問題,需要dba去做處理,即便有時診斷出來並非資料庫的問題。
6、公升級/遷移
公升級:通常是在本機進行,硬體不變,比如:更換作業系統、資料庫的版本、打補丁。
遷移:通常是需要公升級硬體,比如:更換新的伺服器,所以把資料庫搬到新的伺服器上,也有在本機「遷移」,只是為了移動資料庫檔案的位置。
遷移+公升級:隨著業務增長,對效能要求的提高,以及更新換代,需要公升級不得不實施資料庫遷移,不影響業務。
遷移也是乙個比較耗大的工程,尤其是大型資料庫,上tb級的。
比如使用匯入匯出,儘管操作命令一樣,但大型資料庫你得考慮的更多,可以考慮使用並行,如何優化這個過程的效能,事先準備好詳細的操作步驟時完全有必要的。
不過很多時候,都是在遷移中做公升級,也就是換了新的伺服器,也換了軟體版本。
五:調整資料庫效能:
隨著業務量的不斷增加,業務執行緩慢,客戶抱怨不斷,導致效能問題表現的異常突出。
效能問題是從整個業務需求分析,資料庫架構設計的那一刻起,直至資料庫生命週期結束。
儘管整體效能並不完全取決於資料庫,但資料庫仍然是至關重要的一環。不過僅僅從資料庫層面來把控效能是遠遠不夠的,對儲存、作業系統、網路、業務的了解與掌握,對效能調整做到有的放矢,應用自如。
下面僅僅從資料庫層面來談談效能調整與優化涉及到的方面。
作業系統核心引數優化與調整
基於不同的特性使用raid部署不同型別檔案
分開儲存資料和索引檔案以及均衡i/o
調整資料庫以及例項級別初始化引數
使用分割槽表處理海量資料以及滑動視窗歸檔
消除行鏈結與行遷移
使用索引、提示或物化檢視調整sql訪問負載
調整優化器統計資訊
通過調整pl/sql以提供效能
使用並行技術提高效能
六:資料庫故障排除(災後恢復)
一是由於資料庫軟體及執行環境等產生的各種bug或隱性問題,
二是人為的問題通常也不在少數。
troubleshooting是dba經常面對的問題,因此,如何快速定位並解決這些問題也是衡量乙個dba水平的重要指標。
下面列出幾類較為較為常見的需要troubleshooting的問題。
告警日誌中的異常處理
***相關的異常處理
資料庫備份恢復期間的異常處理
job執行異常的處理
資料庫突發的異常處理,如資料庫hang,某個時間段效能低下
集群管理中的異常處理
資料庫日誌傳送,恢復等異常處理
使用者報告的異常處理
資料庫安全的異常處理
轉 DBA的職責
原址如下 dba的職責 1.安裝和公升級資料庫伺服器,以及應用程式工具構建和配置網路環境.2.熟悉資料庫系統的儲存結構 未來的儲存需求,制訂資料庫的儲存方案.3.根據開發人員設計的應用系統需求建立資料庫儲存結構.4.根據開發人員設計的應用系統需求建立資料庫物件 5.根據開發人員的反饋資訊,在必要的時...
DBA 職責及日常工作職責
1.安裝和公升級 資料庫 伺服器,以及應用程式工具構建和配置網路環境.2.熟悉資料庫系統的儲存結構 未來的儲存需求,制訂資料庫的儲存方案.3.根據開發人員設計的應用系統需求建立資料庫儲存結構.4.根據開發人員設計的應用系統需求建立資料庫物件 5.根據開發人員的反饋資訊,在必要的時候修改資料庫的結構 ...
DBA 職責及日常工作職責
dba 職責及日常工作職責 1.安裝和公升級資料庫伺服器,以及應用程式工具構建和配置網路環境.2.熟悉資料庫系統的儲存結構 未來的儲存需求,制訂資料庫的儲存方案.3.根據開發人員設計的應用系統需求建立資料庫儲存結構.4.根據開發人員設計的應用系統需求建立資料庫物件 5.根據開發人員的反饋資訊,在必要...