陳真玄 ,楊 旭 ,姚 敏
(1. 水利部水利信息中心,北京 100053;2. 北京金水信息技術(shù)發(fā)展有限公司,北京 100053)
水利信息化建設(shè)的逐步深化,各項(xiàng)業(yè)務(wù)應(yīng)用的逐步開(kāi)展,大大提高了水行政管理和公共服務(wù)能力,提升了水利信息化水平。水利部電子政務(wù)系統(tǒng)逐漸由單純的辦公自動(dòng)化系統(tǒng)轉(zhuǎn)變?yōu)楹w綜合辦公、規(guī)劃計(jì)劃管理、人事管理等多種業(yè)務(wù)的綜合性系統(tǒng)。系統(tǒng)規(guī)模越來(lái)越大、應(yīng)用范圍越來(lái)越寬,對(duì)數(shù)據(jù)可靠性的要求也越來(lái)越高,數(shù)據(jù)存儲(chǔ)空間不足的矛盾也表現(xiàn)得越來(lái)越突出。在此情況下,存儲(chǔ)系統(tǒng)的升級(jí)改造不可避免,這必然面臨一個(gè)數(shù)據(jù)遷移的問(wèn)題。
在目前數(shù)據(jù)遷移的案例中,比較常見(jiàn)的是數(shù)據(jù)庫(kù)之間和主機(jī)之間的數(shù)據(jù)遷移。而本文提出的數(shù)據(jù)遷移在不影響水利部電子政務(wù)業(yè)務(wù)的前提下實(shí)現(xiàn)存儲(chǔ)系統(tǒng)之間的數(shù)據(jù)遷移。
實(shí)現(xiàn)數(shù)據(jù)從一個(gè)存儲(chǔ)系統(tǒng)遷移到另一個(gè)存儲(chǔ)系統(tǒng)的方式有備份恢復(fù)、邏輯卷鏡像等不同的方法,各種數(shù)據(jù)遷移方式有不同的特點(diǎn),適用于不同的數(shù)據(jù)遷移需求。主要數(shù)據(jù)遷移技術(shù)有以下 4 種:
1) 直接拷貝方式。直接拷貝方式是利用操作系統(tǒng)命令直接拷貝要遷移的數(shù)據(jù),復(fù)制到要遷移的目的地[1]。如 Linux/Unix 下的 dd 命令,作用是將指定大小的輸入文件(設(shè)備文件)以 block 為單位拷貝到指定的輸出文件(設(shè)備文件)中,并在拷貝的同時(shí)進(jìn)行指定的轉(zhuǎn)換。
直接拷貝方式是快速有效的數(shù)據(jù)遷移方式,原數(shù)據(jù)卷可用于緊急回退。數(shù)據(jù)遷移期間需要停止業(yè)務(wù),數(shù)據(jù)遷移時(shí)間與數(shù)據(jù)量大小相關(guān)。
直接拷貝方式適合于數(shù)據(jù)量不大、可以接受業(yè)務(wù)中斷時(shí)間較長(zhǎng)的系統(tǒng),這種系統(tǒng)采用直接拷貝的方式就顯得簡(jiǎn)單、快捷。
2) 邏輯卷鏡像方式。邏輯卷鏡像方式是利用操作系統(tǒng)中的鏡像管理軟件,在主機(jī)中同時(shí)加載新存儲(chǔ)和原存儲(chǔ)的數(shù)據(jù)卷,并將對(duì)應(yīng)的 2 組數(shù)據(jù)卷配置成鏡像卷,由操作系統(tǒng)自動(dòng)將原存儲(chǔ)系統(tǒng)中的數(shù)據(jù)復(fù)制到新存儲(chǔ)系統(tǒng)中。
邏輯卷鏡像方式是對(duì)現(xiàn)有的數(shù)據(jù)卷增加鏡像卷,不會(huì)影響原來(lái)的數(shù)據(jù)卷;操作步驟相對(duì)簡(jiǎn)單、高效。鏡像的初始同步會(huì)大量占用主機(jī) CPU 資源,降低源磁盤(pán)的 IO 響應(yīng)時(shí)間,數(shù)據(jù)同步過(guò)程也會(huì)影響業(yè)務(wù)性能;但此方式僅在配置和停止鏡像時(shí)需要停止業(yè)務(wù),業(yè)務(wù)中斷時(shí)間短,可以最大限度地保障生產(chǎn)系統(tǒng)的可用性;數(shù)據(jù)遷移時(shí)間與整個(gè)數(shù)據(jù)卷大小相關(guān)[2]。
邏輯卷鏡像方式通常在有聯(lián)機(jī)遷移要求且遷移數(shù)據(jù)量大的情況下使用,支持任意存儲(chǔ)系統(tǒng)之間的遷移,適合于主機(jī)存儲(chǔ)的非經(jīng)常性遷移。
3) 備份恢復(fù)方式。備份恢復(fù)方式是利用數(shù)據(jù)備份系統(tǒng)將原有數(shù)據(jù)復(fù)制到備份介質(zhì),然后再轉(zhuǎn)入新的存儲(chǔ)系統(tǒng)中。
備份恢復(fù)方式僅從備份系統(tǒng)中恢復(fù)數(shù)據(jù),風(fēng)險(xiǎn)較低,如果失敗,導(dǎo)入原來(lái)的數(shù)據(jù)卷即可還原;數(shù)據(jù)庫(kù)恢復(fù)的操作步驟比較復(fù)雜,需要大量手工操作,恢復(fù)時(shí)間存在不確定因素;數(shù)據(jù)全備份時(shí)會(huì)影響業(yè)務(wù)性能,恢復(fù)過(guò)程需要停止業(yè)務(wù),業(yè)務(wù)中斷時(shí)間較長(zhǎng);數(shù)據(jù)遷移速度與數(shù)據(jù)量大小相關(guān)。
如果系統(tǒng)沒(méi)有邏輯卷管理軟件,在滿(mǎn)足備份窗口要求的情況下,可以考慮采用備份恢復(fù)方式實(shí)現(xiàn)。
4) 直接盤(pán)陣復(fù)制方式。直接盤(pán)陣復(fù)制方式是通過(guò)盤(pán)陣到盤(pán)陣的復(fù)制軟件將數(shù)據(jù)從一個(gè)盤(pán)陣復(fù)制到另一個(gè)盤(pán)陣,即寫(xiě)數(shù)據(jù)到本地盤(pán)陣時(shí),同步或異步地將數(shù)據(jù)寫(xiě)到遠(yuǎn)程盤(pán)陣。
直接盤(pán)陣復(fù)制方式,復(fù)制過(guò)程由磁盤(pán)陣列完成,不需要消耗主機(jī)資源,但是一般需要 2 個(gè)盤(pán)陣為同構(gòu)。
對(duì)那些需要在線(xiàn)不停機(jī)做數(shù)據(jù)遷移,同時(shí)又要求不占用業(yè)務(wù)系統(tǒng)主機(jī)資源的情況,可以采用直接盤(pán)陣復(fù)制方法。
水利部電子政務(wù)系統(tǒng)原存儲(chǔ)系統(tǒng)為 HP EVA 3000,新存儲(chǔ)系統(tǒng)為 H3C IX3240E,共涉及 24 臺(tái)主機(jī),包括 HPUX 小型機(jī)和 Windows 系統(tǒng) PC 服務(wù)器,其中 HPUX 小型機(jī)為數(shù)據(jù)庫(kù)服務(wù)器,系統(tǒng)環(huán)境為 HPUX Service Guard 管理的 Oracle10g 的 rac,需要遷移 Oracle 數(shù)據(jù)庫(kù)的數(shù)據(jù),Windows 服務(wù)器主要是文件系統(tǒng)數(shù)據(jù)遷移。水利部電子政務(wù)系統(tǒng)存儲(chǔ)升級(jí)改造數(shù)據(jù)遷移工作面臨極大的挑戰(zhàn):
1) 原存儲(chǔ)系統(tǒng)和新存儲(chǔ)系統(tǒng)分別為不同的品牌;
2) 需要遷移的數(shù)據(jù)量在 TB 級(jí)別,遷移任務(wù)較重;
3) 涉及電子政務(wù)的很多核心業(yè)務(wù),業(yè)務(wù)連續(xù)性要求高,不能長(zhǎng)時(shí)間中斷業(yè)務(wù);
4) 涉及到多個(gè)業(yè)務(wù)平臺(tái),環(huán)境復(fù)雜,數(shù)據(jù)遷移過(guò)程中存在發(fā)生錯(cuò)誤及數(shù)據(jù)不一致的風(fēng)險(xiǎn);
5) 涉及的主機(jī)是不同類(lèi)型的操作系統(tǒng),有不同的特點(diǎn),不適合單一的數(shù)據(jù)遷移方式。
考慮到這些問(wèn)題,水利部電子政務(wù)系統(tǒng)數(shù)據(jù)遷移根據(jù)不同業(yè)務(wù)情況采用多種數(shù)據(jù)遷移方式,其中HPUX 小型機(jī)使用裸設(shè)備文件,數(shù)據(jù)量大,而且要求數(shù)據(jù)遷移時(shí)間盡可能短,不能影響水利部電子辦公,因此排除了直接拷貝方式,而采用備份恢復(fù)的方式恢復(fù)數(shù)據(jù)庫(kù)操作步驟相對(duì)復(fù)雜,并且恢復(fù)時(shí)間不能確定,因此最終選擇邏輯卷鏡像方式,以減少因數(shù)據(jù)遷移而中斷業(yè)務(wù)的時(shí)間;Windows 服務(wù)器設(shè)備多,但是遷移的數(shù)據(jù)量小,遷移的時(shí)間也比較短,而且主要是文件數(shù)據(jù),因此采用直接拷貝方式,以減化操作,避免風(fēng)險(xiǎn)。
水利部電子政務(wù)系統(tǒng)數(shù)據(jù)遷移包括 HPUX 小型機(jī)上數(shù)據(jù)庫(kù)數(shù)據(jù)遷移及 Windows 服務(wù)器文件數(shù)據(jù)遷移,Windows 服務(wù)器文件數(shù)據(jù)遷移使用直接拷貝方式,操作相對(duì)簡(jiǎn)單,本文重點(diǎn)介紹 HPUX 集群環(huán)境Oracle rac 數(shù)據(jù)庫(kù)遷移實(shí)施。HPUX 環(huán)境 Oracle rac數(shù)據(jù)庫(kù)使用 HPUX 系統(tǒng)自身的 LVM 卷管理軟件,采用邏輯卷鏡像的方式,在數(shù)據(jù)同步的過(guò)程中,業(yè)務(wù)不中斷。
主要實(shí)施過(guò)程如下:
1)數(shù)據(jù)遷移前的準(zhǔn)備工作,通過(guò)這部分工作,可增加對(duì)系統(tǒng)環(huán)境的了解,降低數(shù)據(jù)遷移中的風(fēng)險(xiǎn)。
2)將新的 H3C IX3240E 存儲(chǔ)系統(tǒng)分別連接到現(xiàn)有各系統(tǒng)服務(wù)器上,使得現(xiàn)有主機(jī)既可以看到原有的 HP EVA 存儲(chǔ)系統(tǒng),亦可看到新連接上的 H3C IX3240E 存儲(chǔ)系統(tǒng)。此后,在 LVM 管理軟件控制下,對(duì)建立在原有存儲(chǔ)系統(tǒng)上的數(shù)據(jù)卷與新存儲(chǔ)系統(tǒng)上的對(duì)應(yīng)數(shù)據(jù)卷進(jìn)行鏡像操作,這樣只是在主機(jī)上增加了原有數(shù)據(jù)卷的鏡像卷,并不會(huì)影響原有的數(shù)據(jù)卷。
3)待數(shù)據(jù)完全同步后,將 HP EVA 存儲(chǔ)系統(tǒng)上的數(shù)據(jù)卷從鏡像卷中拆除出來(lái),這樣即使新存儲(chǔ)系統(tǒng)的數(shù)據(jù)卷有問(wèn)題,仍可以導(dǎo)入原存儲(chǔ)系統(tǒng)的數(shù)據(jù)卷,從而達(dá)到將數(shù)據(jù)從 HP EVA 存儲(chǔ)系統(tǒng)平穩(wěn)遷移到H3C IX3240 E 存儲(chǔ)系統(tǒng)上的目的。
數(shù)據(jù)遷移前需要做一些準(zhǔn)備工作,具體如下:
1)收集全面的系統(tǒng)背景信息;
2)對(duì)硬件安裝步驟以及風(fēng)險(xiǎn)進(jìn)行簡(jiǎn)單的分析;3)硬件環(huán)境調(diào)試及準(zhǔn)備;
4)停止業(yè)務(wù),對(duì) HPUX 小型機(jī)操作系統(tǒng)及數(shù)據(jù)庫(kù)進(jìn)行完整有效的備份。
為了保證存儲(chǔ)的平穩(wěn)過(guò)渡,先將 HP EVA 上的數(shù)據(jù)鏡像至 H3C IX3240E 存儲(chǔ)系統(tǒng)。主要實(shí)施步驟如下:
1)在新的 H3C 存儲(chǔ)系統(tǒng)上創(chuàng)建與原有的 HP EVA 存儲(chǔ)系統(tǒng)同樣數(shù)量大小的物理單元,并分別表達(dá)給主機(jī) 1,2;
2)在主機(jī)上查看新表達(dá)的物理單元;
3)把新創(chuàng)建的物理單元轉(zhuǎn)換為物理卷;
#pvcreate /dev/dsk/c?t?d?
…
4)把新創(chuàng)建的物理卷添加到對(duì)應(yīng)的卷組中;
#vgexend /dev/vgoarac /dev/dsk/c?t?d? /dev/dsk/c?t?d? …
#vgexend /dev/vgpubrac /dev/dsk/c?t?d? /dev/dsk/c?t?d? …
#vgexend /dev/vgoalog /dev/dsk/c?t?d? /dev/dsk/c?t?d? …
#vgexend /dev/vgegov /dev/dsk/c?t?d? /dev/dsk/c?t?d? …
#vgexend /dev/vgoarac2 /dev/dsk/c?t?d? /dev/dsk/c?t?d? …
5)用邏輯卷鏡像方式將數(shù)據(jù)從原數(shù)據(jù)卷復(fù)制到新數(shù)據(jù)卷;
#lvextend –m 1 /dev/vgoarac/system /dev/dsk/c?t?d?
#lvextend –m 1 /dev/vgoarac/temp /dev/dsk/c?t?d?…
6)檢查數(shù)據(jù)和應(yīng)用的完整性。
HP EVA 存儲(chǔ)與 H3C IX3240E 存儲(chǔ)經(jīng)過(guò)一段時(shí)間的并行使用后,如果狀態(tài)正常運(yùn)行穩(wěn)定,實(shí)施替換HP EVA 存儲(chǔ)系統(tǒng),拆除 HP EVA 上的數(shù)據(jù)鏡像,從而徹底過(guò)渡到單獨(dú)使用 H3C 存儲(chǔ)系統(tǒng)的狀態(tài)。主要實(shí)施步驟如下:
1)停止應(yīng)用程序及操作系統(tǒng)雙機(jī)集群軟件;
#cmhaltcl –fv
2)在主機(jī) 1 上單獨(dú)激活數(shù)據(jù)卷組;
#vgchange –c n –S n vg?
#vgchange –a y vg?
3)在主機(jī) 1 上查看 HP EVA 對(duì)應(yīng)的卷信息;
4)將 HP EVA 存儲(chǔ)系統(tǒng)對(duì)應(yīng)的數(shù)據(jù)卷從鏡像卷中拆除;
#sldb1_lvreduce.sh
5)把 HP EVA 存儲(chǔ)系統(tǒng)劃分的物理卷從對(duì)應(yīng)的卷組中刪除;
#sldb1_vgreduce.sh
6)在主機(jī)上刪除相應(yīng)卷組;
7)卸載 HP EVA 多路徑軟件;#swremove
8)安裝 H3C IX3240E 多路徑軟件;
#swinstall
9)調(diào)整光纖交換機(jī),從原有的 HP 光纖交換機(jī)遷移到新的 EMC 光纖交換機(jī);
10)在主機(jī) 2 上導(dǎo)入上述卷組,創(chuàng)建/etc/lvmpvg配置文件;
11)調(diào)整雙機(jī)配置并重新應(yīng)用;
12)啟動(dòng)操作系統(tǒng)雙機(jī)集群軟件;
#cmruncl –fv
13)在主機(jī) 1,2 上以共享方式激活數(shù)據(jù)卷組;
#vgchange –c y –S y vg?
#vgchange –a s vg?
14)在主機(jī) 1,2 上啟動(dòng)雙機(jī)應(yīng)用包;
#cmrunpkg ora
#cmrunpkg ora2
15)啟動(dòng)數(shù)據(jù)庫(kù)及應(yīng)用;
16)檢查數(shù)據(jù)和應(yīng)用的完整性。
在數(shù)據(jù)遷移完成后,對(duì) Oracle 數(shù)據(jù)庫(kù)基本信息進(jìn)行一致性測(cè)試。對(duì)比數(shù)據(jù)庫(kù)遷移前后的執(zhí)行結(jié)果,查詢(xún)結(jié)果是否完全吻合。對(duì)于存儲(chǔ)上的系統(tǒng)文件,主要看物理信息在遷移前后是否完全吻合。在任何一種數(shù)據(jù)遷移完成后都將進(jìn)行檢查以驗(yàn)證遷移的數(shù)據(jù)一致性。
數(shù)據(jù)庫(kù)基本信息的一致性測(cè)試檢查主要包含以下幾個(gè)方面:
1)Oracle 數(shù)據(jù)庫(kù)版本的檢查
select * from v$version;
2)Oracle 數(shù)據(jù)庫(kù)實(shí)例狀態(tài)的檢查
select instance_name,version,status,database_statusfrom v$instance;
3)Oracle 數(shù)據(jù)庫(kù)控制文件的檢查
select * from v$controlf i le;
4)Oracle 數(shù)據(jù)庫(kù)重做日志文件的檢查
select * from v$logf i le;
5)Oracle 數(shù)據(jù)庫(kù)所有數(shù)據(jù)文件的狀態(tài)檢查
select name,status from v$dataf i le;
6)Oracle 數(shù)據(jù)庫(kù)所有表空間的狀態(tài)檢查
select tablespace_name,status from dba_tablespaces;
7)Oracle 數(shù)據(jù)庫(kù)表空間管理方式的檢查
select tablespace_name,extent_management from dba_tablespaces;
8)Oracle 數(shù)據(jù)庫(kù)所有用戶(hù)狀態(tài)的檢查
select username,password,account_status,lock_date,default_tablespace,temporary_tablespace,created from dba_users;
9)Oracle 數(shù)據(jù)庫(kù)各個(gè)用戶(hù)下所有表總數(shù)的檢查
使用不同的應(yīng)用的用戶(hù)連接到數(shù)據(jù)庫(kù),執(zhí)行
select count(*) from user_tables。
水利部電子政務(wù)系統(tǒng)數(shù)據(jù)遷移是一個(gè)復(fù)雜的過(guò)程,數(shù)據(jù)遷移的成敗直接影響系統(tǒng)的運(yùn)行情況,因此需選擇一個(gè)安全可靠的方案,能在保證數(shù)據(jù)完整性和安全性的前提下,實(shí)現(xiàn)數(shù)據(jù)的平穩(wěn)遷移,減少水利部電子政務(wù)系統(tǒng)的停機(jī)時(shí)間。實(shí)際運(yùn)行情況表明,HPUX 小型機(jī)采用邏輯卷鏡像方式,Windows系統(tǒng) PC 服務(wù)器采用直接拷貝數(shù)據(jù)遷移方式實(shí)現(xiàn)了水利部電子政務(wù)系統(tǒng)數(shù)據(jù)的可靠和較快速的遷移,為系統(tǒng)的正常運(yùn)行提供了重要保障[3]。數(shù)據(jù)遷移完畢之后,H3C 存儲(chǔ)系統(tǒng)成為水利部電子政務(wù)系統(tǒng)存儲(chǔ)的核心,實(shí)現(xiàn)了信息的最大程度共享,提高了整個(gè)系統(tǒng)的可用性和可靠性。
[1]百度文庫(kù). 數(shù)據(jù)遷移方法概述[EB/OL]. [2012-11-10].http://wenku.baidu.com/view/d874e719964bcf84b9d57b3f.html.
[2]上海怡德數(shù)碼技術(shù)有限公司. Delteq-EMC 數(shù)據(jù)遷移方案[EB/OL]. [2012-11-10]. http://wenku.baidu.com/view/3f9a8918650e52ea551898e5.html.
[3]陳園園,陶飛. 社保信息系統(tǒng)中數(shù)據(jù)遷移的實(shí)現(xiàn)[J]. 蘇州市職業(yè)大學(xué)學(xué)報(bào),2011 (6): 27-30.