標籤:
成為一個合格的DBA,若只是瞭解怎樣encoding一些SQL語句和簡單的資料庫日常管理是遠不夠的,所以一個合格的DBA需要瞭解IT的方方面面,從而可以具備對效能、硬體和軟體問題排錯的能力。本文將介紹一個DBA需要明白的幾件事情,個人感覺自己在某些方面能力還是不足,也需要大大加強。
1.需要瞭解如何進行database的良好設計要做好這個必須要瞭解我另一篇文章,即資料庫的範式及逆範式。不良的資料庫設計直接影響系統的效能,因此良好資料庫的設計給後面的最佳化打下量好的基礎。
2.必須熟悉資料庫的系統層級的各種對象。
如瞭解SQL Server與MySQL中各個系統資料庫的作用及其內建對象的用途;熟悉Oracle資料庫的體系架構,如Oracle的體系架構有兩大部分組成:database instance 和database(以後在Oracle章節會詳細介紹Oracle的體繫結構)。熟悉資料庫儲存體繫結構。個人認為不熟悉基礎的東西很難有真正掌握一門資料庫,也不可能做到一個合格的DBA。
3. 必須熟悉SQL語言
如必須熟悉DML、DDL、DCL等語句,且很easily地完成日常業務需要的語句,且確保語句的效率。
4.熟悉資料庫的各種命令,尤其是要熟悉如何在命令列中操作資料庫。
以前有網友或同事問,SQL Server有友好的SSMS,Oracle與MySQL有很多很好的第三方資料庫訪問操作工具,為什麼我們還要學習命令列的方式訪問database?在正常情況下,我也需要使用友好便捷的前台資料庫訪問工具,但是在資料庫或資料庫伺服器出現問題時,我們不能通過windows圖形方式訪問資料庫的時候,我們還可以通過命令列的方式對資料庫進行操作或處理以到達資料庫的管理目的。相信用過mysql與Oracle的朋友應該知道怎樣在命令列的方式operate資料庫,對於SQL Server大多在圖形方式訪問他,後續的其他章節會介紹如何在命令列的方式下operate SQL Server.
5.資料庫的最佳化
這個是個古老又艱巨的問題,相信很多從事資料庫開發的朋友都想學習這個話題;個人最佳化是需要個長期積累與長期實踐才能實現,因為最佳化涉及到很多很多東西,不是簡單的三言兩語能夠講清的,以前有朋友、同事或網友問題,怎樣學好資料庫的最佳化?我告訴他們要從基礎做起,基礎好了,對資料庫結構、工作原理熟悉了自然學習最佳化的熟悉也就有希望的明天了;其實資料庫的最佳化也是有章可遵循;先把資料庫的基礎介紹完後我會有專門的篇幅去一一介紹MySQL、SQL Server與Oracle的最佳化方法與思路。
6.資料庫的日常管理
資料庫的日常管理是DBA的基本工作也是一個非常重要的工作,資料庫也是一個DBMS系統的核心,首先我們必須確保資料庫的安全,做到資料庫的的安全最少需要從兩個方面著手:一是對資料庫系統使用者的管理,要做到明確的安全劃分,要熟知資料庫中的各種角色及其管理,在跨資料庫、跨資料庫的訪問必須做好安全把控,做到精細的粒度管理;二是代碼的書寫方面怎樣使用系統資料更安全,相信很多MIS系統開發的人員應該知道SQL注入吧,因為在代碼書寫上要考慮怎樣避免那樣的攻擊。 其次資料庫的備份、恢複、容災及資料庫後台進程及健全狀態的定期查看,
7. 瞭解OS Server的日常管理
做為一個DBA還需要熟悉作業系統,知道不同作業系統之間的差別,比如安全設定、與活動目錄(AD)、LDAP的整合和命名規範。需要通過OS的系統日誌去瞭解資料庫的運行情況。尤其的學習MySQL和Oracle的朋友,個人認識學習好一種Linux或Unix非常重要。 因為很多大型公司的database是運行在linux或Unix系統之上的。
8. 資料庫的高可用性
資料庫中高可能性是大型公司資料庫系統必須的應用,個人認為其中心是確保減少系統停機的時間;在諸多高可用技術中,Cluster是應用比較多的一項,如MySQL、SQL Server的cluster技術、Oracle RAC技術。此項技術以前有研究過,有空在後續短文中逐漸整理處理。
REMARK: IT隨筆,若轉載請註明出去,謝謝!
TerryXia
DBA(Database administrator資料庫管理員)需要知道的內容