Sybase Adaptive Server Enterprise(ASE) 12.5的生命周期已結(jié)束,是時(shí)候來規(guī)劃升級數(shù)據(jù)庫了。如果在2009年底向Sybase技術(shù)支持電話咨詢ASE 12.5.x的問題,您肯定會得到將ASE升級到最新版本的忠告。毋庸置疑,盡快升級到ASE 15的理由是非常充足的(重寫的優(yōu)化器、語義分區(qū)等,在其它文章中會介紹更多新技術(shù)特性)。在本文中,我們將談?wù)撊绾螐?2.5.x這個(gè)舊版本升級到ASE 15。
對此我們有兩個(gè)建議:計(jì)劃一切和測試一切。幸運(yùn)的是,這兩個(gè)建議可以細(xì)化為一些易于操作的步驟。制訂的計(jì)劃要成功的通過測試驗(yàn)證,才能保障順利升級。但是,究竟要計(jì)劃些什么?這個(gè)計(jì)劃清單應(yīng)包括以下內(nèi)容:
(1)標(biāo)識出需要升級的環(huán)境中所有軟件組件,這其中可能包括最初并沒有納入清單中的某些組件(比如操作系統(tǒng))。
(2)為當(dāng)前配置下的源環(huán)境和目標(biāo)環(huán)境制作文檔(包括內(nèi)存需求、存貯需求等等)。
(3)標(biāo)識出所有可能被影響的應(yīng)用組件。
(4)驗(yàn)證ASE 15的新特性,決定哪些特性是需要立即利用的。
(5)決定升級方法。
(6)設(shè)計(jì)并測試實(shí)施計(jì)劃。
我們將從計(jì)劃和“成果”(gotchoa)兩個(gè)方面來討論所有這些任務(wù)。首先,在著手之前,您最好查看Sybase提供的移植前檢查清單:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc34982_1500/html/mig_gde/CIHBGFGI.htm。
如今,很少再有以前那種“所有人都通過PowerBuilder程序訪問生產(chǎn)環(huán)境上的數(shù)據(jù)庫”簡單應(yīng)用了?,F(xiàn)代系統(tǒng)可能包括以下這些應(yīng)用:
(1)使用PowerBuilder、Access、C、Visual Basic、Java或其它前端應(yīng)用。
(2)J2EE、.Net或其它中間層。
(3)任何ETL處理。
(4)任何財(cái)務(wù)、調(diào)度或其它集成第3方應(yīng)用。
(5)各種方式的多服務(wù)器互聯(lián)。
以上種種,請充分發(fā)揮您的想象力。應(yīng)確保服務(wù)器上所有的組件都被標(biāo)識,并且列出清單、制作相關(guān)文檔。另外,應(yīng)確保open client、ODBC等等的版本也被標(biāo)識。請確認(rèn)你手上擁有要涉及到的所有操作系統(tǒng)環(huán)境下的ct-lib驅(qū)動程序,以便馬上著手升級和測試。
這里建議,如果存在第3方的應(yīng)用,請確認(rèn)它們是已通過 ASE-15認(rèn)證的。在ASE 15的升級之前或升級過程中,有些應(yīng)用可能需要升級版本。另外,計(jì)劃中應(yīng)確保所有的客戶端庫文件升級至ASE15。請注意,當(dāng)完成上面的軟件組件標(biāo)識后,方可進(jìn)入“檢查清單”(checklist)模式。
檢查清單,標(biāo)識出所有源環(huán)境(當(dāng)前所使用的ASE15之前的版本)和目標(biāo)環(huán)境(ASE15)。軟件升級通常也會導(dǎo)致硬件升級,請?zhí)貏e要注意備份配置文件(UNIX環(huán)境下,位于$SYBASE目錄),或運(yùn)行sp_configure 或 sp_cacheconfig。
人們可能會希望第1次測試就能一次性地完成所有驗(yàn)證,這樣一旦成功,就無須再做隔離測試。另一方面,如果要切換到一個(gè)全新的環(huán)境,那么在切換后再來定位問題就不是那么容易了。曾經(jīng)有位客戶改變整個(gè)運(yùn)行環(huán)境:從一臺獨(dú)立的Unix主機(jī)遷移到使用3層緩存的共享機(jī)器上。操作系統(tǒng)報(bào)告系統(tǒng)存在IO瓶頸,但是硬件廠商認(rèn)為那是不可能的,因?yàn)樗麄冋J(rèn)為遷移后所使用的多級虛擬緩存有助于降低IO問題。
有鑒于此,此處給出一些建議,那就是標(biāo)識并制作文檔。一是源環(huán)境,包括ASE版本、OS版本、服務(wù)器硬件、SAN環(huán)境及相關(guān)的固件版本;另一個(gè)是目標(biāo)環(huán)境與源環(huán)境的兼容性。從32位遷移到64位?從AIX遷移到Linux?我們需要驗(yàn)證所有這些環(huán)境及其兼容性,這可能最終會影響遷移方法。
如果你對目標(biāo)環(huán)境的兼容性存在任何疑問(即文檔未作說明),請致電Sybase咨詢是否存在兼容性問題(這有可能會促使你做額外的測試工作)。如果不存在兼容性問題,您需要的可能僅僅是讓硬件運(yùn)行一兩個(gè)月,驗(yàn)證其是否可靠。
請確認(rèn)您已準(zhǔn)備好最新的ESD(Software Distribution Level)軟件包。您可在http://downloads.sybase.com/swd/base.do?client=support上找到該軟件包。您可以快速地瀏覽一下希望使用的ASE 15的新特性。由于此前已經(jīng)有大量的文章介紹ASE 15的新特性,在此就不再贅述。但是,您應(yīng)在自已的運(yùn)行環(huán)境中測試并最終使用這些選項(xiàng)。這些選項(xiàng)包括但不僅限于語義分區(qū)、Direct IO以及全新的優(yōu)化目標(biāo)等等。
由于諸多因素的不同,升級方法也會有所不同,包括是否需要同時(shí)進(jìn)行平臺的升級(許多客戶升級硬件,或遷移到另一種操作系統(tǒng)),以及所能容許的停機(jī)時(shí)間。此處,停機(jī)時(shí)間的定義是指執(zhí)行數(shù)據(jù)遷移、驗(yàn)證數(shù)據(jù)的完整性和ASE完全正常工作所需要的時(shí)間。
選擇何種遷移方法主要取決于ASE能停用多久。如果只能容忍5分鐘,甚至更少的時(shí)間,那么只能選擇在升級主點(diǎn)ASE數(shù)據(jù)庫時(shí),使用復(fù)制服務(wù)器自動切換到熱備節(jié)點(diǎn);如果能容忍5個(gè)小時(shí)左右的停機(jī)時(shí)間,那么問題的關(guān)鍵就在于有多少數(shù)據(jù)需要移植到目標(biāo)ASE上;如果能容忍超過5小時(shí)的停機(jī)時(shí)間,那么就有更多選擇。
ASE 15的升級方法通??梢苑譃閮深悾壕偷厣?;或創(chuàng)建ASE新實(shí)例,然后使用各種物化處理來移植所有對象和數(shù)據(jù)。如果分別對用戶數(shù)據(jù)庫進(jìn)行升級(通過物化處理),那么可以選擇任何一種ASE遷移方法。復(fù)制的方法僅用于創(chuàng)建新的ASE數(shù)據(jù)庫或分別升級用戶數(shù)據(jù)庫。
這種方法需要使用升級工具就地升級服務(wù)器。從升級所需的時(shí)間來說,它僅次于Replication Server方案。略嫌不足的是升級過程需要不少手工步驟。
如果不能選擇就地升級,那么你只能將用戶數(shù)據(jù)庫的升級過程和ASE升級過程剝離開,并選擇下面一種或幾種具體升級處理。
4.2.1 物理數(shù)據(jù)遷移
繼就地升級之后,最快的方法就是物理數(shù)據(jù)遷移。然而,如果數(shù)據(jù)庫較大(>1TB),或者希望通過遷移能壓縮數(shù)據(jù)庫的大小,就需要使用邏輯數(shù)據(jù)遷移技術(shù)。
4.2.2 轉(zhuǎn)儲和裝載數(shù)據(jù)庫
這是一種快照方法:創(chuàng)建ASE15數(shù)據(jù)庫,然后使用ASE的備份和恢復(fù)機(jī)制裝載以前版本的ASE備份。使用這種技術(shù)存在一些限制。即便是ASE 15大大地減少了這些限制,也無法保證所有以前版本的ASE轉(zhuǎn)儲文件都能被其它平臺上的ASE數(shù)據(jù)庫裝載。
如果選擇此方法,請首先檢查在新舊平臺之間轉(zhuǎn)儲/裝載的約束條件。另外,雖然此方法簡單易行,但要檢查轉(zhuǎn)儲設(shè)備是否有足夠的空間,而且如果不能共享驅(qū)動器,請確保為FTP(或復(fù)制)留出足夠空間的余量。
4.2.3 使用Quiesce/Mount進(jìn)行數(shù)據(jù)傳輸
這也是一種快照方法,只能用于ASE 12.5.1或更高版本。它與轉(zhuǎn)儲/裝載有些許類似,但是速度更快。使用此方法的先決條件是磁盤子系統(tǒng)必須支持。
4.2.4 邏輯數(shù)據(jù)傳輸
以下情況,需要使用邏輯數(shù)據(jù)傳輸:改變數(shù)據(jù)庫的大小;壓縮數(shù)據(jù)庫設(shè)備;升級超大數(shù)據(jù)庫;變更平臺(不支持平臺間轉(zhuǎn)儲/裝載的情況下)。
4.2.5 BCP 數(shù)據(jù)輸出和輸入
采用抽取數(shù)據(jù)庫的模式,然后在ASE的新實(shí)例中重新創(chuàng)建。盡管可以利用PowerDesigner,但是此方法仍然需要大量的手工操作。處理遷移后的外鍵和索引也需要大量的工作。如果表中的text或varchar列含有換行符和回車符等,就很有可能要求額外的測試工作。
4.2.6 復(fù)制服務(wù)器(Replication Server)
如果只能容忍停機(jī)5分鐘甚至更少的時(shí)間,那么只能選擇使用復(fù)制服務(wù)器。將數(shù)據(jù)從ASE 12.5源系統(tǒng)復(fù)制到ASE 15目標(biāo)系統(tǒng)。在主點(diǎn)ASE數(shù)據(jù)庫升級過程中,自動切換到熱備節(jié)點(diǎn)。一旦主點(diǎn)完成升級,再切換回主點(diǎn)(如果需要的話)。
使用復(fù)制服務(wù)器得到的好處是執(zhí)行前滾和回滾(如果需要的話)只需短暫的停機(jī)時(shí)間。需要注意的是,在遷移計(jì)劃中往往忽略了回滾。只要條件允許,應(yīng)盡可能使用一臺空閑的服務(wù)器,而不是利用災(zāi)備服務(wù)器。這樣可以避免遷移過程中發(fā)生緊急容災(zāi)切換這樣的小概率事件。
復(fù)制服務(wù)器可以與所列的任何一種方法配合使用。如果計(jì)劃使用轉(zhuǎn)儲/裝載過程,就可以使用轉(zhuǎn)儲日志標(biāo)記來消除升級過程需要的停機(jī)時(shí)間。根據(jù)停機(jī)時(shí)間需求,所有其它方法都可以利用復(fù)制服務(wù)器。復(fù)制服務(wù)器方法帶來的最大好處是能夠?qū)崿F(xiàn)非??焖俚幕貪L,并且如果升級完成后,在新數(shù)據(jù)庫中提交事務(wù)時(shí)發(fā)現(xiàn)問題,只有復(fù)制服務(wù)器方法能夠降級用戶數(shù)據(jù)庫。
測試計(jì)劃應(yīng)詳細(xì)羅列每一步遷移過程。另外,在源環(huán)境中對每個(gè)應(yīng)用執(zhí)行回歸測試,以確保目標(biāo)環(huán)境下的性能和正確性。要保證足夠的測試時(shí)間(日程安排應(yīng)考慮增加一定時(shí)間,修正測試過程中發(fā)現(xiàn)的問題)。
利用當(dāng)前應(yīng)用的性能指標(biāo)(如果沒有,則設(shè)定并測量)作為基準(zhǔn),與新的目標(biāo)環(huán)境對比。如果新環(huán)境的性能并沒有提高,那么某些地方很可能存在問題。
請注意,Sybase WorkSpace Database Developer(許可與ASE綁定)是一個(gè)非常有用的工具,在測試過程中可用于裝載代碼、調(diào)試SQL和存儲過程等等。你可能會需要密切關(guān)注。
環(huán)境越簡單,遷移到ASE 15的過程可能也越簡單。但如今大多數(shù)企業(yè)的IT環(huán)境均較為復(fù)雜,升級軟件需要檢查、驗(yàn)證當(dāng)前應(yīng)用,并制作相關(guān)文檔。在早期版本中運(yùn)行的一切功能都需要在新環(huán)境下測試其正確性和性能。
使用檢查清單,確保測試遷移計(jì)劃和其余內(nèi)容(功能、性能等)均通過測試(對初級DBA而言,這可是一個(gè)宏大工程)。如果著手于遷移到全新的目標(biāo)環(huán)境,千萬別忘記服務(wù)器級的項(xiàng)目,如配置變更(如果在12.5中,技術(shù)支持人員執(zhí)行了定制化配置/操作,請與他們共同檢查這些定制化配置/操作,確保在15中仍然可以使用這些配置/操作),以及包括角色和登錄名在內(nèi)的安全對象。
ASE 15遷移的準(zhǔn)備工作是一項(xiàng)重要的任務(wù),但物有所值。