Sun StorEdge Instant Image™ 應用程序/版本的測試最佳操作
背景:
軟件工程師們開發新的應用程序時,總希望有"活"的數據來做測試。但是使用真實的"活數據"總是會對在線事務處理造成影響,至今未找到使人滿意的折衷方案,因此應用程序的測試工作十分困難。
應用程序/版本的現有測試方法
目前,軟件工程師們通過"克隆"真實存在的數據庫的方法來測試應用程序。所謂"克隆",就是將數據庫備份到磁帶上,并存放在其他地方。一個數據庫的"冷備份"要求在相當長的一段時間內用戶不能使用該數據庫。按現在的數據庫平均規模和磁帶技術來計算,一次備份需要好幾個小時。因此,這種方法現在也不很常用,而且冷備份之后的"活"數據也已經不新鮮了。 目前常用的一種方法是"熱備份"。這種方式允許在線事務繼續進行,但要求在幾小時中數據庫處于"備份"狀態,在備份狀態時在線事務處理的性能會受到影響。另外,一旦備份完成,并存在測試區時,它會被覆蓋,各種事務不得不卷回。 還有一種可采用的方法就是做一個新的數據庫,其數據模型與在線數據庫相似,但里面存放的數據不同。這種方法對在線事務影響不大,缺點是應用程序是在一個不同于在線數據庫的新庫上接受測試的,因此不是基于"真實"的數據。
測試應用程序/新版本的新方法
有一種新的技術可以加快應用程序的開發----"即時點(point-in-time)"拷貝技術,它頻繁地對真實的生產數據"拍快照"以獲得數據,作為測試應用程序的輸入數據。這種技術既可以滿足測試的需求,又不影響在線事務處理的進行,能縮短開發周期,大大加快應用程序的開發速度。
一般性的操作問題
必須自動或手動創建操作過程以使用即時點拷貝技術。例如,什么時候拍快照,拍快照的頻率,以及當快照完成時通知第二層的應用程序,這些都是需要解決的操作問題。 一般情況下,創建即時點的時刻必須達到數據庫的數據一致性,這是為了保證快照的"像"的邏輯一致性(比如,不能在一次事務處理過程中拍快照)。 創建一份即時點拷貝以供測試應用程序時訪問的操作過程如下: 1?保證該時刻主數據的一致性(將所有數據沖到磁盤上); 2?創建數據的一份即時點拷貝; 3?在即時點拷貝上運行被測試的應用程序; 4?必要時重新同步,根據主數據更新即時點拷貝。
術語
主卷----存放某個或某組應用程序的原始數據的物理磁盤設備;
像卷----存放拷貝數據的物理磁盤設備,其中的數據可以是改變了的即時點數據,也可能是主卷原始數據的完全鏡像;
位圖----一個文件或物理磁盤分區,InstantImage軟件用之來維護主卷與像卷數據之間關系的當前狀態;
獨立拷貝----一個完成了的獨立拷貝是存放在像卷上的主卷的一個即時點拷貝,也就是拍快照時刻的主卷的備份。建立一個獨立拷貝之后,InstantImage軟件立刻啟動一個后臺進程,處理從主卷到像卷的數據塊拷貝操作。在拷貝過程中,InstantImage軟件認為像卷處于"非獨立"狀態,并對所有訪問像卷的操作進行控制;
非獨立拷貝----主卷的一個即時點視圖。一旦建立了一個非獨立拷貝,備份程序立刻可以使用它?截惤⒅,像卷要不斷根據主卷中被修改的塊維護原始數據,對沒有改動的塊上的數據存取直接來自于主卷,只有位圖上指明主卷與像卷內容不匹配時才訪問像卷;
卷對----一個卷對包括一個主卷和相應的像卷。每個卷對配有一個位圖。用戶可以建立任意多個卷對,只要存儲空間允許,InstantImage軟件沒有對卷對數量做其它限制。
操作細節
本節將詳細介紹如何制作在線數據庫的即時點拷貝,并使之對在線事務影響最小。在開始之前,請確認您是以超級用戶身份登錄的。
1.計算需要復制的原(raw)卷的最大數量。 必須有另一片至少是相同容量的存儲空間存放即時點拷貝。將現有的磁盤組和卷復制到另一磁盤組中。在線卷,也就是主卷,必須是Solaris環境支持的RAID(廉價磁盤冗余陣列);像卷不必一定是相同的RAID,但容量至少要和主卷一樣大。
2.保證InstantImage軟件對主卷和像卷都有訪問權限。 a.編輯文件/etc/opt/SUNWspsv/sv.cf,加入主卷和像卷名。卷名后必須出現關鍵字raw或cache:如果你的機器上沒有安裝StorageFastWriteCache,就使用raw,否則使用cache。
3?為InstantImage軟件分配空間,以便其跟蹤記錄主卷與像卷之間的差異 對主卷上的每1G空間,InstantImage軟件需要8K+8K空間。每個InstantImage卷對(包括一個主卷和一個像卷)要對應一個位圖。這個文件必須預先分配給適當的空間。
4?將數據庫或文件系統置成某特定狀態 最簡單的方式是關閉數據庫;蛘,也可以將數據庫設置為"備份"狀態,并持續幾秒時間,不過這樣做會需要額外的步驟來啟動shadow。對于UFS文件系統,可以使用lockfs(1M)命令,關于lockfs(1M)的詳細使用請參考手冊。
5.在根目錄下啟動即時點拷貝操作
6?拷貝必要的數據庫ASCII文件 將所有需要的數據庫ASCII文件復制一份,例如init.ora、config.ora等。一份文件給主卷,一份給像卷。例如 #cp?Oracle?db1?cntlfile1?Oracle?shadow?cntfile1 #cp?Oracle?db1?cntfile2?Oracle?shadow?cntfile2.
7?將數據庫恢復為在線狀態 將原來的數據庫恢復成在線,事務處理可以繼續。關閉(或處于備份狀態、lockf)的時間不能長于1分鐘。
8.必要時要修改腳本來啟動像數據庫 可能需要修改腳本來啟動像數據庫,指定新的控制文件和路徑。這些可以借助link很快完成。
9.將像數據庫設置為在線狀態 現在像數據庫可以在任何時候設置成在線狀態,不必要等待Instant Image軟件的鏡像操作全部完成。Instant Image軟件會記錄合適的數據在什么地方,并滿足相應的訪問要求。如果要求的數據在像卷上,就讀像卷;如果要讀的數據還沒有拷貝到像卷,Instant Image軟件會從主卷上搜索所需數據。如果有寫操作對主卷操作,Instant Image軟件 要先將未修改的數據拷貝到像卷,以保證像的即時性。
10.重新同步 Instant Image軟件會記錄在主卷和像卷上發生的所有的改動,因此更新像卷時不必重新拷貝整個數據庫,而只需要拷貝那些改動過的地方,并更新控制文件。 重新同步的步驟如下: 將數據庫置成某特定狀態; 拷貝必要的數據庫ASCII文件,例如控制和登錄文件; 執行Instant Image命令以更新像卷 現在主卷數據庫又可以處理在線事務了。更新工作完成后像卷數據庫也可以啟動工作。Instant Image軟件使用如下命令可以控制更新的進展情況: #iiadm-i. 如果這個過程是在一個腳本文件中運行的,可以使用iiadm-w命令,使Instant Image軟件等待更新工作完成之后才允許其他命令。 上述過程可以根據需要無限地不斷重復。 對文件系統的應用程序可以采用類似的方法。
由于Instant Image軟件是在生設施層工作的,因此,如果應用程序位于文件系統,請采取如下步驟: ?暫停應用程序; ?關閉像卷/文件系統; ?使用lockfs-w?mount_point命令沖掉頁cache; ?創建即時點拷貝,同上; ?使用命令lockfs-u?mount_point對文件系統解鎖; ?啟動像卷文件系統。 這個過程中沒有必要關閉應用程序或主卷文件系統。
如果以后你要加入新的表、文件系統或卷,請參照本《最佳操作指南》,按其中的步驟操作。
文章來源于領測軟件測試網 http://www.kjueaiud.com/
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月