數據庫工程師

數據庫工程師

從事管理和維護DBMS的相關工作人員
數據庫工程師(Database Engineer),是從事管理和維護數據庫管理系統(DBMS) 的相關工作人員的統稱,他屬于運維工程師的一個分支,主要負責業務數據庫從設計、測試到部署交付的全生命周期管理。數據庫工程師的核心目标是保證數據庫管理系統的穩定性、安全性、完整性和高性能。在國外,也有公司把數據庫管理員(Database Administrator,簡稱DBA) 稱作數據庫工程師,兩者的工作内容基本相同,都是保證數據庫服務7*24小時的穩定高效運轉,但是需要區分一下數據庫工程師和數據庫開發工程師(Database Developer):1) 數據庫開發工程師的主要職責是設計和開發數據庫管理系統和數據庫應用軟件系統,側重于軟件研發;2) 數據庫工程師的主要職責是運維和管理數據庫管理系統,側重于運維管理。
    中文名:數據庫工程師 外文名:Database Engineer 别名: 類别:一種職業 相關詞條:數據庫,運維,運維工程師

主要職責

數據庫工程師在不同的公司不同的發展階段有着不同的職責與定位。一般意義上的數據庫工程師隻是負責數據庫的運營和維護,包括數據庫的安裝、監控、備份、恢複等基本工作,但是廣義上的數據庫工程師職責比這個大得多,需要複蓋産品從需求設計、測試到交付上線的整個生命周期,在此過程中不僅要負責數據庫管理系統的搭建和運維,更要參與到前期的數據庫設計,中期的數據庫測試和後期的數據庫容量管理和性能優化。

對于初創公司,數據庫工程師的工作可能由運維工程師來兼任,從申請域名開始,到服務器上架,配置網絡設備,部署操作系統,安裝數據庫,設計和部署監控,防止漏洞和攻擊等等。而大型公司對數據庫工程師工作的要求越來越高,以下從各個維度來看數據庫工程師工作的職責。

産品生命周期維度

數據庫工程師負責了業務數據庫從設計、測試到部署交付的全生命周期管理,各個階段的職責包括:

1. 産品發布前

這個階段數據庫工程師的職責是數據庫準入,主要包括:

1)産品的業務熟悉;

2)産品數據庫設計評審:包括架構的合理性評估,存儲容量和性能是否滿足需求,是否需要緩存,是否需要冗餘備份等,同時需要提供數據庫schema設計的合理性建議以使産品能夠滿足上線發布并穩定運行的基本要求;

3)資源評估,包括所需的服務器資源、網絡資源以及資源的分布等,同時把關産品對資源預算申請的合理性,控制服務成本;

4)資源就位,将申請的服務器及基礎環境/域名準備就位。

2. 産品發布

這個階段數據庫工程師負責數據庫發布的具體工作,将具體的數據庫安裝部署和初始化完成後并對外提供服務。對于已在線數據庫的升級也屬于發布範疇,這個時候的産品發布一般要保障在線發布,在不中斷對外服務的情況下完成數據庫的升級。對于大型複雜的變更也存在中止服務發布完成後再重新提供服務的情況,但這種情況需要數據庫工程師通過盡可能的技術手段來避免。

3. 産品運行維護

這個階段的工作重點包括:

1)監控:對數據庫服務運行的狀态進行實時的監控,包括數據庫會話、數據庫日志、數據文件碎片、表空間監控、用戶訪問監控等,随時發現數據庫服務的運行異常和資源消耗情況;輸出重要的日常數據庫服務運行報表以評估數據庫服務整體運行狀況,發現數據庫隐患;

2)備份:制定和實施數據庫備份計劃,災難出現時對數據庫信息進行恢複,維護适當介質上的存檔或者備份數據。對數據庫的備份策略要根據實際要求進行更改,數據的日常備份情況進行監控。

3)安全審計:為不同的數據庫管理系統用戶規定不同的訪問權限,以保護數據庫不被未經授權的訪問和破壞。例如,允許一類用戶隻能檢索數據,而另一類用戶可能擁有更新數據和删除記錄的權限。

4)故障處理:對數據庫服務出現的任何異常進行及時處理,盡可能避免問題的擴大化甚至中止服務。這之前數據庫工程師需要針對各類服務異常,如機房/網絡故障、程序bug等問題制定處理的預案,問題出現時可以自動或手動執行預案達到止損的目的。

5)容量管理:包括數據庫規模擴張後的資源評估、擴容、機房遷移、流量調度等規劃和具體實施。

4. 數據庫性能優化

産品對外提供服務最重要的一點是用戶體驗,用戶體驗中非常重要的是産品的可用性和響應速度。而如何用最合理的資源支持産品提供高可用和高速度的用戶體驗,這也是數據庫工程師的重要職責。

技術分工

産品的整個生命周期裡數據庫工程師的職責重要而廣泛,這催生了各個縱向的運維技術方向,主要包括:

數據庫監控技術:包括監控平台的研發、應用,服務監控準确性、實時性、全面性的保障

數據庫故障管理:包括服務的故障預案設計,預案的自動化執行,故障的總結并反饋到産品/系統的設計層面進行優化以提高産品的穩定性

數據庫容量管理:測量服務的容量,規劃服務的機房建設,擴容、遷移等工作

數據庫性能優化:從各個方向,包括SQL優化、參數優化、應用優化、客戶端優化等,提高數據庫的性能和響應速度,改善用戶體驗

數據庫安全保障:包括數據庫的訪問安全、防攻擊、權限控制等

數據庫自動部署:部署平台/工具的研發,及平台/工具的使用,做到安全、高效的發布服務

數據庫集群管理:包括數據庫的服務器管理、分布式集群管理等

數據庫模型設計:包括數據庫邏輯和物理模型的設計,如何實現性能最優,架構可擴展,服務可運維等

等等,凡是關系到數據庫質量、效率、成本、安全等方面的工作,及涉及到的技術、組件,都在數據庫工程師的技術範疇裡。做好每一個技術方向都對履行數據庫工程師職責起到積極的作用,對業務的發展發揮關鍵影響。

技術能力

數據庫工程師以技術為基礎,通過技術保障數據庫提供更高質量的服務。數據庫工程師工作的職責及在業務中的位置決定了數據庫工程師需要具備更加廣博的知識和深入的技術能力。在數據庫環境的管理與維護中,技術任務可歸結成許多不同的分類。下面列出了一名數據庫工程師應掌握的一些技能:

1)理解數據備份/恢複與災難恢複

恢複已損壞的數據庫是每一個數據庫工程師應掌握的最重要的技能。數據庫工程師需要完全理解數據庫所有可能的備份與恢複方法,以及不同備份方法與不同恢複策略的對應關系。此外,數據庫工程師還需要與業務部門合作,一起确認業務需求,明确用戶能夠容忍的數據丢失底線。此外,業務用戶還需要确定在系統故障情況下,他們的業務能夠維持多長時間。理解這些需求可以幫助數據庫工程師開發出一個滿足業務用戶要求的備份/恢複方法。一個優秀的數據庫工程師要定期測試備份與恢複流程,保證他們有能力恢複業務數據,滿足企業所規定的業務數據丢失與恢複要求。

2)工具集的使用

所謂工具集,指的是一組用于執行不同數據庫工程師任務的腳本。這個工具集應該包含不同的小代碼片段,它們可以快速診斷問題或執行一個特定的任務。這些工具腳本應該按數據庫工程師的活動類型歸類,如備份、索引維護、性能優化、容量管理等。由于總是會執行新任務、發現新問題或找到其他人開發的好用腳本,因此一個優秀的數據庫工程師會不斷地給這個工具集增加新腳本。此外,他還應該了解網上哪裡能夠找到一些免費的工具和腳本。一個好的數據庫工程師知道什麼時候可以利用其他人編寫的腳本,從而節省自己的時間和改進自己的工具集。

3)知道如何快速尋找答案

數據庫每天會面臨各種各樣故障的挑戰,從硬件到網絡,從性能壓力到程序bug,數據庫工程師都要從容應對,一一排除。即使是數據庫大牛,也不可能是無所不知的,因此每個數據庫工程師一方面需要不斷修煉自己,積累操作系統、網絡、硬件、存儲系統、分布式計算等理論基礎,另一方面還要有快速尋找新問題解決方法的能力。如果一個數據庫實例不能按預期方式運轉,那麼快速尋找新問題的解決方法也是一個重要能力。一個好的數據庫工程師知道如何快速地在網上查找一個未知問題的解決方法。此外,他們也可能已經知道了一些非常不錯的網站,也知道業界專家會提供一些好建議,同時知道什麼時候應該忽略一些不好的建議。你可能想象不到,确實有一些建議不值得參考。

4)如何監控和優化數據庫性能

對于任何數據庫産品,性能都尤其重要,它會直接影響産品的響應速度和用戶體驗。對于一個數據庫工程師來說,性能優化一般需要占用50%的工作時間,因此數據庫工程師需要知道如何監控和優化數據性能。

以SQL Server舉例,性能是一個關鍵的問題,因此數據庫工程師需要知道如何修複故障和監控性能問題。有許多第三方性能監控工具可以幫助數據庫工程師優化性能。如果數據庫工程師隻使用第三方工具,而不會使用SQL Server自帶的原生工具來監控性能,那麼相信很快就會出現問題。雖然使用第三方工具來監控性能也很不錯,但是數據庫工程師一定要理解SQL自帶的一些原生工具,如SQL Server Profiler、Database Engine Tuning Advisor、Dynamic Management Views、系統/擴展的存儲過程、Extended Events等。許多第三方工具實際上在使用這些底層的原生工具。因此,理解這些自帶的原生工具将有利于增強數據庫工程師使用第三方工具的經驗。

5)研究新版本

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

6)理解代碼最佳實踐方法

數據庫工程師應該了解如何編寫高效的代碼。有許多糟糕的編碼實踐方法會導緻拙劣的性能。一名好的數據庫工程師要能夠理解和識别這些糟糕的編碼實踐方法,知道如何修改這些爛代碼,讓它們變成高效代碼。此外,他們還要記錄下寫代碼的最佳實踐方法,并且将這些實踐方法分享給其他人。

7)持續不斷地學習

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

8)數據庫安全性

安全性是一個熱門話題。數據庫工程師應該完全掌握如何實現數據庫的安全訪問。他們應該理解操作系統身份驗證和數據庫身份驗證的區别,以及它們各自的使用場合。他們應該理解如何使用數據庫角色來管理不同類型用戶的安全配置。他們應該理解連接數據庫的端口與協議。此外,他們還應該理解如何加密整個數據庫,或者加密一個數據庫中一個表的某一個字段,同時理解關于加密數據的各種問題。

9)數據庫設計

決定數據庫性能的一個關鍵問題是數據庫設計。數據庫工程師需要理解關于數據庫設計的各個方面。他們要能夠理解設計好壞的區别。他們需要理解為什麼使用正确的外鍵約束、主鍵、檢查約束和使用數據類型能夠保持數據庫的數據完整性和實現高效的數據查詢與更新。

10)索引設計

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

11)容量監控與規劃

數據庫往往要使用大量的資源,包括CPU、内存、I/O及磁盤空間。數據庫工程師應該理解如何監控數據庫所需要的不同主機資源的用量。他們應該能夠理解這些資源在不同時間的使用情況,以及利用曆史使用數據來規劃未來的容量需求。在監控過程中,數據庫工程師應該能夠預見到容量規劃會在将來什麼時候出現問題,然後采取必要的措施保持數據庫不會因為容量限制而出現中斷。

12)數據庫許可證

不同的産品有許多不同的許可證授權方式。而且,同一款産品本身又有許多不同的版本。數據庫工程師應該理解所負責的數據庫版本的不同授權模式。他們應該能夠提供指導如何通過合理購買授權來減少數據庫總擁有成本,以及如何合理利用授權方法來降低未來版本的升級成本。

13)盡可能實現自動化

數據庫工程師每天都需要執行許多的日常任務。其中一些任務需要每天執行,而另一些則每周、每月或每年執行。一名好的數據庫工程師需要理解如何高效地安排自己的時間。其中一種方法是建立工作流程,這些日常任務的自動執行。通過實現日常任務的自動化執行,數據庫工程師就可以用更多的時間去關注于數據庫環境管理中遇到的嚴重問題。

你具備的特質越多,作為數據庫工程師的你就越優秀。成為一名成功數據庫工程師的關鍵是不斷地學習與提高,努力去掌握更多關于如何管理和維護數據庫環境的知識。

性格要求

很多時候管理人員都忽視了數據庫工程師的個性特點,他們隻關注數據庫工程師的技術能力。實際上,上面談到的每個職責都意味着:數據庫工程師需要跟各種人員打交道,這些人員可能是銷售商、用戶、開發人員或者管理人員。這說明數據庫工程師必須具有下面的個性特點:

自信心:足夠的自信心能夠幫助數據庫工程師在重要緊急時刻果斷下決定,而不是不知所措地看着事故發生

好奇心:幾乎所有的數據庫系統都在不停地更新,但并不是所有的更新都有技術文檔,對于優秀的數據庫工程師來說,好奇心是必須的。沒有好奇心和求知欲的數據庫工程師總是等待别人來告訴他們答案。

自我驅動:自我驅動對每個人都是很重要的,對數據庫工程師尤其如此。數據庫工程師要能想辦法使問題出現,而不是等待問題的出現。自驅力強的數據庫工程師常常設法取得或者自己寫一些必要的腳本來監控包括數據表大小(Table Size)、表空間使用(Tablespace Usage)等項目,這些項目如果被忽視,他們将遇到麻煩。

堅韌的意志力和沉着的心态:數據庫工程師常常會碰到棘手的問題。尋找答案是一個需要堅韌意志力、可以經受摔打的個性特點。同時面對緊急情況時要能處亂不驚,保持平和的心态冷靜處理問題。

工作認真細緻,勤于思考:注意細節的數據庫工程師能夠深入了解數據庫的内核,并能理解視圖、表之間的關系,這點非常重要

時間管理能力:數據庫運維的工作非常繁瑣,因此需要将碎片化的時間充分利用起來。

良好的溝通能力、具有團隊合作精神:數據庫工程師的工作需要跨部門、跨工種接觸很多工程師,善于溝通、團隊協作能夠起到良好作用

等級

數據庫工程師的等級并不是很嚴格的。按照對數據庫的掌握情況,可以分成三個等級:初級Primary、中級Intermediate和高級Senior。

初級數據庫工程師又稱為DBBS,是英文Database Baby Sitter的縮寫。初級數據庫工程師常常是兼職的,他們往往同時是程序員或者兼任其他的工作。初級數據庫工程師往往把個人簡曆寫得很棒,參與了很多和數據庫有關的項目或工作。但是,這些項目或者工作往往是:第三方軟件供應商已經安裝并配置了數據庫,他們隻做一些監控的工作。他們能處理一些簡單的問題,但大多數時候他們向應用軟件供應商求救。初級數據庫工程師更喜歡圖形化的數據庫管理或者監控工具,他們喜歡Access這樣的桌面數據庫簡單易用,并把這些小型數據庫的經驗簡單地應用到大型數據庫相關的工作中。

初級數據庫工程師是最好區分的。而中級數據庫工程師和高級數據庫工程師就不太好區分。他們的差别在于經驗的不同和個性特點、能力方面的差異。中級數據庫工程師比較多,他們可以勝任高級數據庫工程師的大部分工作,包括:

1)數據庫安裝;

2)數據庫配置和管理;

3)權限設置和安全管理;

4)監控和性能調節;

5)備份和恢複;

6)解決一般的問題;

中級數據庫工程師往往從業一年左右,熟悉某種操作系統環境下的數據庫。因為對中級數據庫工程師來講,Windows NT和Unix是有很大差别的。中級數據庫工程師對SQL比較熟悉,他們自己購買了幾本數據庫方面的書籍,并深入鑽研。中級數據庫工程師往往同時兼任數據庫程序員,他們的工作對性能、穩定性、安全性的追求基本上不是很高,往往配合高級數據庫工程師做一些例行工作。

高級數據庫工程師在國内是非常少的。他們能夠熟練閱讀數據庫方面的英文資料,并且都熟悉很多種操作平台下的幾種大型數據庫。他們知道各種不同數據庫在不同環境下的優勢和劣勢,并能在數據庫平台和數據庫環境的選擇方面做出決策。他們一般通曉系統架構和數據庫設計,并能對數據庫進行各種級别的優化。高級數據庫工程師一般都配有助手,他們更偏向做決策和計劃。高級數據庫工程師往往在銀行業、保險業、在線交易等對穩定性、安全性、性能都要求比較高的關鍵業務處理領域大顯身手。

很多時候,是否取得數據庫專家認證證書并不是很重要。很多數據庫廠商的培訓隻要你去了都會獲得證書。有很多的公司提供商業化的培訓,他們的服務質量也有好有劣。所以證書并不是特别地有意義。

數據庫系統介紹

1)最流行的開源數據庫系統——MySQL

在 WEB 應用方面 MySQL 是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件之一。國内外很多互聯網公司都在廣泛使用着MySQL作為關系型存儲的主要數據庫系統,比如Facebook、百度、阿裡、騰訊等。MySQL的開源特性,豐富的社區支持,讓它成為入門級數據庫工程師的首選。MySQL分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站數據庫。由于其社區版的性能卓越,搭配 PHP 和 Apache/Nginx 可組成良好的開發環境。

2)最“容易”的數據庫系統——Microsoft SQL Server

如果你打算做一個數據庫工程師,建議你選擇那些比較流行的數據庫系統。這意味着你将有更多的就業機會、交流和培訓機會,而且,流行自有流行的理由,你可以因此省心很多。當然,就業競争壓力也比較大。一般的入門者選擇Microsoft SQL Server,這是非常适合中小型企業的數據庫系統,熟悉Access的讀者很容易就能初步使用Microsoft SQL Server,成為一個DBBS。

Microsoft SQL Server 7.0的報價,5用戶版1399美金,增加用戶時,127美金每用戶。

3)最“難”的數據庫——無冕之王Oracle

如果你有機會接觸到Oracle,那可是個好機會。Oracle是目前最看好的數據庫廠商,由于其強大的功能和可配置、可管理能力,Oracle 數據庫工程師的薪資一般比其他數據庫管理員的薪資要高。而且,Oracle在大中型企業的關鍵應用也更加普遍了。Oracle可以運行在Windows NT、Sun Solaris、Linux等平台下。很多情況下要求你不僅僅熟悉NT,還要你熟悉Unix;而且Oracle不太友善的界面和成箱的Oracle産品資料可能也是一個障礙。

Oracle 8i标準版的報價,如果運行在Windows NT,附帶JServer和interMedia,支持5個并發用戶,報價是3925美金每CPU。增加并發用戶時,785美金每用戶。增加附加的命名用戶時,392.5美金每用戶。

4)數據庫系統的貴族-IBM UDB/DB2

作為30年數據庫研究的成果,IBM DB2确實稱得上“數據庫系統的貴族”。不管是小型商業系統,還是大的銀行系統,用DB2都是可以高枕無憂的。當前推出的新版DB2 6.1,管理和調節工具更加卓越和便于使用。DB2 可以運行在Intel架構上,也可以運行在IBM的S/390大型計算機上。如果你所在的行業對IBM的機器特别地稱道,建議你學習IBM DB2。

DB2有兩種版本:工作組版和企業版。工作組版999美元每服務器,外加249美元每個并發用戶。而企業版是12500美元每個CPU,不限并發用戶數量。

5)以Java為中心的數據庫-Sybase Adaptive Server Enterprise(ASE) 12.0

即将發布的Sybase ASE 12.0,直接面向Java程序員。這種以Java為中心的數據庫系統,為那些準備在Java平台下構建企業應用的企業來說,将是最好的選擇。但是ASE稱不上一個數據庫領域的領先者,盡管相對于它以前的版本已經改進很多,并支持多個CPU和更多的并發,還有很多的新的特性。但Sybase的風光似乎已經不再。

行業競争力

1)薪酬競争力

影響因素:經驗和能力決定數據庫工程師的等級,熟悉的數據庫系統決定數據庫工程師的領域,個性特點和潛力決定你的升值空間。

縱向對比:數據庫工程師作為專項領域的高質量人才,薪酬競争力較高,市場需求旺盛,尤其是中高階數據庫工程師,往往緊缺程度高于軟件研發工程師。

第三方薪酬調查報告,僅供參考:

《2013年數據庫工程師薪酬調查報告

《Database Administrator Salary

2)市場需求

數據庫運維行業的市場價值:參考ITOM(IT Operation Management) 2013年的市場規模是190億美金

人員需求:由于業務規模較大,中大型公司比較緊缺中高階數據庫工程師,而初創公司由于其新生的業務特點,比較緊缺初級和中級數據庫工程師。

職業發展

數據庫作為整個系統的一部分,它的表現直接受服務器、操作系統、存儲、網絡、應用程序中SQL語句的質量、數據庫設計的質量、以及其它諸多因素的影響,這些因素加在一起非常複雜,經驗起着非常重要的作用。因此一個好的數據庫工程師除了知識作為基礎,經驗的多寡、見識的薄廣,往往決定了是否合格與優秀。

優秀的數據庫工程師不僅關心自己運維的數據庫系統的原理和發展,而且緊跟業界數據庫前沿技術,并關注數據庫領域的頂級會議。其中包括國際著名的數據庫三大會議SIGMOD、VLDB、ICDE,還有知名數據庫公司Percona主辦的Percona Live和Oracle主辦的Open World,以及國内知名的數據庫工程師盛會中國數據庫技術大會(DTCC)等。

從另外一個角度說,數據庫工程師工作領域對實踐經驗和獨立工作能力要求較高,沒有經過大量的動手實踐是很難勝任數據庫工程師相關工作的

正是由于上述原因,其職場現狀是數據庫工程師職位不易進入,而用人單位很難找到合适的從業人員,人員缺口非常大。

也正是由于上述原因,随着工作年限的增長,數據庫工程師的經驗在增加,就像醫生一樣,其價值會越來越高,可以逐步成長為資深數據庫工程師、系統架構師、信息主管(CIO)等等,而不會出現許多軟件開發從業人員在一定年齡後面臨的轉行問題。

另外,從職業前景看,從事數據庫工程師有着更多的職場機遇

。一般而言,系統中的軟硬件都是IBM、HP、Oracle等業界一流廠商提供的,在與廠商談判、合作、測試、實施、維護、優化等等過程中,會産生許多極佳的職場機遇,這一點是從事開發工作很難比拟的。

從數據庫工程師的工資統計數據看,随着工作經驗的積累,數據庫工程師工資的增長幅度會遠大于其它的計算機方向。

從工作的穩定性上看,系統的複雜性和經驗的重要性已經決定了數據庫工程師職位的不可替代性。

從知識的積累、更新和替代角度看,數據庫的根基始終沒變,變的是不斷增強的功能和不斷擴展的應用範圍。因此,在不同時期所學的知識和獲得的經驗是疊加和累積的關系,而不像IT許多其他職業方向那樣“唯一不變的是變化”,其知識是東風壓倒西風還是西風壓倒東風的關系。

因此, 數據庫工程師職業是一個高挑戰和高回報的職業,有一定能力的和聰明的技術人員應該挑戰自我,進入這個被二十多年事實不斷證明的越來越有前景的職業

相關雜志

1、《數據庫工程師》簡介:

《數據庫工程師》是由企業級IT網絡媒體TechTarget中國旗下TechTarget數據庫網站推出的電子雜志。《數據庫工程師》摘取TechTarget特邀專家、資深編輯以及終端用戶所撰寫的數據庫技術及分析文章,旨在提供數據庫技術技巧、數據庫技術發展趨勢及業内最新動态,為數據庫從業人員及技術關注者提供參考。

2、樣刊:

刊首寄予:數據庫第三方服務的新時代

當你的數據庫遇到問題時,你首先想到的是找原廠服務還是第三方服務?從我接觸到的DBA來看,越來越多的公司開始傾向于後者,拿Oracle數據庫來說,有不少的用戶反饋原廠的工程師水平未必會比第三方好,而且響應速度、服務質量以及費用等一系列問題都困擾了DBA許多年。這時候,一家靠譜的數據庫第三方服務商就顯得格外重要,客戶需要用最少的成本、在最短的時間内解決問題。

衆所周知,做服務需要投入大量的人力成本,這是許多大型數據庫廠商都極力避免的一件事,為的是追求更高的利潤率。這些廠商更願意讓他們的合作夥伴來完成這一工作,也就為國内的第三方服務商提供了更多的機會。但是如何把機會轉化成價值?進一步轉化成推動其前進的驅動力?這是困擾國内數據庫服務商的一大問題。因此我們看到,有不少幹了許多年的服務商開始進入"疲勞"期,不斷重複着數據庫維護、備份、恢複的工作,而随着人力成本的不斷提高,他們的日子也變得越來越不好過,甚至最終選擇了離開。

但是幸好還有這樣一群人,他們對數據庫技術的熱情十年如一日,摸爬滾打數載依然奮戰在數據庫的第一線,他們願意用自身的激情去感染用戶,願意尋找各種各樣的方法幫助用戶節約成本,也願意把好的技術理念傳播給更多的用戶。按照他們自己的話說,這是伴随互聯網成長的一代,他們更有活力,更能理解先進的技術理念。也正是他們,為國内的數據庫第三方服務市場注入了新的活力。

在本期的《數據庫工程師》電子雜志中,我們就将選擇最具代表性的兩家數據庫第三方服務商進行深入解讀,看看他們的背後又有怎樣的故事。相信未來還會有更多優秀的服務商湧現出來,而《數據庫工程師》也将在第一時間進行跟蹤報道,敬請關注!

作為甲骨文全球大會OpenWorld 2012中的重要産品發布,新版Oracle Database 12c彙集了參會者最多的目光,Larry Ellison也在開幕演講中重點介紹了12c的一些新特性。對于Oracle DBA來說,雖然數據庫12c未正式發布,但依舊希望能夠提前了解它的一些新功能、新特性。在OpenWorld 2012的技術講座環節,Oracle技術大師Tom Kyte集中介紹了Oracle Database 12c的十二大新特性,而Oracle ACE總監楊廷琨也對此進行了總結,希望讓國内DBA一睹為快。

PL/SQL性能增強

類似在匿名塊中定義過程,可以通過WITH語句在SQL中定義一個函數,采用這種方式可以提高SQL調用的性能。

改善Defaults

包括序列作為默認值;自增列;當明确插入NULL時指定默認值;METADATA-ONLY default值指的是增加一個新列時指定的默認值,和11g中的區别在于,11g的default值要求NOT NULL列。

放寬多種數據類型長度限制

增加了VARCHAR2、NVARCHAR2和RAW類型的長度到32K,要求兼容性設置為12.0.0.0以上,且設置了初始化參數MAX_SQL_STRING_SIZE為EXTENDED,這個功能不支持CLUSTER表和索引組織表;最後這個功能并不是真正改變了VARCHAR2的限制,而是通過OUT OF LINE的CLOB實現。

TOP N的語句實現

在SELECT語句中使用"FETCH next N rows"或者"OFFSET",可以指定前N條或前百分之多少的記錄。

行模式匹配

類似分析函數的功能,可以在行間進行匹配判斷并進行計算。在SQL中新的模式匹配語句是"match_recognize"。

分區改進

Oracle Database 12c中對分區功能做了較多的調整,Oracle ACE總監楊廷琨花了較大的篇幅對分區提升進行了解讀,其中共分成6個部分:

INTERVAL-REFERENCE分區:把11g的interval分區和reference分區結合,這樣主表自動增加一個分區後,所有的子表、孫子表、重孫子表、重重重...孫子表都可以自動随着外接列新數據增加,自動創建新的分區。

TRUNCATE和EXCHANGE分區及子分區。無論是TRUNCATE還是EXCHANGE分區,在主表上執行,都可以級聯的作用在子表、孫子表、重孫子表、重重重...孫子表上同時運行。對于TRUNCATE而言,所有表的TRUNCATE操作在同一個事務中,如果中途失敗,會回滾到命令執行之前的狀頭。這兩個功能通過關鍵字CASCADE實現。

在線移動分區:通過MOVE ONLINE關鍵字實現在線分區移動。在移動的過程中,對表和被移動的分區可以執行查詢、DML語句以及分區的創建和維護操作。整個移動過程對應用透明。這個功能極大的提高了整體可用性,縮短了分區維護窗口。

多個分區同時操作:可以對多個分區同時進行維護操作,比如将一年的12個分區MERGE到1個新的分區中,比如将一個分區SPLIT成多個分區。可以通過FOR語句指定操作的每個分區,對于RANGE分區而言,也可以通過TO來指定處理分區的範圍。多個分區同時操作自動并行完成。

異步全局索引維護:對于非常大的分區表而言,UPDATE GLOBAL INDEX不再是痛苦。Oracle可以實現了異步全局索引異步維護的功能,即使是幾億條記錄的全局索引,在分區維護操作,比如DROP或TRUNCATE後,仍然是VALID狀态,索引不會失效,不過索引的狀态是包含OBSOLETE數據,當維護操作完成,索引狀态恢複。

部分本地和全局索引:Oracle的索引可以在分區級别定義。無論全局索引還是本地索引都可以在分區表的部分分區上建立,其他分區上則沒有索引。當通過索引列訪問全表數據時,Oracle通過UNION ALL實現,一部分通過索引掃描,另一部分通過全分區掃描。這可以減少對曆史數據的索引量,極大的增加了靈活性。

Adaptive執行計劃

擁有學習功能的執行計劃,Oracle會把實際運行過程中讀取到返回結果作為進一步執行計劃判斷的輸入,因此統計信息不準确或查詢真正結果與計算結果不準時,可以得到更好的執行計劃。

統計信息增強

動态統計信息收集增加第11層,使得動态統計信息收集的功能更強;增加了混合統計信息用以支持包含大量不同值,且個别值數據傾斜的情況;添加了數據加載過程收集統計信息的能力;對于臨時表增加了會話私有統計信息。

臨時UNDO

将臨時段的UNDO獨立出來,放到TEMP表空間中,優點包括:減少UNDO産生的數量;減少REDO産生的數量;在ACTIVE DATA GUARD上允許對臨時表進行DML操作。

數據優化

新增了ILM(數據生命周期管理)功能,添加了"數據庫熱圖"(Database heat map),在視圖中直接看到數據的利用率,找到哪些數據是最"熱"的數據。可以自動實現數據的在線壓縮和數據分級,其中數據分級可以在線将定義時間内的數據文件轉移到歸檔存儲,也可以将數據表定時轉移至歸檔文件。也可以實現在線的數據壓縮。

應用連續性

Oracle Database 12c之前RAC的FAILOVER隻做到SESSION和SELECT級别,對于DML操作無能為力,當設置為SESSION,進行到一半的DML自動回滾;而對于SELECT,雖然FAILOVER可以不中斷查詢,但是對于DML的問題更甚之,必要要手工回滾。而Oracle Database 12c中Oracle終于支持事務的FAILOVER。

Oracle Pluggable Database

Oracle PDB體系結構由一個容器數據庫(CDB)和多個可組裝式數據庫(PDB)構成,PDB包含獨立的系統表空間和SYSAUX表空間等,但是所有PDB共享CDB的控制文件、日志文件和UNDO表空間。

相關培訓

簡介

随着中國信息化建設如火如荼的全面展開, 數據庫在越來越多的企業得到廣泛的應用,從大型的ERP系統,到小型的進銷存管理系統,從财務系統到銷售系統,數據庫系統的穩定、安全以及性能優化等問題成為企業最為關注的重點。在企業級數據庫市場,Oracle公司以及Microsoft公司的數據庫産品在全球跨國公司得到廣泛應用,諸如中國移動、深圳華為、霍尼韋爾、康明斯中國、美國鋁業、DHL和寶信軟件等知名公司。因此,企業數據庫運維管理方面的技術專家是全球和中國市場上最緊缺的人才之一。市場已經證明,獲得國際IT廠商認證的DBA在中國的年薪集中在15-30萬人民币區間,而且呈現持續上漲的态勢。當下在中國僅Oracle數據庫人才的缺口就在10萬人左右,人才緊缺狀況由此可見一斑。

課程目标

培養符合企業需求,熟悉Windows、Unix/Linux等企業應用服務器,精通數據庫管理維護以及性能優化,能夠對企業信息系統實施有效維護管理,保證企業信息系統安全的數據庫工程師。

适合對象

有一定計算機基礎,大專以上學曆,有志于成為數據庫專業人員的各界人士。

課程内容

一、大型企業數據庫日常管理及維護(Oracle 11g OCP)

1、Oracle Database 11g:管理I

· 數據庫體系結構 · 安裝Oracle數據庫軟件

· 創建OracleDatabase · 管理Oracle實例

· 管理數據庫存儲結構 · 管理用戶安全

· 管理架構對象 · 管理數據和并發

· 管理撤銷段 · 實現Oracle數據庫安全

· 配置Oracle網絡環境 · 積極維護

· 性能管理 · 備份恢複概念

· 執行數據庫備份 · 執行數據庫恢複

· 執行閃回 · 移動數據

2、Oracle Database 11g:管理II

· Oracle數據庫中的核心概念和工具 · 配置恢複

· 使用RMAN恢複目錄 · 配置備份設置

· 使用RMAN創建的備份 · 還原和恢複任務

· 使用RMAN執行恢複 · 監控和調整RMAN

· 診斷數據庫 · 使用閃回技術I

· 使用閃回技術II · 内存管理

· 數據庫性能管理 · 管理SQL調優的性能

· 管理資源 · 調度自動化任務

· 塊管理空間 · 段管理空間

· 數據庫管理空間 · 複用數據庫

二、SQL Server服務器的日常管理及維護(MCTS)

1、安裝和配置SQL Server 2008

1、 SQL Server 2008安裝前的準備

2、 安裝SQL Server 2008

3、 配置SQL Server 2008

實驗:安裝和配置SQL Server 2008

2、管理數據庫及文件

1、 設計數據庫

2、 創建數據庫

3、 使用策略管理

實驗:管理數據庫及文件

3、災難恢複

1、 計劃數據庫備份策略

2、 備份用戶數據庫

實驗:災難恢複--A部分

3、 恢複用戶數據庫

4、 執行聯機恢複操作

5、 從數據庫快照恢複數據

6、 系統數據庫和災難恢複

實驗:災難恢複--B部分

4、管理安全性

1、 SQL Server安全性概述

2、 服務器級别保護

3、 數據庫級别保護

4、 管理密鑰和證書

5、 審核安全性

實驗:管理安全性

5、傳輸數據

1、 數據傳輸概述

2、 SQL Server集成服務介紹

實驗:傳輸數據

6、自動化管理任務

1、 SQL Server 2008中的自動化管理任務

2、 使用SQL Server代理

3、 創建維護計劃

4、 實現警報

5、 管理多個服務器

6、 管理SQL Server代理安全性

實驗:自動化管理任務

7、實現複制

1、 複制概述

2、 管理發布服務器和訂閱服務器

3、一些常見情景下的複制配置

實驗:實現複制

8、管理高可用性

1、 高可用性介紹

2、 實現日志傳送

3、 實現數據庫鏡像

4、 實現服務器集群

5、 使用分布式高可用性解決方案

實驗:維護高可用性

9、監視SQL Server

1、 查看當前的活動

2、 使用SQL Server Profiler

3、 使用DDL觸發器進行監視

4、 使用事件通知

實驗:監視SQL Server

10、故障排除及性能調整

1、 SQL Server故障排除

2、 SQL Server性能調整

3、 使用資源調控器

4、 使用數據收集器

實驗:故障排除和性能調整

三、Windows Server服務器的日常管理及維護(MCITP)

· 安裝和配置Windows 7 服務器

· 配置與疑難解答Windows Server 2008 中的IIS7.0

· 配置與疑難解答Windows Server 2008終端服務

· 配置與疑難解答Windows Server 2008網絡基礎結構

· 配置Windows Server 2008 Active Directory 域服務

· 配置與疑難解答Windows Server 2008 Active Directory 身份認證和訪問管理

· 設計Windows Server 2008的網絡基礎結構

· 設計Windows Server 2008 Active Directory 的基礎結構與服務

· 設計Windows Server 2008 的應用程序平台基礎結構

四、Linux服務器的日常管理及維護(RHCE)

1、紅帽系統管理 I (RH124)

· 圖形安裝 Linux · 管理物理存儲

· 介紹命令行 · 了解如何安裝和配置本地組件和服務

· 構建網絡,保障網絡服務 · 管理和保護文件

· 管理用戶和團體 · 部署文件共享服務

2、紅帽系統管理 II (RH134)

· 網絡配置和故障排除 · 管理文件系統和邏輯卷

· 控制用戶和文件訪問 · 安裝和管理服務與流程

· 基本的命令行操作 · 故障排除 文件系統和分區

· LVM、訪問控制和軟件包管理

3、紅帽系統管理 III (RH254)

· 增強用戶安全性

· 使用互聯網小型計算機系統接口 (iSCSI) 進行的磁盤管理

· 系統和網絡活動監控

· 網絡管理和包過濾

· 軟件管理

· 網絡服務管理

· 跨平台的文件共享

· 基礎 SMTP 管理

五、中小型企業網絡配置與管理(CCNA)

· 描述網絡如何工作描述不同網絡設備的功能和效用

· 在交換機VLAN和交換機互聯的配置、檢查及排錯

· 在中等規模的公司分支辦公室網絡中實現滿足網絡需求的IP地址規劃及IP服務

· 基本的路由器操作和思科設備路由的配置,檢查和排錯

· 解釋并選擇适當的可管理無限局域網作業

· 确定網絡安全威脅并描述減少安全威脅的一般方法

· 在中等規模公司分支辦公室中NAT和ACL的實施、檢查和排錯

· 實施并檢查廣域網鍊接

上一篇:押運員

下一篇:調色師

相關詞條

相關搜索

其它詞條