日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

一部分 数据 迁移_软件测试员12小时惊魂记:数据库迁移出大事故,如何测试?...

發(fā)布時(shí)間:2025/4/5 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一部分 数据 迁移_软件测试员12小时惊魂记:数据库迁移出大事故,如何测试?... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

信息時(shí)代,隨著用戶數(shù)量不斷增加,業(yè)務(wù)量不斷增長(zhǎng),企業(yè)原有數(shù)據(jù)庫(kù)不足以有效支撐業(yè)務(wù)的發(fā)展,在此情況下,企業(yè)更多的是尋求一款更加穩(wěn)定的數(shù)據(jù)庫(kù)進(jìn)行替代。

本文以Sybase數(shù)據(jù)庫(kù)和Oracle數(shù)據(jù)庫(kù)為例。Oracle數(shù)據(jù)庫(kù)是目前世界上流行的關(guān)系數(shù)據(jù)庫(kù),采用多進(jìn)程多線索體系結(jié)構(gòu),而Sybase數(shù)據(jù)庫(kù)采用單進(jìn)程多線索體系結(jié)構(gòu)。兩者均采用多線索的模式,該模式能用較少的線索管理大量的用戶進(jìn)程,降低了對(duì)系統(tǒng)資源的占用,提高了系統(tǒng)資源的利用率。

多進(jìn)程較單進(jìn)程的優(yōu)勢(shì)在于,能實(shí)現(xiàn)數(shù)據(jù)庫(kù)事務(wù)的并行處理,提高并發(fā)事務(wù)處理的響應(yīng)速度,避免了單服務(wù)器結(jié)構(gòu)中很容易造成服務(wù)器進(jìn)程瓶頸,進(jìn)而避免了因此而引起的單服務(wù)器進(jìn)程死鎖。因此,當(dāng)前企業(yè)一般以O(shè)racle數(shù)據(jù)庫(kù)替代Sybase數(shù)據(jù)庫(kù)。

  數(shù)據(jù)庫(kù)遷移后,需要測(cè)試人員進(jìn)行有效的驗(yàn)證,以保障系統(tǒng)的可用性,這是一個(gè)必不可少的環(huán)節(jié)。本文以實(shí)際項(xiàng)目測(cè)試經(jīng)歷為依據(jù),對(duì)數(shù)據(jù)庫(kù)表結(jié)構(gòu)及遷移數(shù)據(jù)的測(cè)試方法、經(jīng)驗(yàn)進(jìn)行了總結(jié),供測(cè)試人員使用。

 1、數(shù)據(jù)庫(kù)表結(jié)構(gòu)測(cè)試

  數(shù)據(jù)庫(kù)遷移普遍會(huì)涉及表字段的變換,包括字段的新增、刪除或修改等情況,此時(shí),測(cè)試需關(guān)注以下3個(gè)方面:

(1)新增字段測(cè)試:關(guān)注表結(jié)構(gòu),檢查新庫(kù)中新增字段的字段類型是否與預(yù)先定義一致;檢查遷移前后新增的字段在數(shù)據(jù)庫(kù)記錄中是否有值及其正確性。數(shù)據(jù)庫(kù)遷移后,新增字段根據(jù)業(yè)務(wù)需求可能會(huì)存在以下兩種插入方式:一是系統(tǒng)上線前就通過(guò)數(shù)據(jù)變更導(dǎo)入數(shù)據(jù),這種情況下我們需要驗(yàn)證該新增字段在數(shù)據(jù)庫(kù)表中是否都已按照業(yè)務(wù)需求填充完整。二是系統(tǒng)上線后,客戶發(fā)生實(shí)際業(yè)務(wù)后獲取并填充該新增字段,針對(duì)這種情況,則建議驗(yàn)證涉及該字段增刪改查的系統(tǒng)功能在遷移后能否正常使用。

(2)刪除字段測(cè)試:關(guān)注表結(jié)構(gòu),檢查刪除的字段在新庫(kù)中是否已被刪除,確認(rèn)被刪除字段數(shù)據(jù)是否需要導(dǎo)入新庫(kù),還是直接刪除,如需導(dǎo)入新庫(kù),需確定數(shù)據(jù)導(dǎo)入規(guī)則,然后驗(yàn)證導(dǎo)入后數(shù)據(jù)的準(zhǔn)確性、完整性等。此外,需要選擇關(guān)聯(lián)功能進(jìn)行驗(yàn)證。

 (3)修改字段測(cè)試:關(guān)注表結(jié)構(gòu),檢查新庫(kù)中新增字段的字段類型是否與預(yù)先定義一致。數(shù)據(jù)庫(kù)遷移時(shí),部分字段類型、字段內(nèi)容可能會(huì)發(fā)生改變。針對(duì)字段內(nèi)容發(fā)生變化的情況,也需要驗(yàn)證相關(guān)系統(tǒng)功能能否正常使用,以及表中數(shù)據(jù)的準(zhǔn)確性及完整性。針對(duì)字段類型,Sybase及Oracle數(shù)據(jù)庫(kù)存在一些差別,以Sybase的datetime字段為例,它保留了毫秒級(jí)的數(shù)據(jù),而Oracle的date類型只保留到秒級(jí)別數(shù)據(jù),因此測(cè)試時(shí)需要關(guān)注因字段類型變化帶來(lái)的數(shù)據(jù)一致性問(wèn)題。同時(shí),在測(cè)試時(shí)要極為關(guān)注,并與開發(fā)確認(rèn)字段類型的差別是否會(huì)對(duì)系統(tǒng)功產(chǎn)生影響。下表列出了Sybase及Oracle部分常見字段類型,供測(cè)試人員參考:

  表1 Sybase及Oracle常見數(shù)值類型

 2、遷移數(shù)據(jù)測(cè)試

  對(duì)于進(jìn)行數(shù)據(jù)庫(kù)遷移的數(shù)據(jù),要關(guān)注以下幾點(diǎn):遷移過(guò)程中出現(xiàn)的臟數(shù)據(jù),數(shù)據(jù)的提取方式,遷移前后的數(shù)據(jù)一致性。

(1)臟數(shù)據(jù)

  臟數(shù)據(jù)是指源系統(tǒng)中的數(shù)據(jù)不在給定的范圍內(nèi)、對(duì)于實(shí)際業(yè)務(wù)毫無(wú)意義、數(shù)據(jù)格式非法、以及在源系統(tǒng)中存在不規(guī)范的編碼和含糊的業(yè)務(wù)邏輯。數(shù)據(jù)從Sybase數(shù)據(jù)庫(kù)中遷移出來(lái)時(shí)會(huì)有一部分臟數(shù)據(jù),包含重復(fù)數(shù)據(jù)、無(wú)效數(shù)據(jù)、不可見數(shù)據(jù)等,首先需要在Sybase數(shù)據(jù)庫(kù)中處理臟數(shù)據(jù),再導(dǎo)出數(shù)據(jù),最后將數(shù)據(jù)導(dǎo)入Oracle數(shù)據(jù)庫(kù)。所以遷移后:

  Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)量=實(shí)際遷移數(shù)據(jù)量=遷移前Sybase數(shù)據(jù)量-臟數(shù)據(jù)量。

 (2)數(shù)據(jù)提取方式

  數(shù)據(jù)的提取是為了更好的進(jìn)行數(shù)據(jù)一致性對(duì)比,考慮到Sybase數(shù)據(jù)庫(kù)與Oracle數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)的規(guī)則不同,直接對(duì)比各自導(dǎo)出數(shù)據(jù)文件需要進(jìn)行大量的格式和文本轉(zhuǎn)換,我們采用直接從兩種數(shù)據(jù)庫(kù)中查詢,然后以統(tǒng)一格式生成文本文檔的方式提取數(shù)據(jù),并在數(shù)據(jù)之間以特定的分隔符進(jìn)行分割。在實(shí)際操作中需要針對(duì)不同處理字段類型,定義不同的轉(zhuǎn)換函數(shù),例如定義一段Oracle數(shù)據(jù)庫(kù)中clob字段轉(zhuǎn)string的函數(shù):

  然后通過(guò)用Java語(yǔ)句提取到文本文檔當(dāng)中,而Sybase數(shù)據(jù)庫(kù)中的字段則可直接轉(zhuǎn)為string然后寫入文本文檔。

  這樣就可以獲取到格式為TXT的數(shù)據(jù)提取文本。

(3)基于Beyond Compare工具進(jìn)行數(shù)據(jù)對(duì)比

  Beyond Compare是一種文本比對(duì)工具,此工具主要用途是對(duì)比兩個(gè)文件夾或者文件,并將其差異以顏色標(biāo)出。針對(duì)遷移前后數(shù)據(jù)的一致性測(cè)試,我們的基本思路是對(duì)于沒有發(fā)生改變的字段的數(shù)據(jù)進(jìn)行全量的文本對(duì)比,再采用抽樣的方式選中一部分?jǐn)?shù)據(jù)進(jìn)行所有字段的人工對(duì)比。

前文中數(shù)據(jù)庫(kù)結(jié)構(gòu)測(cè)試?yán)锏谋斫Y(jié)構(gòu)在這里就是數(shù)據(jù)一致性測(cè)試的一個(gè)基礎(chǔ),確定了需要使用文本對(duì)比的字段。在Beyond Compare工具中,選擇文本比較,將兩份提取出的數(shù)據(jù)文本分別放入兩側(cè)對(duì)比框中,將立即對(duì)文本進(jìn)行比較,并標(biāo)注出有差異的項(xiàng)。一般選擇顯示差異項(xiàng)來(lái)鎖定有差異的數(shù)據(jù)。當(dāng)兩份文本對(duì)比無(wú)差異時(shí),我們就可以確認(rèn)數(shù)據(jù)庫(kù)遷移前后的數(shù)據(jù)是完全一致的了。

  圖1 Beyond Compare比較界面

  以上,便是我們本文的主要內(nèi)容。當(dāng)然,數(shù)據(jù)庫(kù)遷移測(cè)試,并不能只從數(shù)據(jù)庫(kù)結(jié)構(gòu)、遷移數(shù)據(jù)兩個(gè)維度進(jìn)行驗(yàn)證,我們還需在數(shù)據(jù)遷移后的環(huán)境開展功能驗(yàn)證,通過(guò)全量的功能回歸,發(fā)掘數(shù)據(jù)遷移后的缺陷。此外,為了保障系統(tǒng)上線后的穩(wěn)定性,我們需要開展性能測(cè)試,這些我們將在以后再進(jìn)行分享,希望上述內(nèi)容能對(duì)開展數(shù)據(jù)庫(kù)遷移測(cè)試的朋友提供幫助!

總結(jié)

以上是生活随笔為你收集整理的一部分 数据 迁移_软件测试员12小时惊魂记:数据库迁移出大事故,如何测试?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。