數據庫工程師待遇,數據庫工程師發展好嗎
什么是數據庫工程師?
數據庫工程師(Database Engineer),是從事管理和維護數據庫管理系統(DBMS) 的相關工作人員的統稱,他屬于運維工程師的一個分支,主要負責業務數據庫從設計、測試到部署交付的全生命周期管理。數據庫工程師的核心目標是保證數據庫管理系統的穩定性、安全性、完整性和高性能。在國外,也有公司把數據庫管理員(Database Administrator ,簡稱DBA) 稱作數據庫工程師,兩者的工作內容基本相同,都是保證數據庫服務7*24小時的穩定高效運轉,但是需要區分一下數據庫工程師和數據庫開發工程師(Database Developer):1) 數據庫開發工程師的主要職責是設計和開發數據庫管理系統和數據庫應用軟件系統,側重于軟件研發;2) 數據庫工程師的主要職責是運維和管理數據庫管理系統,側重于運維管理。
數據庫工程師在不同的公司不同的發展階段有著不同的職責與定位。一般意義上的數據庫工程師只是負責數據庫的運營和維護,包括數據庫的安裝、監控、備份、恢復等基本工作,但是廣義上的數據庫工程師職責比這個大得多,需要復蓋產品從需求設計、測試到交付上線的整個生命周期,在此過程中不僅要負責數據庫管理系統的搭建和運維,更要參與到前期的數據庫設計,中期的數據庫測試和后期的數據庫容量管理和性能優化。
對于初創公司,數據庫工程師的工作可能由運維工程師來兼任,從申請域名開始,到服務器上架,配置網絡設備,部署操作系統,安裝數據庫,設計和部署監控,防止漏洞和攻擊等等。而大型公司對數據庫工程師工作的要求越來越高,以下從各個維度來看數據庫工程師工作的職責。
產品生命周期維度
數據庫工程師負責了業務數據庫從設計、測試到部署交付的全生命周期管理,各個階段的職責包括:
1. 產品發布前
這個階段數據庫工程師的職責是數據庫準入,主要包括:
1)產品的業務熟悉;
2)產品數據庫設計評審:包括架構的合理性評估,存儲容量和性能是否滿足需求,是否需要緩存,是否需要冗余備份等,同時需要提供數據庫schema設計的合理性建議以使產品能夠滿足上線發布并穩定運行的基本要求;
3)資源評估,包括所需的服務器資源、網絡資源以及資源的分布等,同時把關產品對資源預算申請的合理性,控制服務成本;
4)資源就位,將申請的服務器及基礎環境/域名準備就位。
2. 產品發布
這個階段數據庫工程師負責數據庫發布的具體工作,將具體的數據庫安裝部署和初始化完成后并對外提供服務。對于已在線數據庫的升級也屬于發布范疇,這個時候的產品發布一般要保障在線發布,在不中斷對外服務的情況下完成數據庫的升級。對于大型復雜的變更也存在中止服務發布完成后再重新提供服務的情況,但這種情況需要數據庫工程師通過盡可能的技術手段來避免。
3. 產品運行維護
這個階段的工作重點包括:
1)監控:對數據庫服務運行的狀態進行實時的監控,包括數據庫會話、數據庫日志、數據文件碎片、表空間監控、用戶訪問監控等,隨時發現數據庫服務的運行異常和資源消耗情況;輸出重要的日常數據庫服務運行報表以評估數據庫服務整體運行狀況,發現數據庫隱患;
2)備份:制定和實施數據庫備份計劃,災難出現時對數據庫信息進行恢復,維護適當介質上的存檔或者備份數據。對數據庫的備份策略要根據實際要求進行更改,數據的日常備份情況進行監控。
3)安全審計:為不同的數據庫管理系統用戶規定不同的訪問權限,以保護數據庫不被未經授權的訪問和破壞。例如,允許一類用戶只能檢索數據,而另一類用戶可能擁有更新數據和刪除記錄的權限。
4)故障處理:對數據庫服務出現的任何異常進行及時處理,盡可能避免問題的擴大化甚至中止服務。這之前數據庫工程師需要針對各類服務異常,如機房/網絡故障、程序bug等問題制定處理的預案,問題出現時可以自動或手動執行預案達到止損的目的。
5)容量管理:包括數據庫規模擴張后的資源評估、擴容、機房遷移、流量調度等規劃和具體實施。
4. 數據庫性能優化
產品對外提供服務最重要的一點是用戶體驗,用戶體驗中非常重要的是產品的可用性和響應速度。而如何用最合理的資源支持產品提供高可用和高速度的用戶體驗,這也是數據庫工程師的重要職責。
先說下本人的情況:05年畢業于沈陽一所三流本科院校,?英語四級沒有過。
1.5?年技術支持(java?web項目)工作經驗?(05年8月到07年1月)
1.5?年java?web開發經驗???????????????(07年1月到08年6月)
1.2?年sqlserver2000數據庫管理開發工作經驗??????????????(08年9月到09年12月)
0.6?年oracle數據庫開發經驗????????????????????????????(09年12月到10年6月)
0.2?年mysql數據庫開發經驗?????????????????????????????(10年6月到至今)
期間,09年8月份,考取了oracle的oca、ocp,花了很大一筆錢,但是發現考取的證書至今對工作薪水沒有任何幫助.
,真正蛋痛啊......
目前在上海,剛到新公司一個多月,做金融行業的服務性軟件的數據庫開發工作。
大家可以看看我的工作經歷,挺雜吧,不過沒有辦法,一直的理想職業是oracle?DBA,但是一直沒有機會去做,期間有機
會做的,但是薪水太少了,由于家庭經濟原因,所以一直沒有轉過去。
我現在想的是,如果在數據庫開發工程師的職位上做好,現在28歲了,上海稅后年薪8W多一點,我想在30歲時候能不能達
到稅后15萬呢?
簡單介紹下目前自己的情況:
1,性格比較內向,不善于溝通,但是能勝任數據庫開發工作。
2,不會數據挖掘不會BI不會商業智能,但是有過oracle10g、sqlserver2000、mysql5.1的開發工作,存儲過程存儲函數編
寫,sql調優還是比較不錯的,但是大數據量的調優比如TB、PB級別的調優沒有做過。能,因為沒有機會讓我去學習去工作
。
3,英語爛的一塌糊涂。看專業的英文文檔有點吃力,主要是單詞量不足,口語就更爛了,至今讀出的A與I,同事很難分清
,都以為我說的是I,但是同事嘴里說出來的I和A,我可以分清楚,郁悶,這個讓我尷尬過好多次。很想去報個英語學習班
提高下,但是由于給老爸老媽買房子,現在是標準的負翁啦,近2年內是拿不出2萬以上的比較好的培訓班費用。
我現在考慮的是在30歲的時候,在上海能達到稅后15萬,有點經濟實力了穩定了,就去找個女朋友,準備結婚;
目前我要如何努力,在做數據庫開發這塊,是否可以達到我自己的目標呢?
什么是數據庫開發工程師,是寫存儲過程觸發器之類的吧,一般我們和java開發都是同一個人 ,沒分的那么細致 |
(1)Oracle的權限控制。
(2)Oracle數據庫的基本概念和性能指標。
(3)常用的數據字典視圖和動態性能視圖。
(4)常用的DBMS包等等。
(5)以RMAN為主的備份恢復,以及容災技術,此外冷備、邏輯備也需要熟練使用。
(6)操作系統和存儲方面的知識,主要是UNIX基礎命令和編寫shell程序。
(7)高級DBA需要了解更多的東西,比如數據庫設計等等。
Oracle的認證主要包括OCA、OCP、OCM等。現在的主流是OCP,不過考試價格較貴。對就業有一定程度的好處。
DBA的就業主要是在大、中型企業。以金融、保險等行業尤甚。大型網站或游戲公司也需要DBA。因為這類行對數據的要求頗高。DBA的待遇在國外是IT從業者里較高的。即使在國內,DBA的待遇也相對好一些。因為其技術難度大于普通程序員。普通DBA一般是在8000-20000之間(如北京、上海)。乙方公司待遇要高一些,但工作較辛苦,壓力很大。甲方公司待遇稍低,但福利略好,工作一般很輕松。
女生在甲方做DBA是很受歡迎的。因為很多領導都會認為女生較細心。但乙方公司一般不大愿意招聘女生來做數據庫方面的服務。
甲方DBA日常的工作壓力不大,較程序員小很多。但出問題的時候負擔會比較重。但一般大型企業都會購買第三方或原廠的技術支持,壓力會減輕很多。每年有1-2個數據庫會出問題或需要做一些大的動作。而且大多數問題都是由于操作系統崩潰或者服務器當機。oracle本身運行還是相當穩定的。
一??數據庫工程師的日常主要工作包括以下幾點:
1.設計并優化數據庫物理建設方案;
2.制定數據庫備份和恢復策略及工作流程與規范;
3.在項目實施中,承擔數據庫的實施工作;
4.針對數據庫應用系統運行中出現的問題,提出解決方案;
5.對空間數據庫進行分析、設計并合理開發,實現有效管理;
6.監督數據庫的備份和恢復策略的執行;
7.為應用開發、系統知識等提供技術咨詢服務。
二?? 數據庫工程師需掌握哪些知識技能?
1.數據庫應用系統分析及規劃:
⑴軟件工程與軟件生命周期
⑵數據庫系統生命周期
⑶數據庫開發方法與工具
⑷數據庫應用體系結構
⑸數據庫應用接口
2.數據庫設計及實現:
⑴概念設計
⑵邏輯設計
⑶物理設計
⑷數據庫對象實現及操作
3.數據庫存儲技術:
⑴存儲與文件結構 ⑵ 索引技術
4.并發控制技術:
⑴事務管理 ⑵ 并發控制技術 ⑶ 死鎖處理
5.數據庫管理與維護:
⑴數據完整性
⑵數據庫安全性
⑶數據庫可靠性
⑷監控分析
⑸參數調整
⑹查詢優化
⑺空間管理
6.數據庫技術的發展與新技術:
⑴分布式數據庫 ⑵ 對象數據庫 ⑶ 并行數據庫 ⑷ 數據倉庫與數據挖掘
三?? 要成為優秀的數據庫工程師還要掌握一些知識,比如,
(1)? 掌握計算機體系結構以及各主要部件的性能和基本工作原理;
(2)? 掌握操作系統、程序設計語言的基礎知識,了解編譯程序的基本知識;
(3)? 數據庫技術的基本概念、原理、方法和技術;
(4)? 能夠使用SQL語言實現數據庫操作;
(5)? 具備數據庫系統安裝、配置及數據庫管理與維護的基本技能;
(6)? 掌握數據庫管理與維護的基本方法;
(7)? 掌握數據庫性能優化的基本方法;
(8)? 了解數據庫應用系統的生命周期及其設計、開發過程;
(9)? 了解數據庫技術的最新發展;
(10) 熟悉常用的數據庫管理和開發工具,具備用指定的工具管理和開發簡單數據庫應用系統的能力。
四?? 那么數據庫工程師又分為哪幾類呢?
數據庫工程師大致分為:
(1)? 數據庫設計工程師 主要面向數據庫建模和數據庫選型,大都參與項目的前期的需求分析,數據庫模型設計,表結構規劃,數據流圖設計工作。
(2)? 數據庫應用工程師 主要是數據庫配置,安裝,維護和調優。數據庫配置,安裝可以通過培訓,結束后基本可以上崗的。維護就需要數據庫工程師具備一定的數據庫管理經歷了。特別是大型數據庫系統還需要工程師具備異構平臺的數據交互能力,特別是熟悉Unix環境。調優就不是一般人能做的事了,需要具備sql編程經驗,數據字典熟悉度,dbms系統構架方面的知識。
(3)? 數據分析師 主要面向數據分析,數據挖掘,數據倉庫構建,etl方面的管理。這樣的人太少了,不但要懂數據庫,還要懂一個行業,能夠進行流程分析,最后使用一些數據挖掘工具,bi工具來做規劃。
不管是哪一類數據庫工程師,一般發展方向都是向更高級別的工程師方向發展,主要是以下三個發展路徑:
(1)? 繼續從事技術專家路線。這是數據庫工程師的主流發展方向,同時也可以兼顧學習并實踐一些服務器(操作系統)等方面的知識,可以嘗試對網絡的基本原理進行了解,從而為后續成為整個基礎設施方面的專家、架構師奠定基礎。當然,也可以專注于數據庫領域,不求廣,但求精,這也是一個可選的技術路線。
(2)? 轉行做管理。如果覺得自己對人比對機器感興趣,可以考慮往管理方面轉型,畢竟職業發展只有和興趣愛好吻合才能事半功倍(可以對自己的特長進行測評,作為發展定位的參考)。機會好的話,可以爭取一個小項目的項目經理機會,作為轉型的開始;但更多的時候,還是需要在"項目經理助理"的崗位上過渡一下。不過,技術可以轉管理,但一旦轉成管理,則不大可能再轉回技術了。這一點需要考慮清楚。
(3)?轉行做銷售。對于有強烈個人成就意識或者是對金錢比較渴望的人,可以嘗試轉型去做做售前,再轉型做銷售;從工程師直接轉銷售的還是比較少,畢竟這是完全不同的兩個領域,建議從售前開始入銷售的門。不過,技術可以轉銷售,但一旦轉成銷售,則不大可能再轉回技術了。這一點需要考慮清楚。
0 Comments.