[轉載]DBA的特質第一部分:技術

本文轉自http://www.searchdatabase.com.cn/showcontent_84379.htm 支持原創、尊重原創,分享知識! 數據庫

在本系列文章中,筆者將談一談數據庫管理員(DBA)所應該具有的一些特質。過去幾年裏,一直有人無數次地問我:成爲一名DBA有什麼要求,或者說在招聘DBA時應看重哪些特質?這些特質能夠簡單地歸結爲兩大類:技術特質和性格特質。在第一部分中,筆者就將介紹一名DBA應有的技術特質。 安全

DBA的特質第一部分:技術

DBA技術特質 性能優化

技術特質是指DBA執行一項任務時所須要的技能。在數據庫環境的管理與維護中,技術任務可歸結成許多不一樣的分類。下面列出了一名DBA應掌握的一些技術(排名不分前後)。 數據庫設計

一、理解數據備份/恢復與災難恢復

恢復已損壞的數據庫是每個DBA應掌握的最重要的技能。DBA須要徹底理解數據庫全部可能的備份與恢復方法,以及不一樣備份方法與不一樣恢復策略的對應關係。此外,DBA還須要與業務部門合做,一塊兒確認業務需求,明確用戶可以容忍的數據丟失底線。此外,業務用戶還須要肯定在系統故障狀況下,他們的業務可以維持多長時間。理解這些需求能夠幫助DBA開發出一個知足業務用戶要求的備份/恢復方法。一個優秀的DBA要按期測試備份與恢復流程,保證他們有能力恢復業務數據,知足企業所規定的業務數據丟失與恢復要求。 工具

二、工具集的使用

所謂工具集,指是的他們要有一組用於執行不一樣DBA任務的腳本。這個工具集應該包含不一樣的小代碼片斷,它們能夠快速診斷問題或執行一個特定的任務。這些工具腳本應該按DBA的活動類型歸類,如備份、索引維護、性能優化、容量管理等。因爲老是會執行新任務、發現新問題或找到其餘人開發的好用腳本,所以一個優秀的DBA會不斷地給這個工具集增長新腳本。此外,他還應該瞭解網上哪裏可以找到一些免費的工具和腳本。一個好的DBA知道何時能夠利用其餘人編寫的腳本,從而節省本身的時間和改進本身的工具集。 性能

三、知道從哪裏得到幫助

即便是數據庫大牛,也不多是無所不知的,每一個人都有須要尋求幫助或建議的時候。而知道從何處尋找建議是很重要的。若是一個數據庫實例不能按預期方式運轉,那麼快速尋找新問題的解決方法也是一個重要能力。一個好的DBA知道如何快速地在網上查找一個未知問題的解決方法。此外,他們也可能已經知道了一些很是不錯的網站,也知道業界專家會提供一些好建議,同時知道何時應該忽略一些很差的建議。你可能想象不到,確實有一些建議不值得參考。 學習

四、知道如何使用原生性能工具

以SQL Server舉例,性能是一個關鍵的問題,所以DBA須要知道如何修復故障和監控性能問題。如今有許多第三方性能監控工具能夠幫助DBA優化性能。若是DBA只使用第三方工具,而不會使用SQL Server自帶的原生工具來監控性能,那麼相信很快就會出現問題。雖然使用第三方工具來監控性能也很不錯,可是DBA必定要理解SQL自帶的一些原生工具,如SQL Server Profiler、Database Engine Tuning Advisor、Dynamic ManagementViews、系統/擴展的存儲過程、Extended Events等。許多第三方工具實際上在使用這些底層的原生工具。所以,理解這些自帶的原生工具將有利於加強DBA使用第三方工具的經驗。 測試

五、研究新版本

在技術領域中,沒有什麼是一成不變的。每隔兩三年,主流數據庫廠商都會發佈一個大版本的更新。DBA應該緊跟新版本所做的修改,它們可能有許多變化方法,最好的方法是早晚介入這個過程。測試版開放後立刻下載和安裝,儘快掌握第一手使用經驗。一名好的DBA老是走在學習排頭兵,老是會第一時間安裝和測試新版本。這樣他們就能夠儘早理解新特性,而後提出一些合理的新建議,幫助組織更好地利用新版本數據庫。 優化

六、理解代碼最佳實踐方法

DBA應該瞭解如何編寫高效的代碼。有許多糟糕的編碼實踐方法會致使拙劣的性能。一名好的DBA要可以理解和識別這些糟糕的編碼實踐方法,知道如何修改這些爛代碼,讓它們變成高效代碼。此外,他們還要記錄下寫代碼的最佳實踐方法,而且將這些實踐方法分享給其餘人。 網站

七、持續不斷地學習

數據庫及其組件涉及面很是廣。DBA很難理解一個技術的方方面面。DBA須要持續學習如何管理數據庫。這個學習過程有不少方法。其中之一就是參加正式培訓。可是,並不是人人都有這樣充裕的事件和金錢,也並不是人人都可以放下手頭工做專門出去參加正式的培訓。可是,還有許多其餘方法能夠得到培訓,並且大多數仍是免費的。一名好的DBA必定要訂閱一些按期發佈數據庫新技巧和新文章的社區網站。此外,他還應該加入一些用戶組織,能夠在週末參加一些當地的免費沙龍活動。

八、數據庫安全性

在最近一段時間裏,安全性是一個熱門話題。DBA應該徹底掌握如何實現數據庫的安全訪問。他們應該理解操做系統身份驗證和數據庫身份驗證的區別,以及它們各自的使用場合。他們應該理解如何使用數據庫角色來管理不一樣類型用戶的安全配置。他們應該理解鏈接數據庫的端口與協議。此外,他們還應該理解如何加密整個數據庫,或者加密一個數據庫中一個表的某一個字段,同時理解關於加密數據的各類問題。

九、數據庫設計

決定數據庫性能的一個關鍵問題是數據庫設計。DBA須要理解關於數據庫設計的各個方面。他們要可以理解設計好壞的區別。他們須要理解爲何使用正確的外鍵約束、主鍵、檢查約束和使用數據類型可以保持數據庫的數據完整性和實現高效的數據查詢與更新。

十、索引設計

數據庫索引是提升應用程序檢索和更新數據速度的重要環節。DBA須要知道索引的工做原理。他們應該知道聚簇索引和非聚簇索引的區別,知道這些索引的物理存儲方式。DBA應該知道如何在執行計劃中使用這些索引。他們應該理解如何找到索引的使用統計、理解索引碎片及如何發現丟失的索引。他們應該知道如何維護索引,以及索引統計信息對於查詢引擎的重要做用。

十一、容量監控與規劃

數據庫每每要使用大量的資源,包括CPU、內存、I/O及磁盤空間。DBA應該理解如何監控數據庫所須要的不一樣主機資源的用量。他們應該可以理解這些資源在不一樣時間的使用狀況,以及利用歷史使用數據來規劃將來的容量需求。在監控過程當中,DBA應該可以預見到容量規劃會在未來何時出現問題,而後採起必要的措施保持數據庫不會由於容量限制而出現中斷。

十二、數據庫許可證

不一樣的產品有許多不一樣的許可證受權方式。並且,同一款產品自己又有許多不一樣的版本。DBA應該理解所負責的數據庫版本的不一樣受權模式。他們應該可以提供指導如何經過合理購買受權來減小如今的數據庫總擁有成本,以及如何合理利用受權方法來下降將來版本的升級成本。

1三、儘量實現自動化

DBA天天都須要執行許多的平常任務。其中一些任務須要天天執行,而另外一些則每週、每個月或每一年執行。一名好的DBA須要理解如何高效地安排本身的時間。其中一種方法是創建工做流程,這些平常任務的自動執行。經過實現平常任務的自動化執行,DBA就能夠用更多的時間去關注於數據庫環境管理中遇到的嚴重問題。

本文只是表達了筆者我的對於DBA應具有的重要特質的見解。你具有的特質越多,做爲DBA的你就越優秀。成爲一名成功DBA的關鍵是不斷地學習與提升,努力去掌握更多關於如何管理和維護數據庫環境的知識

相關文章
相關標籤/搜索