tft每日頭條

 > 職場

 > dba數據庫管理找工作

dba數據庫管理找工作

職場 更新时间:2024-07-18 07:31:01
概述

很多運維後期都會選擇往DBA方向走,所以今天主要介紹一下什麼是DBA和DBA的一些職責,閑來無事可以看看~


DBA

數據庫管理員(Database Administrator,簡稱DBA),是從事管理和維護數據庫管理系統(DBMS)的相關工作人員的統稱,屬于運維工程師的一個分支,主要負責業務數據庫從設計、測試到部署交付的全生命周期管理。

dba數據庫管理找工作(詳解數據庫dba職業)1

DBA的核心目标是保證數據庫管理系統的穩定性、安全性、完整性和高性能。

在國外,也有公司把DBA稱作數據庫工程師(Database Engineer),兩者的工作内容基本相同,都是保證數據庫服務7*24小時的穩定高效運轉,但是需要區分一下DBA和數據庫開發工程師(Database Developer):

1) 數據庫開發工程師的主要職責是設計和開發數據庫管理系統和數據庫應用軟件系統,側重于軟件研發;

2) DBA的主要職責是運維和管理數據庫管理系統,側重于運維管理。

那麼dba又有什麼職責呢?


主要職責

數據庫管理員的主要職責有以下幾個方面:

1、數據庫設計

包括字段、表和關鍵字段設計;資源在輔助存儲設備上是怎樣使用的,怎樣增加和删除文件及記錄,以及怎樣發現和補救損失。

2、巡檢

監視監控數據庫的警告日志,定期做備份删除。監控數據庫的日常會話情況。碎片、剩餘表空間監控,及時了解表空間的擴展情況、以及剩餘空間分布情況。監視對象的修改。定期列出所有變化的對象安裝和升級數據庫服務器(如Oracle、MicrosoftSQLserver),以及應用程序工具。

數據庫設計系統存儲方案,并制定未來的存儲需求計劃。制定數據庫備份計劃,災難出現時對數據庫信息進行恢複。維護适當介質上的存檔或者備份數據。備份和恢複數據庫。聯系數據庫系統的生産廠商,跟蹤技術信息。

3、備份

對數據庫的備份監控和管理數據庫的備份至關重要,對數據庫的備份策略要根據實際要求進行更改,數據的日常備份情況進行監控。

4、權限控制

修改密碼:規範數據庫用戶的管理定期對管理員等重要用戶密碼進行修改。對于每一個項目,應該建立一個用戶。DBA應該和相應的項目管理人員或者是程序員溝通,确定怎樣建立相應的數據庫底層模型,最後由DBA統一管理,建立和維護。任何數據庫對象的更改,應該由DBA根據需求來操作。

5、SQL語句審核

對SQL語句的書寫規範的要求一個SQL語句,如果寫得不理想,對數據庫的影響是很大的。所以,每一個程序員或相應的工作人員在寫相應的SQL語句時,應該嚴格按照《SQL書寫規範》一文,最後要有DBA檢查才可以正式運行。

6、最終用戶服務和協調

數據庫管理員規定用戶訪問權限和為不同用戶組分配資源。如果不同用戶之間互相抵觸,數據庫管理員應該能夠協調用戶以最優化安排。

7、數據庫安全

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


上面指的是狹義上的DBA,廣義上的DBA職責比這個大得多,需要覆蓋産品從需求設計、測試到交付上線的整個生命周期,在此過程中不僅要負責數據庫管理系統的搭建和運維,更要參與到前期的數據庫設計,中期的數據庫測試和後期的數據庫容量管理和性能優化。

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


數據庫管理員能力要求

數據庫管理員以技術為基礎,通過技術保障數據庫提供更高質量的服務。DBA工作的職責及在業務中的位置決定了DBA需要具備更加廣博的知識和深入的技術能力。

在數據庫環境的管理與維護中,技術任務可歸結成許多不同的分類。下面列出了一名DBA應掌握的一些技術。

1.數據備份/恢複與災難恢複

恢複已損壞的數據庫是每一個DBA應掌握的最重要的技能。DBA需要完全理解數據庫所有可能的備份與恢複方法,以及不同備份方法與不同恢複策略的對應關系。此外,DBA還需要與業務部門合作,一起确認業務需求,明确用戶能夠容忍的數據丢失底線。此外,業務用戶還需要确定在系統故障情況下,他們的業務能夠維持多長時間。總之就是根據磁盤空間、數據容忍底線和故障恢複時間來評估備份策略。

理解這些需求可以幫助DBA開發出一個滿足業務用戶要求的備份/恢複方法。一個優秀的DBA要定期測試備份與恢複流程,保證他們有能力恢複業務數據,滿足企業所規定的業務數據丢失與恢複要求。

2.工具集的使用

所謂工具集,指要有一組用于執行不同DBA任務的腳本。這個工具集應該包含不同的小代碼片段,它們可以快速診斷問題或執行一個特定的任務。

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

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

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

4.知道如何監控和優化數據庫性能

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

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

5.研究新版本

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

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

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

7.持續不斷地學習

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

8.數據庫安全性

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

9.數據庫設計

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

10.索引設計

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

11.容量監控與規劃

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

12.數據庫許可證

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

13.盡可能實現自動化

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


數據庫管理員職業等級

DBA的等級并不是很嚴格的。按照對數據庫的掌握情況,我簡單地分成三個等級:初級Primary、中級Intermediate和高級Senior。

dba數據庫管理找工作(詳解數據庫dba職業)2

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

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

1、數據庫安裝;

2、數據庫配置和管理;

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

4、監控和性能調節;

5、備份和恢複;

6、解決一般的問題;

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

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

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


數據庫管理員職業前景

dba數據庫管理找工作(詳解數據庫dba職業)3

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

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

從另外一個角度說,DBA工作領域對實踐經驗和獨立工作能力要求較高,沒有經過大量的動手實踐是很難勝任DBA相關工作的 [6] 。正是由于上述原因,其職場現狀是DBA職位不易進入,而用人單位很難找到合适的從業人員,人員缺口非常大。

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

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

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

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

從知識的積累、更新和替代角度看,數據庫的根基始終沒變,變的是不斷增強的功能和不斷擴展的應用範圍。因此,在不同時期所學的知識和獲得的經驗是疊加和累積的關系。


總之, DBA職業是一個高挑戰和高回報的職業,有一定能力的和聰明的技術人員應該挑戰自我,進入這個被二十多年事實不斷證明的越來越有前景的職業 。後面會分享更多devops和DBA方面的内容,感興趣的朋友可以關注一下。

dba數據庫管理找工作(詳解數據庫dba職業)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关職場资讯推荐

热门職場资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved