本發(fā)明屬于數(shù)據(jù)庫技術(shù)領(lǐng)域,特別是涉及一種rdbms在線數(shù)據(jù)遷移的方法和裝置。
背景技術(shù):
在現(xiàn)有的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(rdbms)數(shù)據(jù)遷移過程中,數(shù)據(jù)庫必須處于close狀態(tài),而導(dǎo)致業(yè)務(wù)系統(tǒng)不能對數(shù)據(jù)庫進(jìn)行訪問,也就是數(shù)據(jù)庫不能對外提供服務(wù),非常不方便,且現(xiàn)有的數(shù)據(jù)遷移技術(shù)多屬于數(shù)據(jù)庫邏輯層面的操作,包括數(shù)據(jù)庫級別的導(dǎo)入導(dǎo)出,或用戶級別的導(dǎo)入導(dǎo)出,如oracle數(shù)據(jù)庫提供的應(yīng)用程序接口exp/imp和expdp/impdp;sybase和sqlserver數(shù)據(jù)庫提供的接口bcp,以及db2數(shù)據(jù)庫提供的接口move/load等,或者采用第三方的數(shù)據(jù)遷移工具,如sqldeveloper、toad等,這僅適用于小數(shù)據(jù)量的業(yè)務(wù),而對于海量數(shù)據(jù)的遷移需求往往超過了客戶要求的時(shí)間窗口。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問題,本發(fā)明提供了一種rdbms在線數(shù)據(jù)遷移的方法和裝置,能夠在關(guān)系數(shù)據(jù)庫管理系統(tǒng)執(zhí)行數(shù)據(jù)遷移過程中,繼續(xù)對外提供業(yè)務(wù)查詢服務(wù),且在約定的時(shí)間窗口內(nèi),能夠通過操作系統(tǒng)的物理操作實(shí)現(xiàn)tb級別的海量數(shù)據(jù)的遷移。
本發(fā)明提供的一種rdbms在線數(shù)據(jù)遷移的方法,包括:
把源數(shù)據(jù)庫用戶表空間的狀態(tài)變更為只讀狀態(tài),導(dǎo)出其中的元數(shù)據(jù);
將所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件和所述元數(shù)據(jù)傳輸?shù)街修D(zhuǎn)服務(wù)器上,傳輸結(jié)束后將所述源數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài);
向目標(biāo)數(shù)據(jù)庫用戶表空間導(dǎo)入所述元數(shù)據(jù);
將所述目標(biāo)數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài)。
優(yōu)選的,在上述rdbms在線數(shù)據(jù)遷移的方法中,
在所述將所述源數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài)之后,還包括:
轉(zhuǎn)換所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件的格式。
優(yōu)選的,在上述rdbms在線數(shù)據(jù)遷移的方法中,
在所述將所述目標(biāo)數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài)之后,還包括:
導(dǎo)入所述源數(shù)據(jù)庫用戶表空間之外的數(shù)據(jù)庫對象。
優(yōu)選的,在上述rdbms在線數(shù)據(jù)遷移的方法中,
將所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件和所述元數(shù)據(jù)傳輸?shù)街修D(zhuǎn)服務(wù)器上為:
將所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件和所述元數(shù)據(jù)傳輸?shù)絥as服務(wù)器上。
本發(fā)明提供的一種rdbms在線數(shù)據(jù)遷移的裝置,包括:
導(dǎo)出單元,用于把源數(shù)據(jù)庫用戶表空間的狀態(tài)變更為只讀狀態(tài),導(dǎo)出其中的元數(shù)據(jù);
傳輸單元,用于將所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件和所述元數(shù)據(jù)傳輸?shù)街修D(zhuǎn)服務(wù)器上,傳輸結(jié)束后將所述源數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài);
導(dǎo)入單元,用于向目標(biāo)數(shù)據(jù)庫用戶表空間導(dǎo)入所述元數(shù)據(jù);
設(shè)置單元,用于將所述目標(biāo)數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài)。
優(yōu)選的,在上述rdbms在線數(shù)據(jù)遷移的裝置中,還包括:
轉(zhuǎn)換單元,用于轉(zhuǎn)換所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件的格式。
優(yōu)選的,在上述rdbms在線數(shù)據(jù)遷移的裝置中,還包括:
導(dǎo)入所述源數(shù)據(jù)庫用戶表空間之外的數(shù)據(jù)庫對象。
優(yōu)選的,在上述rdbms在線數(shù)據(jù)遷移的裝置中,所述中轉(zhuǎn)服務(wù)器為nas服務(wù)器。
通過上述描述可知,本發(fā)明提供的上述rdbms在線數(shù)據(jù)遷移的方法和裝置,由于該方法包括把源數(shù)據(jù)庫用戶表空間的狀態(tài)變更為只讀狀態(tài),導(dǎo)出其中的元數(shù)據(jù);將所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件和所述元數(shù)據(jù)傳輸?shù)街修D(zhuǎn)服務(wù)器上,傳輸結(jié)束后將所述源數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài);向目標(biāo)數(shù)據(jù)庫用戶表空間導(dǎo)入所述元數(shù)據(jù);將所述目標(biāo)數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài),因此能夠在關(guān)系數(shù)據(jù)庫管理系統(tǒng)執(zhí)行數(shù)據(jù)遷移過程中,繼續(xù)對外提供業(yè)務(wù)查詢服務(wù),且在約定的時(shí)間窗口內(nèi),能夠通過操作系統(tǒng)的物理操作實(shí)現(xiàn)tb級別的海量數(shù)據(jù)的遷移。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請實(shí)施例提供的第一種rdbms在線數(shù)據(jù)遷移的方法的示意圖;
圖2為本申請實(shí)施例提供的第一種rdbms在線數(shù)據(jù)遷移的裝置的示意圖。
具體實(shí)施方式
本發(fā)明的核心思想在于提供一種rdbms在線數(shù)據(jù)遷移的方法和裝置,能夠在關(guān)系數(shù)據(jù)庫管理系統(tǒng)執(zhí)行數(shù)據(jù)遷移過程中,繼續(xù)對外提供業(yè)務(wù)查詢服務(wù),且在約定的時(shí)間窗口內(nèi),能夠通過操作系統(tǒng)的物理操作實(shí)現(xiàn)tb級別的海量數(shù)據(jù)的遷移。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本申請實(shí)施例提供的第一種rdbms在線數(shù)據(jù)遷移的方法如圖1所示,圖1為本申請實(shí)施例提供的第一種rdbms在線數(shù)據(jù)遷移的方法的示意圖,該方法包括如下步驟:
s1:把源數(shù)據(jù)庫用戶表空間的狀態(tài)變更為只讀狀態(tài),導(dǎo)出其中的元數(shù)據(jù);
在這種情況下,在后續(xù)的執(zhí)行數(shù)據(jù)遷移過程中,關(guān)系數(shù)據(jù)庫管理系統(tǒng)就能夠繼續(xù)對外提供服務(wù),且防止了數(shù)據(jù)遷移過程中業(yè)務(wù)系統(tǒng)對數(shù)據(jù)庫的變更操作,保證了數(shù)據(jù)的一致性。需要說明的是,在關(guān)系數(shù)據(jù)庫管理系統(tǒng)中,表空間是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的邏輯劃分,且一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫,所有的數(shù)據(jù)庫對象都存放在指定的表空間中,但主要存放的是表,所以稱作表空間。只要數(shù)據(jù)庫處于open狀態(tài),除了system表空間外的其他表空間,都可以將其置為online或offline狀態(tài),而表空間在online狀態(tài)時(shí)又分為讀寫read-write和只讀read-only兩種,表空間在只讀狀態(tài)時(shí)數(shù)據(jù)庫可以被訪問,但不能被更新,所以,可以通過只讀狀態(tài)下表空間可以被訪問的特性,既保證了數(shù)據(jù)遷移前后的數(shù)據(jù)的一致性,又可以實(shí)現(xiàn)數(shù)據(jù)庫對外提供服務(wù)的需求。這里的元數(shù)據(jù)指描述用戶表空間的數(shù)據(jù)包括表空間總大小、數(shù)據(jù)文件位置及大小信息等,導(dǎo)出元數(shù)據(jù)的工具可以采用但不限于oracle數(shù)據(jù)庫工具exp/imp和expdp/impdp。
s2:將所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件和所述元數(shù)據(jù)傳輸?shù)街修D(zhuǎn)服務(wù)器上,傳輸結(jié)束后將所述源數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài);
需要說明的是,需要一段時(shí)間把數(shù)據(jù)文件傳輸?shù)街修D(zhuǎn)作用的中轉(zhuǎn)服務(wù)器上,以便在不同平臺轉(zhuǎn)換數(shù)據(jù)字節(jié)序時(shí)作為數(shù)據(jù)的輸入端。利用這種中轉(zhuǎn)服務(wù)器從物理層面進(jìn)行數(shù)據(jù)遷移,大大提高了遷移速度,就能夠在特定的遷移時(shí)間窗口內(nèi),完成客戶的數(shù)據(jù)遷移的業(yè)務(wù)要求。
s3:向目標(biāo)數(shù)據(jù)庫用戶表空間導(dǎo)入所述元數(shù)據(jù);
需要說明的是,在該導(dǎo)入元數(shù)據(jù)的過程中,數(shù)據(jù)庫會自動關(guān)聯(lián)表空間和物理文件等信息。
s4:將所述目標(biāo)數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài)。
需要說明的是,該步驟也就是還原目標(biāo)數(shù)據(jù)庫用戶表空間的狀態(tài),把目標(biāo)數(shù)據(jù)庫用戶表空間狀態(tài)由read-only狀態(tài)變更為read-write狀態(tài),這樣數(shù)據(jù)庫就可對外提供服務(wù)。
通過上述描述可知,本申請實(shí)施例提供的第一種rdbms在線數(shù)據(jù)遷移的方法,由于包括把源數(shù)據(jù)庫用戶表空間的狀態(tài)變更為只讀狀態(tài),導(dǎo)出其中的元數(shù)據(jù);將所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件和所述元數(shù)據(jù)傳輸?shù)街修D(zhuǎn)服務(wù)器上,傳輸結(jié)束后將所述源數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài);向目標(biāo)數(shù)據(jù)庫用戶表空間導(dǎo)入所述元數(shù)據(jù);將所述目標(biāo)數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài),因此能夠在關(guān)系數(shù)據(jù)庫管理系統(tǒng)執(zhí)行數(shù)據(jù)遷移過程中,繼續(xù)對外提供業(yè)務(wù)查詢服務(wù),且在約定的時(shí)間窗口內(nèi),能夠通過操作系統(tǒng)的物理操作實(shí)現(xiàn)tb級別的海量數(shù)據(jù)的遷移。
本申請實(shí)施例提供的第二種rdbms在線數(shù)據(jù)遷移的方法,是在上述第一種rdbms在線數(shù)據(jù)遷移的方法的基礎(chǔ)上,還包括如下技術(shù)特征:
在所述將所述源數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài)之后,還包括:
轉(zhuǎn)換所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件的格式。
需要說明的是,在跨平臺傳輸數(shù)據(jù)的情況下,就需要轉(zhuǎn)換源數(shù)據(jù)庫數(shù)據(jù)文件格式,因?yàn)椴煌脚_文件的存儲的字節(jié)序不同,這樣就需要根據(jù)要求轉(zhuǎn)換為適用于該平臺的文件格式,例如aix、hp-ux平臺字節(jié)序?yàn)榇蠖耍琹inux平臺字節(jié)序?yàn)樾《?。?dāng)然如果不跨平臺傳輸?shù)脑挓o需該步驟。
本申請實(shí)施例提供的第三種rdbms在線數(shù)據(jù)遷移的方法,是在上述第一種rdbms在線數(shù)據(jù)遷移的方法的基礎(chǔ)上,還包括如下技術(shù)特征:
在所述將所述目標(biāo)數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài)之后,還包括:
導(dǎo)入所述源數(shù)據(jù)庫用戶表空間之外的數(shù)據(jù)庫對象。
也就是說,在數(shù)據(jù)遷移完成后,將存儲過程等與項(xiàng)目相關(guān)的對象帶入進(jìn)去。
本申請實(shí)施例提供的第四種rdbms在線數(shù)據(jù)遷移的方法,是在上述第一種至第三種rdbms在線數(shù)據(jù)遷移的方法中任一種的基礎(chǔ)上,還包括如下技術(shù)特征:
將所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件和所述元數(shù)據(jù)傳輸?shù)街修D(zhuǎn)服務(wù)器上為:
將所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件和所述元數(shù)據(jù)傳輸?shù)絥as服務(wù)器上。
需要說明的是,利用這種nas服務(wù)器的優(yōu)點(diǎn)在于環(huán)境易搭建,成本較低,中級別數(shù)據(jù)量的場景下速度適中。另外,還可以使用ftp直接傳輸或存儲切換的方式,此處并不限制。還可以當(dāng)數(shù)據(jù)量小于tb級別時(shí)采用ftp作為數(shù)據(jù)傳輸?shù)姆绞剑@樣可以直接使用現(xiàn)網(wǎng)的環(huán)境,而數(shù)據(jù)量大于10tb級別時(shí)可以采用上述存儲直接切換的方式。
本申請實(shí)施例提供的第一種rdbms在線數(shù)據(jù)遷移的裝置如圖2所示,圖2為本申請實(shí)施例提供的第一種rdbms在線數(shù)據(jù)遷移的裝置的示意圖,該裝置包括:
導(dǎo)出單元201,用于把源數(shù)據(jù)庫用戶表空間的狀態(tài)變更為只讀狀態(tài),導(dǎo)出其中的元數(shù)據(jù),在這種情況下,在后續(xù)的執(zhí)行數(shù)據(jù)遷移過程中,關(guān)系數(shù)據(jù)庫管理系統(tǒng)就能夠繼續(xù)對外提供服務(wù),且防止了數(shù)據(jù)遷移過程中業(yè)務(wù)系統(tǒng)對數(shù)據(jù)庫的變更操作,保證了數(shù)據(jù)的一致性。需要說明的是,在關(guān)系數(shù)據(jù)庫管理系統(tǒng)中,表空間是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的邏輯劃分,且一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫,所有的數(shù)據(jù)庫對象都存放在指定的表空間中,但主要存放的是表,所以稱作表空間。只要數(shù)據(jù)庫處于open狀態(tài),除了system表空間外的其他表空間,都可以將其置為online或offline狀態(tài),而表空間在online狀態(tài)時(shí)又分為讀寫read-write和只讀read-only兩種,表空間在只讀狀態(tài)時(shí)數(shù)據(jù)庫可以被訪問,但不能被更新,所以,可以通過只讀狀態(tài)下表空間可以被訪問的特性,既保證了數(shù)據(jù)遷移前后的數(shù)據(jù)的一致性,又可以實(shí)現(xiàn)數(shù)據(jù)庫對外提供服務(wù)的需求。這里的元數(shù)據(jù)指描述用戶表空間的數(shù)據(jù)包括表空間總大小、數(shù)據(jù)文件位置及大小信息等,導(dǎo)出元數(shù)據(jù)的工具可以采用但不限于oracle數(shù)據(jù)庫工具exp/imp和expdp/impdp;
傳輸單元202,用于將所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件和所述元數(shù)據(jù)傳輸?shù)街修D(zhuǎn)服務(wù)器上,傳輸結(jié)束后將所述源數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài),需要說明的是,需要一段時(shí)間把數(shù)據(jù)文件傳輸?shù)街修D(zhuǎn)作用的中轉(zhuǎn)服務(wù)器上,以便在不同平臺轉(zhuǎn)換數(shù)據(jù)字節(jié)序時(shí)作為數(shù)據(jù)的輸入端,利用這種中轉(zhuǎn)服務(wù)器從物理層面進(jìn)行數(shù)據(jù)遷移,大大提高了遷移速度,就能夠在特定的遷移時(shí)間窗口內(nèi),完成客戶的數(shù)據(jù)遷移的業(yè)務(wù)要求;
導(dǎo)入單元203,用于向目標(biāo)數(shù)據(jù)庫用戶表空間導(dǎo)入所述元數(shù)據(jù),需要說明的是,在導(dǎo)入元數(shù)據(jù)時(shí),數(shù)據(jù)庫會自動關(guān)聯(lián)表空間和物理文件等信息;
設(shè)置單元204,用于將所述目標(biāo)數(shù)據(jù)庫用戶表空間的狀態(tài)設(shè)置為讀寫狀態(tài),需要說明的是,也就是還原目標(biāo)數(shù)據(jù)庫用戶表空間的狀態(tài),把目標(biāo)數(shù)據(jù)庫用戶表空間狀態(tài)由read-only狀態(tài)變更為read-write狀態(tài),這樣數(shù)據(jù)庫就可對外提供服務(wù)。
本申請實(shí)施例提供的第二種rdbms在線數(shù)據(jù)遷移的裝置,是在上述第一種rdbms在線數(shù)據(jù)遷移的裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
轉(zhuǎn)換單元,用于轉(zhuǎn)換所述源數(shù)據(jù)庫用戶表空間的數(shù)據(jù)文件的格式。
需要說明的是,在跨平臺傳輸數(shù)據(jù)的情況下,就需要轉(zhuǎn)換源數(shù)據(jù)庫數(shù)據(jù)文件格式,因?yàn)椴煌脚_文件的存儲的字節(jié)序不同,這樣就需要根據(jù)要求轉(zhuǎn)換為適用于該平臺的文件格式,例如aix、hp-ux平臺字節(jié)序?yàn)榇蠖?,linux平臺字節(jié)序?yàn)樾《恕?/p>
本申請實(shí)施例提供的第三種rdbms在線數(shù)據(jù)遷移的裝置,是在上述第一種rdbms在線數(shù)據(jù)遷移的裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
導(dǎo)入所述源數(shù)據(jù)庫用戶表空間之外的數(shù)據(jù)庫對象。
也就是說,在數(shù)據(jù)遷移完成后,將存儲過程等與項(xiàng)目相關(guān)的對象帶入進(jìn)去。
本申請實(shí)施例提供的第四種rdbms在線數(shù)據(jù)遷移的裝置,是在上述第一種至第三種rdbms在線數(shù)據(jù)遷移的裝置中任一種的基礎(chǔ)上,還包括如下技術(shù)特征:
所述中轉(zhuǎn)服務(wù)器為nas服務(wù)器。
需要說明的是,利用這種nas服務(wù)器的優(yōu)點(diǎn)在于環(huán)境易搭建,成本較低,中級別數(shù)據(jù)量的場景下速度適中。另外,還可以使用ftp直接傳輸或存儲切換的方式,此處并不限制。還可以當(dāng)數(shù)據(jù)量小于tb級別時(shí)采用ftp作為數(shù)據(jù)傳輸?shù)姆绞?,這樣可以直接使用現(xiàn)網(wǎng)的環(huán)境,而數(shù)據(jù)量大于10tb級別時(shí)可以采用上述存儲直接切換的方式。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。