工商服務工商服務,又到了好康妹工商服務兼讀書會時間~
今天的主角是「SQL Server」喔(轉圈圈),一起來看一下嘛(招手)
◆迷思止步!資料庫應用大無限!
SQL Server,其實不簡單!
事實上,企業推動任何應用開發計畫,對於究竟搭配何等資料庫系統,通常並無定見,即使過去長年採用A平台,如今想轉換為B,只要對公司更加有利,都未嘗不可。但在現實環境,資料庫的轉換卻可能橫生阻礙,原因在於部分DBA並不輕易嘗試這番轉變。
若形容資料庫管理員(Database Administration;DBA)是企業e化的重要功臣之一,其實並不為過;主因在於,唯有底層資料庫系統能夠正常運轉,也才能確保上層應用服務得以順利推行,兩者唇齒相依,顯見資料庫確實極為重要。
在此前提下,肩負著資料庫系統安裝與設定、容量規劃、應用架構設計、資料庫物件管理、儲存空間管理、安全管理、備份與復原、效能監控與調優、調度作業、網路管理、可用度暨延展性管理、故障排除等重大使命的DBA,對於企業資料庫系統的選用,自然擁有很大的話語權。
甚至在某些狀況下,單憑部分DBA一人意志,即可發揮「愛之欲之生,恨之欲之死」效果,使得特定的資料庫產品,能夠與企業的應用服務環境長廂左右,至於其他的資料庫產品,那怕功能齊備、性能優異、穩定度高超、價錢又漂亮,公司內部人人皆曰可用,但他老兄硬是獨排眾議,始終被拒於門外。
看似複雜的事物,未必難如登天
探究部分DBA之所以固執己見,道理其實很簡單,即是捍衛既得利益,唯恐他在公司的「存在感」,可能由於資料庫系統的轉換,而變得蕩然無存。
這些DBA很瞭解他個人心路歷程,也藉由過往經驗的累積,知道應該在哪些地方築起門檻,突顯一種艱深晦澀的氛圍,進而連同系統與個人,皆被形塑「無可取代」的刻板印象;意即唯獨這套資料庫系統,可以將關鍵應用任務執行得又快又好,但由於該系統的技術底蘊太深,而它所依附的Unix作業系統,學問又太過艱難,面對這個「生人勿近」的環境,唯獨DBA有能力身涉險境、排除萬難,駕馭這套甚難馴服的複雜系統。
反觀微軟的SQL Server,多數DBA心知肚明,隨著AlwaysOn、ColumnStore等眾多嶄新功能的加入,不管在於穩定性、效能等各個方面,都已非昔日吳下阿蒙,要想支撐企業關鍵應用任務的運行,肯定沒問題。但由於SQL Server進入門檻相對較低,資源取得相對容易,又有相對龐大的生態體系(Eco-system)在背後撐腰,所以企業一旦採用這套系統,若干DBA便擔心無法突顯個人價值,因為隨時都有一缸子好手,可以取自己而代之。
然而這般論述,果真存在不少謬誤之處。首先,某些被部分DBA「奉為神主牌膜拜」的資料庫系統,最困難的地方,乃在於它要被安裝到Unix作業系統的過程;因為Unix可分為多個門派,假設裝載到AIX,所需具備的知識與經驗,肯定與HP-UX、Solaris多所不同,倘若欠缺相關知識與經驗,當然不知從何下手,就會視它為艱深難懂之物。
這些資料庫之所以「難」,只是難在這個地方,其餘部分都還好;因此若干DBA如果僅想以偏概全、突顯身價,就算可以一時奏效,也很難持續得逞,原因是現今資訊太過發達,很難有任何資訊死角,可以一直被隱匿下去。
你真的低估SQL Server了!
其次,Unix-based資料庫系統通常都安裝在昂貴機器,可能光是一條RAM就得要價5~6萬元,致使硬體升級淪為一件「恐怖」的事;所以,它無法像是SQL Server,只要效能變慢,就直接換機器,而必須倚賴DBA實施優化手段。
前述觀點,潛藏了兩個迷思。第一,那些可以安裝在Unix OS的資料庫系統,說到調優,雖然難免有其學習門檻,但絕非難如登天,所以部分DBA不應藉此高估自身功力;第二,導致SQL Server效能弱化的原因,固然可能有很大機會,是與Disk I/O息息相關,看似可憑藉硬體更換而獲致重大改善,但有些效能瓶頸,其實是因為語法不佳所致,如果不解開這個死結,縱使換置性能強大的硬體,也未必能提高系統執行效率。
這也意謂著,DBA可別把SQL Server低估為「一經安裝,爾後可以什麼事都不做」,它依然需要被調優,而且這些優化措施可謂易學難精,不管是Windows作業系統內建的效能監視器,乃至於SQL Server裡頭的DBCC CHECKTABLE、Profiler或DTA,樣樣都得融會貫通,而且只要善用優化技巧,前後改善的幅度相當大。
舉例來說,為了確保交易與交易之間互不干擾,通常企業選擇會在資料庫層面執行隔離性保證、或採用Lock 陳述式,藉以針對資料庫或相關欄進行鎖定,同一時間僅允許一個交易做寫入或讀取。
但以隔離性保證而論,倘若野心太大,想一舉清除Dirty Read、Unrepeatable Reads、Phantom Reads或Lost Updates等所有疑慮,因而採取Serializable最嚴格等級來執行完全鎖定;如此一來,所有交易都得循序排隊,一個接著一個來,難免會對效能構成嚴重衝擊,而且不是更換強大硬體就可以解決的,此時就得考驗DBA的智慧與功力,才能找出最佳的改善之道。
由此可見,作為一個SQL Server資料庫的DBA,光是面對系統慘遭鎖死之現象,其間所蘊含的調優空間,便已十分遼闊,只要做得好,就是個足以發光發熱的舞台,並無身價大減的疑慮。
DBA ? 現實中幾乎沒這種專職員工
不論是不是資本額上億的公司
通通都要一兼數職
SQL Server,只要效能變慢,有時也沒辦法直接換機器
有時你必需另外從Windows裝起, 再裝上SQL Server
最後在把DB卸載, 再拿到新機器的SQL Server去掛載
SQL Server常見的問題
1.SQL Server的連線數到達上限 (改設為0, 不設限)
2.db的log超過主機的ram上限, 可能使db鎖死, 無法登入該db (設排程, 定時清空log)
3.SQL Agent 沒有正常工作 (服務跳停止? 要重新啟動)
4.可用實體記憶體耗盡 (避免使用大量資料的 select )
5.區域暫存資料表的存取很慢 (改用動態命名的全域暫存資料表)
....等
看來player大是箇中翹楚
故障排除方面經驗如此豐富
故障排除方面經驗? 前幾天還被已經離職3年多的前公司的同事
用msn問我故障排除方面問題
可能的解答都幫忙找給他了
但是我手邊沒有的軟硬體, 也沒辦法幫他測到底是什麼原因造成他的問題
我玩Facebook小遊戲時怎麼就沒幾個人肯幫啊?
SQL Server 每一版都讓我驚艷, 從 2005, 2008 乃至 2012. 每一版都有令人稱羨的進步. 不過遺憾的是版權越來越像 Oracle. 讓我不禁反問我自己省下的版權費是否補足產品間的差異?
luckymei 指出了 2012 最大的賣點, Always On, column store index, vertipaq engine (tabular analysis), 但是相對的, 這些功能有的需要 Windows cluster 的支援, read-only access 與貴松松的 SharePoint Enterprise 才能啓用的 PowerView.
相對的 Oracle 有 Active DG (或者真正 Active-Active cluster, 如 RAC), unified storage 與 timesten + BI Publisher. 說實話 Oracle RAC 只要標準版就有了, 更不用買 OS 組 cluster. unified storage 能允許 read-write access, timesten + BI Publisher 能打翻 PowerView. 單以授權費來說, 我還真是不知道要如何推薦 SQL Server.
對於一個專職的 DBA 來說, 程式設計師個功力直接影響 DBA 的工作量. 好的程式設計師能讓 DBA 輕鬆度日, 而糟糕的設計師只會累死 DBA. M$ 家族容易上手的優點對 DBA 來說是無止境的惡夢.
DBA 不見的身兼數職, 但是多才多藝是必須的. 生產線掛點, 第一個找的大概是 DBA. (亦或是在我工作的經驗中, DBA 通常是第一個上火線處理問題的) 能處理 DB 本身問題的大概只算是入門, 能找出生產線掛點問題的算用過, 能找出資料問題而反推程式問題的算進階, 能讓公司無痛運作的才算出師.
.. 不管 SQL 或是 Oracle 都是好的, 但能打的 DBA 很難找..
Oracle 簡單的應用經驗有過
(Oracle上寫預存程序, 預存函數, 或是 MS SQL Server用Link DB去向 Oracle Select資料)
那可能是我運氣不好吧, 接case的人大多是口頭上講講, 設計操作流程與操作畫面的人, 不會寫程式
DBA? 至少我以往的工作經驗, 還真的沒看過專職的DBA
有問題, 得自己想辦法解決
這不錯啦
不像我們這種雙手無相關DB證照及經驗的
ERP系統
真是近在咫尺
但卻是碰不得
不過想想也是
ERP可想而知是公司營運的命脈
要是不交給有經驗的DBA
真的是很不妥當的