基於用電信息採集系統跨平臺資料庫數據遷移的方法與流程
2024-01-23 03:30:15 1
本發明屬於信息系統技術領域,具體涉及用電信息採集系統跨平臺資料庫數據遷移的應用。
背景技術:
隨著信息技術的發展,信息系統替換的頻率也越來越高。在系統替換的過程中就有必要進行數據遷移。數據正在逐漸成為企業的核心資產,數據的遷移成為企業時刻關注的問題。數據遷移,是指從一種源資料庫中提取數據,根據需要,遷移或者移植到目標資料庫中,其中異構資料庫遷移更是一項具有挑戰性的工作。異構資料庫遷移是指各自擁有自己的應用特性、完整性控制和安全性控制多個資料庫,且在多個資料庫之間存在著以下一種或者多種異構性:1計算機體系結構的異構;2基礎作業系統的異構;3 DBMS本身的異構。本次研究的背景是河北省電力公司實施的用電信息採集系統主站升級改造項目。升級改造過程中,由於新購的SUN小型機與原生產庫IBM資料庫伺服器屬不同的作業系統平臺,資料庫備份系統備份的數據,無法跨平臺恢復到SUN小型機搭建的查詢庫資料庫上,且查詢庫和生產庫的Oracle版本不一致。因此該次數據遷移是基於跨作業系統平臺與不同版本資料庫的異構數據遷移,安全風險大,技術含量高,業務水平要求高。
對於異構資料庫系統,要實現數據共享應當達到兩點,一是實現資料庫轉換,二是實現數據的透明訪問。在數據轉換過程中,原來的生產庫資料庫系統數據不能廢棄,需要遷移到新的查詢庫資料庫中繼續發揮作用。將現有生產庫數據中有效數據導入查詢庫中,對系統切換及新系統上線運行有著重要影響。數據遷移稍有不慎,便會造成新系統不能正常啟動,假若遷移過多垃圾數據,將有可能使新系統運行緩慢,甚至癱瘓。數據遷移的失敗將直接造成整個系統升級改造的失敗。數據遷移必須確保導入數據的完整性。採集系統業務複雜,數據量大,並且比較分散,數據導入後,升級後系統必須保證對生產庫與查詢庫的操作能夠正常進行。系統上線後,用戶可能需要對終端進行召測、對用戶檔案進行調試,對電錶數據進行查詢等,這些操作都依賴數據遷移的成功。只有保證數據的正確性、可用性,才能保證採集業務正常運行。
技術實現要素:
本發明提供一種基於用電信息採集系統跨平臺資料庫數據遷移的理論和方法,解決了河北用電信息採集系統升級改造項目中遇到的跨平臺數據遷移的重要難題,停機時間短,工期短,可靠性高,安全性高,操作簡單,保證了數據遷移的準確性和完整性,促進了整個升級改造項目的圓滿完成,也刷新了信息系統業內數據遷移項目中跨平臺數據遷移的記錄。
為了實現上述發明目的,本發明採取如下技術方案:
採集系統資料庫的數據遷移,將生產庫存儲上數據,無損的遷移至查詢庫資料庫存儲上,要跨越2種架構。考慮通過資料庫備份遷移軟體DATA PUMP和 RMAN 來實現。為了可行性考慮,同時展開了這兩種遷移方案測試及論證。 DATA PUMP工具提供了一種基於伺服器端的數據導入導出使用程序,所有DATA PUMP都作為一個伺服器進程,數據不再由客戶程序處理。DATA PUMP工具的導出和導入實現 ORACLE 資料庫之間的數據傳輸。 RMAN是RECOVERY MANAGER的縮寫,為ORACLE的恢復管理器,主要用於備份和恢復資料庫,特點如下:1、可以備份資料庫、表空間、數據文件、控制文件以及日誌文件。2、壓縮備份可以只備份發生變化的內容。
考慮到AIX作業系統與Solaris作業系統的Oracle資料庫備份還原屬於不同的作業系統;鑑於異構平臺數據還原需要進行格式轉換,存在一定的技術風險,通過諮詢相關Oracle專家並結合其他現場經驗,採用RMAN方式通過convert方法進行數據遷移。
其具體的方案為:
本發明提供一種基於用電信息採集系統跨平臺資料庫數據遷移的方法,其是一種應用於不同作業系統之間且不同版本的oracle資料庫之間的數據遷移方法,用電信息採集系統包括生產庫和查詢庫,其特徵在於:其包括以下步驟:
1)利用RMAN在原伺服器對原資料庫進行全庫備份,生成備份文件;
2)利用RMAN在新伺服器將步驟1)的備份文件全庫恢復到新的資料庫中;
3)對恢復後的資料庫通過convert database命令轉換。
優選的,所述步驟1)包括以下步驟:
1.1)建立通道分配:通道公配是確定連接資料庫備份的設置個數,每設置一個設備就代表RMAN會自動啟動一個伺服器會話,由此來完成資料庫的備份與恢復的操作;
1.2) 在ORACLE的歸檔模式下,使用BACKUP命令備份資料庫中的對像;
1.3)建立備份目錄:將磁碟存儲陣列根據數據備份要求,劃分生產庫與查詢庫共享空間,並分別掛載到生產庫與查詢庫;對生產庫做資料庫全庫備份。
優選的,所述步驟2)包括以下步驟:
2.1)連接新伺服器的新資料庫;
2.2)在新資料庫中創建恢復目錄的用戶,對恢復目錄的用戶賦予recovery_catalog_owner的角色;
2.3)在新的伺服器中創建恢復目錄,使用恢復目錄用戶登錄資料庫後在恢復目錄管理器中創建恢復目錄。
優選的,還包括以下步驟:
步驟3)查詢庫的資料庫版本升級。
優選的,所述用電信息採集系統分為主站、通信信道和採集設備;所述主站單獨組網,分區分域,與其它應用系統以及公網信道採用防火牆進行安全隔離;採集設備是用電信息採集系統的信息底層,負責收集和提供電力系統的原始用電信息,包括各類專變用戶的終端、集抄終端及電能表;通信信道是主站和採集設備的紐帶,提供了對各種可用的有線和無線通信信道的支持,為主站和終端的信息交互提供鏈路基礎。與現有技術相比,本發明的有益效果在於:
1、可避免由於遷移造成的數據丟失、數據損壞的問題,能保證數據遷移的完整性。
2、可對異構作業系統上的數據進行無損數據遷移。
3、可對資料庫大版本不統一的數據進行無損數據遷移。
4、資料庫數據遷移時,停機時間短、工期短。
具體實施方式
本發明提供一種基於用電信息採集系統跨平臺資料庫數據遷移的理論和方法,採用RMAN方式通過convert方法,完成了河北用電信息採集系統升級改造項目中跨平臺資料庫數據遷移的實施,將生產庫存儲上數據,無損的遷移至查詢庫資料庫存儲上。
用電信息採集系統從物理上可根據部署位置分為主站、通信信道、採集設備三部分。
其中系統主站部分單獨組網,分區分域,與其它應用系統以及公網信道採用防火牆進行安全隔離。採集系統按照全覆蓋、全採集、全費控的要求,在系統中實現數據採集管理、有序用電、預付費管理、電量統計、分布式電源管理、用戶用電階梯電價等各種功能。實現用電信息的自動採集、計量異常監測、電能質量監測、用電分析和管理、相關信息發布、分布式能源監控、智能用電設備的信息交互等功能,充分滿足各業務應用的需求,並為其他專業信息系統提供數據支持。
通信信道是主站和採集設備的紐帶,提供了對各種可用的有線和無線通信信道的支持,為主站和終端的信息交互提供鏈路基礎。主站支持所有主要的通信信道,包括:230MHz、GPRS無線公網、光纖專網和小無線等。
採集設備是用電信息採集系統的信息底層,負責收集和提供整個系統的原始用電信息,包括各類專變用戶的終端、集抄終端及電能表等設備。
大型專變用戶應用I型負荷管理終端,對中小型專變用戶應用II型負荷管理終端終端;低壓電力用戶的用電信息採集以配變臺區為單元建設採集系統,實現臺區下所有低壓電力用戶的用電信息採集,同時實現配變關口電能信息採集。
用電信息採集終端是對各信息採集點用電信息採集的設備。可以實現電能表數據的採集、數據管理、數據雙向傳輸以及轉發或執行控制命令的設備。用電信息採集終端按應用場所分為專變採集終端、集中抄表終端(包括集中器、採集器)、分布式能源監控終端等類型。
1) RMAN全庫備份
1、建立通道分配
通道公配是確定連接資料庫備份的設置個數,每設置一個設備就代表RMAN會自動啟動一個伺服器會話,由此來完成資料庫的備份與恢復的操作。
其語法如下:
RUN
{
ALLOCATE CHANNEL CHANNEL_NAME1 DEVICE TYPE TYPE_NAME1;
BACKUP...
}
進行資料庫備份時,為了讓資料庫正常完成備份操作,需要關閉資料庫並啟動MOUNT。
2、BACKUP使用
BACKUP命令主要用於備份資料庫中的對像。具體語法如下:
BACKUP [LEVEL] [BACKUP TYPE ] [OPTION]
ORACLE 資料庫的RMAN備份必須在ORACLE的歸檔模式下才能進行。
3、備份目錄建立
將磁碟存儲陣列根據數據備份要求,劃分生產庫與查詢庫共享空間,並分別掛載到生產庫與查詢庫,備份目錄名稱為DATAPUMP。
源端(生產庫)做資料庫全庫備份,代碼如下所示:
RMAN TARGET / log=/datapump/baknocom/full0421.log <<EOF
run {
ALLOCATE CHANNEL ch00 TYPE DISK;
…
ALLOCATE CHANNEL ch15 TYPE DISK;
BACKUP FORMAT '/datapump/baknocom/bk0421_%s_%p_%t' database;
BACKUP current CONTROLFILE format '/datapump/baknocom/contrl';
RELEASE CHANNEL ch00;
…
RELEASE CHANNEL ch15;
}
2)RMAN全庫還原
如果在歸檔模式或者非歸檔模式的MOUNT狀態備份的資料庫,產生的備份是一致的備份,恢復的時候需要如下文件:
Rman備份的參數文件、控制文件、數據文件。
查詢庫創建恢復目錄,創建恢復目錄時需要考慮資料庫的容量,這個容量的大小取決於生產庫資料庫容量的大小,創建恢復目錄分為連接恢復目錄的資料庫、創建恢復目錄的用戶、給恢復目錄用戶賦角色以及創建恢復目錄4個步驟。
1、連接恢復目錄的資料庫
恢復目錄的用戶就是指在生產庫資料庫中所使用的用戶,這個用戶與其它用戶不同,必須賦予recovery_catalog_owner的角色才可以。連接資料庫語法如下:
conn sea/sea***1234 ;
2、創建恢復目錄的用戶
create user sea ideneified by sea***1234
3、給恢復目錄用戶賦角色
創建的資料庫用戶是不能實現RMAN備份與恢復工作的,還需要給該用戶賦予權限和角色。
grant recovery_catalog_owner to sea
4、創建恢復目錄
使用恢復目錄用戶登錄資料庫後就可以創建恢復目錄,需要在恢復目錄管理器中完成
Connect catalog sea/sea***1234
查詢庫恢復腳本:
rman target / <<EOF
run{
set newname for datafile 1 to '/datapump/cxsea/rrac_system';
…
set newname for datafile 10 to '/datapump/cxsea/rrac_pbs5';
………………………………………………
allocate channel t1 device type disk;
…
allocate channel t32 device type disk;
restore controlfile from '/seaapp/oracle/product/10.2.0/db_1/dbs/c-2290404035-20150421-00';
alter database mount;
restore database;
switch datafile all;
}
EOF
3) Convert轉換
資料庫從生產庫AIX系統還原至查詢庫solaris系統後,由於是跨平臺數據還原,需要對數據文件進行convert處理,才能正常使用。
rman target / < startup mount
SQL> alter database open upgrade
SQL> spool upgrade_info.log SQL> @utlu112i.sql SQL> spool off
sql> alter session set nls_language='American'; sql> @dbupgdiag.sql sql> exit
接著開始運行升級腳本:
SQL> set echo on SQL> SPOOL upgrade.log SQL> @catupgrd.sql SQL> spool off
檢查資料庫狀態:
$ sqlplus "/as sysdba" SQL> STARTUP SQL> @utlu112s.sql
再運行下面的腳本:
SQL> @catuppst.sql
前面的升級腳本是運行在upgrade模式下,該腳本主要是在open模式下做些升級動作,不需要花很多時間。 接著重新編譯一下無效對象:
SQL> @utlrp.sql
以上所述僅是本發明的優選實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明技術原理的前提下,還可以做出若干改進和變形,這些改進和變形也應視為本發明的保護範圍。