範文齋

數據庫管理員工作內容

數據庫管理員,是從事管理和維護數據庫管理系統(DBMS)的相關工作人員的統稱,下面是小編整理的相關內容,希望對你有幫助。

數據庫管理員工作內容

一:數據庫系統規劃

1、硬件:在整套系統規劃初期,要針對數據庫未來的成長需求、性能需求、商業考慮,決定數據庫運行需要的內存、硬盤、cpu及其他資源(IOPS、網絡帶寬)。

在做硬件規劃時,考慮如何使用RAID,這些都會影響到數據庫的性能。

2、 軟件:選擇操作系統、數據庫產品、第三方工具。

3、 整體架構:根據數據庫負載、重要程度,考慮使用單實例數據庫、集羣、複製、鏡像等高可用性、 可擴展性、負載均衡, 讀寫分離等策略。

二:數據庫設計與開發

一般是在開發環境上進行的,可能接下來還會搬到uat環境,最後纔是生產環境

1、表設計:來源於對業務有詳盡的需求分析,從而對現實需求進行綜合、歸納與抽象並形成完整的E-R圖,再由E-R圖轉換爲相應的邏輯模式(表、視圖定義等,考慮範式要求)。

2、數據庫存儲方式設計:根據業務的初期、中期及後期,考慮合理的數據庫存儲規劃,物理存儲(數據文件、日誌文件要如何放置)、邏輯存儲方式(索引、數據、要如何擺放,是否需啊喲建立分區表)。

3、對開發人員的sql進行審覈,優化sql

三:數據庫建設:

1、安裝、升級數據庫軟件,在安裝軟件時要了解不同選項的意義,在升級之前,要確定是否會影響到操作系統、應用程序。

安裝:先把環境搭建好,諸如內核參數,環境變量,rmp包之類的都要搞定,一般要按照安裝參考手冊來設置。

尤其是部署生產環境,由於缺省值不一定能滿足需求,所以每一個參數都得結合其數據環境考量規劃,這個需要一定的經驗。

升級:由於會有各種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的問題。

告警日誌中的異常處理

監xx相關的異常處理

數據庫備份恢復期間的異常處理

job運行異常的處理

數據庫突發的異常處理,如數據庫hang,某個時間段性能低下

集羣管理中的異常處理

數據庫日誌傳送,恢復等異常處理

用戶報告的異常處理

數據庫安全的異常處理