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