欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)遷移的方法及裝置的制作方法

文檔序號(hào):6352575閱讀:176來源:國(guó)知局

專利名稱::一種數(shù)據(jù)遷移的方法及裝置的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及數(shù)據(jù)遷移的
技術(shù)領(lǐng)域
,特別是涉及一種數(shù)據(jù)遷移的方法及一種數(shù)據(jù)遷移的裝置。
背景技術(shù)
:在信息化建設(shè)過程中,原有的信息系統(tǒng)不斷被功能更強(qiáng)大的新系統(tǒng)所取代。在新舊系統(tǒng)的切換過程中,必然要面臨一個(gè)數(shù)據(jù)遷移的問題。有的舊系統(tǒng)從啟用到被新系統(tǒng)取代,在其使用期間往往積累了大量珍貴的歷史數(shù)據(jù),其中許多歷史數(shù)據(jù)都是新系統(tǒng)順利啟用所必須的。數(shù)據(jù)遷移,就是將這些歷史數(shù)據(jù)進(jìn)行過濾、轉(zhuǎn)換,并裝載到新系統(tǒng)中的過程。數(shù)據(jù)遷移主要適用于一套舊系統(tǒng)切換到另一套新系統(tǒng),或多套舊系統(tǒng)切換到同一套新系統(tǒng)時(shí),需要將舊系統(tǒng)中的歷史數(shù)據(jù)轉(zhuǎn)換到新系統(tǒng)中的情況。受當(dāng)前的技術(shù)限制,目前一般數(shù)據(jù)遷移的速度還不夠理想,尤其是海量數(shù)據(jù)的遷移,例如將數(shù)據(jù)庫(kù)中的大量數(shù)據(jù)遷移到另一數(shù)據(jù)庫(kù)中,由于數(shù)據(jù)的數(shù)量巨大,完成全部數(shù)據(jù)的遷移可能需要數(shù)天甚至數(shù)周的時(shí)間?,F(xiàn)有技術(shù)中,對(duì)于海量數(shù)據(jù)的遷移一般是通過多次分批操作完成的,例如,針對(duì)100萬份用戶數(shù)據(jù),將每1萬份用戶數(shù)據(jù)分為一段,共分成100段,分批進(jìn)行遷移;然而,在海量數(shù)據(jù)遷移過程中,如果取數(shù)的位置很高,數(shù)據(jù)庫(kù)的存取效率將大大降低,本專利發(fā)明人在實(shí)際中發(fā)現(xiàn),當(dāng)從第1份用戶數(shù)據(jù)開始第一批取數(shù)(即從第1份數(shù)據(jù)開始取出ι萬份數(shù)據(jù))時(shí),耗時(shí)約為5分鐘;而當(dāng)從第50份用戶數(shù)據(jù)開始取出一萬份數(shù)據(jù)時(shí),耗時(shí)約為15分鐘。因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是如何能夠創(chuàng)新地提出一種數(shù)據(jù)遷移機(jī)制,用以提高數(shù)據(jù)遷移,尤其是海量數(shù)據(jù)遷移的效率,節(jié)省遷移時(shí)間。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是提供一種數(shù)據(jù)遷移的方法及一種數(shù)據(jù)遷移的裝置,用以提高數(shù)據(jù)遷移,尤其是海量數(shù)據(jù)遷移的效率,節(jié)省遷移時(shí)間。為了解決上述技術(shù)問題,本發(fā)明實(shí)施例公開了一種數(shù)據(jù)遷移的方法,包括連接源數(shù)據(jù)庫(kù)獲取符合預(yù)設(shè)條件的源數(shù)據(jù),所述源數(shù)據(jù)具有字段索引信息,所述預(yù)設(shè)條件為針對(duì)字段索引信息設(shè)置的提取條件;連接目標(biāo)數(shù)據(jù)庫(kù)將所獲取的源數(shù)據(jù)存為目標(biāo)數(shù)據(jù)。優(yōu)選的,所述源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)位于不同服務(wù)器中,所述的方法還包括在遷移開始前,將源數(shù)據(jù)庫(kù)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)所在的服務(wù)器,并將源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)配置到同一個(gè)數(shù)據(jù)庫(kù)端口上。優(yōu)選的,所述的方法,還包括將使用過的字段索引信息寫入緩存。優(yōu)選的,所述的方法,還包括在將源數(shù)據(jù)存到目標(biāo)數(shù)據(jù)庫(kù)之前,將所述源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)所要求的格式。優(yōu)選的,所述將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)所要求的格式的步驟包括按照目標(biāo)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)對(duì)源數(shù)據(jù)進(jìn)行轉(zhuǎn)換;若數(shù)值含義發(fā)生變化,則對(duì)目標(biāo)數(shù)據(jù)的數(shù)值進(jìn)行修正;按照目標(biāo)數(shù)據(jù)的名稱對(duì)源數(shù)據(jù)進(jìn)行更新。本發(fā)明實(shí)施例還公開了一種數(shù)據(jù)遷移的裝置,包括源數(shù)據(jù)提取模塊,用于連接源數(shù)據(jù)庫(kù)獲取符合預(yù)設(shè)條件的源數(shù)據(jù),所述源數(shù)據(jù)具有字段索引信息,所述預(yù)設(shè)條件為針對(duì)字段索引信息設(shè)置的提取條件;目標(biāo)數(shù)據(jù)存儲(chǔ)模塊,用于連接目標(biāo)數(shù)據(jù)庫(kù)將所獲取的源數(shù)據(jù)存為目標(biāo)數(shù)據(jù)。優(yōu)選的,所述源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)位于不同服務(wù)器中,所述的裝置還包括源數(shù)據(jù)備份模塊,用于在遷移開始前,將源數(shù)據(jù)庫(kù)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)所在的服務(wù)器,并將源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)配置到同一個(gè)數(shù)據(jù)庫(kù)端口上。優(yōu)選的,所述的裝置,還包括緩存模塊,用于將使用過的字段索引信息寫入緩存。優(yōu)選的,所述的裝置,還包括轉(zhuǎn)換模塊,用于在將源數(shù)據(jù)存到目標(biāo)數(shù)據(jù)庫(kù)之前,將所述源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)所要求的格式。優(yōu)選的,所述轉(zhuǎn)換模塊包括格式轉(zhuǎn)換子模塊,用于按照目標(biāo)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)對(duì)源數(shù)據(jù)進(jìn)行轉(zhuǎn)換;數(shù)值修正子模塊,用于在數(shù)值含義發(fā)生變化時(shí),對(duì)目標(biāo)數(shù)據(jù)的數(shù)值進(jìn)行修正;名稱更新子模塊,用于按照目標(biāo)數(shù)據(jù)的名稱對(duì)源數(shù)據(jù)進(jìn)行更新。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明通過分析源數(shù)據(jù)特征,在已建索引的字段上按照預(yù)設(shè)條件提取當(dāng)前批次需要遷移的數(shù)據(jù),而不按照數(shù)據(jù)位置提取,從而避免取數(shù)位置高時(shí)的效率低下問題,有效提高了數(shù)據(jù)遷移的效率,節(jié)省了數(shù)據(jù)遷移的時(shí)間。在本發(fā)明的優(yōu)選實(shí)施例還可以在遷移開始前,先將源數(shù)據(jù)庫(kù)整個(gè)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)所在的服務(wù)器上,并配置到同一個(gè)數(shù)據(jù)庫(kù)端口(實(shí)例)上。在操作時(shí),就可以利用SQL直接讀取操作新舊數(shù)據(jù)庫(kù)中的數(shù)據(jù),從而更進(jìn)一步提高數(shù)據(jù)遷移效率,節(jié)省數(shù)據(jù)遷移的時(shí)間。在本發(fā)明的優(yōu)選實(shí)施例還可以將使用過的字段索引信息寫入緩存,這樣下次使用時(shí)可以高速讀取,減少數(shù)據(jù)庫(kù)操作。從而進(jìn)一步提高數(shù)據(jù)遷移效率,節(jié)省數(shù)據(jù)遷移時(shí)間。圖1是本發(fā)明的一種數(shù)據(jù)遷移方法實(shí)施例1的流程圖;圖2是本發(fā)明的一種數(shù)據(jù)遷移方法實(shí)施例2的流程圖;圖3是本發(fā)明的一種數(shù)據(jù)遷移方法實(shí)施例3的流程圖;圖4是本發(fā)明的一種數(shù)據(jù)遷移裝置實(shí)施例的結(jié)構(gòu)框圖。具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。參考圖1,示出了本發(fā)明的一種數(shù)據(jù)遷移的方法實(shí)施例1的流程圖,具體可以包括以下步驟步驟101、連接源數(shù)據(jù)庫(kù)獲取符合預(yù)設(shè)條件的源數(shù)據(jù),所述源數(shù)據(jù)具有字段索引信息,所述預(yù)設(shè)條件為針對(duì)字段索引信息設(shè)置的提取條件;步驟102、連接目標(biāo)數(shù)據(jù)庫(kù)將所獲取的源數(shù)據(jù)存為目標(biāo)數(shù)據(jù)。本發(fā)明實(shí)施例通過分析源數(shù)據(jù)特征,在已建索引的字段上按照預(yù)設(shè)條件提取當(dāng)前批次需要遷移的數(shù)據(jù),而不按照數(shù)據(jù)位置提取,從而避免取數(shù)位置高時(shí)的效率低下問題,有效提高了數(shù)據(jù)遷移的效率,節(jié)省了數(shù)據(jù)遷移的時(shí)間。在具體實(shí)現(xiàn)中,可以使用SQL從源數(shù)據(jù)庫(kù)獲取數(shù)據(jù),公知的是,SQL是高級(jí)的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對(duì)數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫(kù)系統(tǒng),可以使用相同的SQL語言作為數(shù)據(jù)輸入與管理的接口。它以記錄集合作為操作對(duì)象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語句可以嵌套,這使他具有極大的靈活性和強(qiáng)大的功能。具體而言,SQL可以面向數(shù)據(jù)庫(kù)執(zhí)行查詢;SQL可從數(shù)據(jù)庫(kù)取回?cái)?shù)據(jù);SQL可在數(shù)據(jù)庫(kù)中插入新的記錄;SQL可更新數(shù)據(jù)庫(kù)中的數(shù)據(jù);SQL可從數(shù)據(jù)庫(kù)刪除記錄;SQL可創(chuàng)建新數(shù)據(jù)庫(kù);SQL可在數(shù)據(jù)庫(kù)中創(chuàng)建新表;SQL可在數(shù)據(jù)庫(kù)中創(chuàng)建存儲(chǔ)過程;SQL可在數(shù)據(jù)庫(kù)中創(chuàng)建視圖;SQL可以設(shè)置表、存儲(chǔ)過程和視圖的權(quán)限。SQL可與數(shù)據(jù)庫(kù)程序協(xié)同工作,比如MSAccess,DB2,Informix,MSSQLServer、Oracle、Sybase以及其他數(shù)據(jù)庫(kù)系統(tǒng)。例如,可以采用以下SQL代碼獲取當(dāng)前批次需要遷移的數(shù)據(jù)SELECTtable,column...FROMtableWHEREuid>200000ANDuid<210000;其中,WHEREuid>200000ANDuid<210000即針對(duì)字段索引信息uid設(shè)置的提取條件。應(yīng)用本發(fā)明實(shí)施例,經(jīng)測(cè)試,取010000區(qū)間中的數(shù)據(jù)耗時(shí)5分鐘,取10000001010000區(qū)間中數(shù)據(jù)耗時(shí)為5分鐘,性能保持不變。參考圖2,示出了本發(fā)明的一種數(shù)據(jù)遷移的方法實(shí)施例2的流程圖,具體可以包括以下步驟步驟201、將源數(shù)據(jù)庫(kù)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)所在的服務(wù)器,并將源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)配置到同一個(gè)數(shù)據(jù)庫(kù)端口上;步驟202、連接源數(shù)據(jù)庫(kù)獲取符合預(yù)設(shè)條件的源數(shù)據(jù),所述源數(shù)據(jù)具有字段索引信息,所述預(yù)設(shè)條件為針對(duì)字段索引信息設(shè)置的提取條件;步驟203、連接目標(biāo)數(shù)據(jù)庫(kù)將所獲取的源數(shù)據(jù)存為目標(biāo)數(shù)據(jù)。在實(shí)際中,源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)通常不在同一個(gè)服務(wù)器中。為了遷移數(shù)據(jù),需要連接源數(shù)據(jù)庫(kù)讀取數(shù)據(jù),然后再連接目標(biāo)數(shù)據(jù)庫(kù)存入數(shù)據(jù)。在數(shù)據(jù)量很大的情況下,頻繁連接兩個(gè)數(shù)據(jù)庫(kù),也將影響執(zhí)行效率。為解決此問題,本實(shí)施例在遷移開始前,先將源數(shù)據(jù)庫(kù)整個(gè)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)所在的服務(wù)器上,并配置到同一個(gè)數(shù)據(jù)庫(kù)端口(實(shí)例)上。在操作時(shí),就可以利用SQL直接讀取操作新舊數(shù)據(jù)庫(kù)中的數(shù)據(jù),從而提高效率。例如,當(dāng)源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)不在同一服務(wù)器上時(shí),通過以下SQL代碼執(zhí)行數(shù)據(jù)遷移操作$tmpdata=$db_old->fetchAll(iSELECT^FROMtablel,);$db_new->insert(<table2',$tmpdata);當(dāng)源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)配置到同一個(gè)端口時(shí),則采用以下SQL代碼執(zhí)行數(shù)據(jù)遷移操作$db_both->query('INSERTINTOdb_new.table2SELECT*FR0Mdb_old.tablel');采用本實(shí)施例將進(jìn)一步提高數(shù)據(jù)遷移的效率,節(jié)省數(shù)據(jù)遷移的時(shí)間。參考圖3,示出了本發(fā)明的一種數(shù)據(jù)遷移的方法實(shí)施例3的流程圖,具體可以包括以下步驟步驟301、將源數(shù)據(jù)庫(kù)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)所在的服務(wù)器,并將源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)配置到同一個(gè)數(shù)據(jù)庫(kù)端口上;步驟302、連接源數(shù)據(jù)庫(kù)獲取符合預(yù)設(shè)條件的源數(shù)據(jù),所述源數(shù)據(jù)具有字段索引信息,所述預(yù)設(shè)條件為針對(duì)字段索引信息設(shè)置的提取條件;步驟303、將所述源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)所要求的格式。步驟304、連接目標(biāo)數(shù)據(jù)庫(kù)將所述源數(shù)據(jù)存為目標(biāo)數(shù)據(jù)。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)所要求的格式的步驟303,具體可以包括以下子步驟子步驟Si、按照目標(biāo)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)對(duì)源數(shù)據(jù)進(jìn)行轉(zhuǎn)換;子步驟S2、若數(shù)值含義發(fā)生變化,則對(duì)目標(biāo)數(shù)據(jù)的數(shù)值進(jìn)行修正;子步驟S3、按照目標(biāo)數(shù)據(jù)的名稱對(duì)源數(shù)據(jù)進(jìn)行更新。在實(shí)際中,新系統(tǒng)與舊系統(tǒng)在數(shù)據(jù)格式上往往存在不一致,需要進(jìn)行遷移工作。遷移過程為針對(duì)每一個(gè)需要遷轉(zhuǎn)的數(shù)據(jù)項(xiàng),從舊的庫(kù)中讀取出數(shù)據(jù),處理成為新版的格式,然后存儲(chǔ)到新版的數(shù)據(jù)庫(kù)中去。例如,數(shù)據(jù)項(xiàng)可以包括用戶名稱、用戶頭像、好友信息、消息信息、動(dòng)態(tài)信息、用戶評(píng)論、博客、相冊(cè)等。新舊數(shù)據(jù)在遷移時(shí)需要解決的變化有三方面結(jié)構(gòu)變化、數(shù)值變化、名稱變化。第一、數(shù)據(jù)結(jié)構(gòu)變化新系統(tǒng)中部分?jǐn)?shù)據(jù)存儲(chǔ)的結(jié)構(gòu)與舊系統(tǒng)不同,必須將舊數(shù)據(jù)導(dǎo)出后進(jìn)行重新整理,按照新系統(tǒng)的格式進(jìn)行錄入。例如“好友消息”模塊保存用戶與用戶之間互相發(fā)送的消息。原格式為發(fā)送的消息保存在發(fā)送表中作為一條記錄,接收的消息在接收表中作為一條記錄。分析發(fā)現(xiàn)發(fā)送和接收其實(shí)是一條,針對(duì)不同對(duì)象有不同含義而已。所以,新結(jié)構(gòu)中合并為一條,通過增加接收標(biāo)志和發(fā)送標(biāo)志的字段來滿足功能應(yīng)用。第二、數(shù)值變化新系統(tǒng)中數(shù)據(jù)字典與舊系統(tǒng)不完全一致,對(duì)于數(shù)值含義發(fā)生變化的,需要在遷移時(shí)進(jìn)行數(shù)據(jù)修正。例如“好友關(guān)系”模塊,在舊系統(tǒng)中的定義數(shù)值6-同事;數(shù)值7-同學(xué)......在新系統(tǒng)中數(shù)值2-同事;數(shù)值5-同學(xué);所以,需要在遷移時(shí)將數(shù)值6修正為2,將7修正為5。第三、名稱變化新系統(tǒng)的數(shù)據(jù)表為全新設(shè)計(jì)的,所以大量的表名、列名與舊系統(tǒng)不同。例如“用戶博客”模塊,原數(shù)據(jù)存儲(chǔ)于blog表的id字段中,遷移至新系統(tǒng)時(shí)要存儲(chǔ)在uc_blog表的blogid字段中。例如,通過以下SQL代碼進(jìn)行數(shù)據(jù)遷移‘blog'=>array(‘id'=>array('table'=>'uh_blog','field'=>'blogid',‘table2'=>'uh_blogfield',‘field2'=>'blogid'),上述編碼含義為源數(shù)據(jù)為舊系統(tǒng)blog表中id字段的數(shù)值目標(biāo)地址為新系統(tǒng)uh_blog表中blogid字段同時(shí)要將數(shù)據(jù)放入新系統(tǒng)uh_blogfield表中blogid字段。在具體實(shí)現(xiàn)中,為了保證新平臺(tái)與舊平臺(tái)的數(shù)據(jù)一致性,在數(shù)據(jù)遷移的過程中可以使用PHP程序鏈接源數(shù)據(jù)庫(kù)對(duì)每個(gè)字段進(jìn)行單獨(dú)處理、轉(zhuǎn)換,然后將轉(zhuǎn)換后的數(shù)據(jù)寫入目標(biāo)數(shù)據(jù)庫(kù);并在數(shù)據(jù)寫入目標(biāo)數(shù)據(jù)庫(kù)后再做一致性檢查。如果發(fā)現(xiàn)某條數(shù)據(jù)不存在或不完整(通過遷移日志和遷移過程中遷移程序是否突然中斷來判斷),則重新遷移當(dāng)前條目的數(shù)據(jù)(可以批量遷移數(shù)據(jù),也可以一次遷移一個(gè)或幾個(gè)條目)。增量數(shù)據(jù)的遷移即是從第一次遷移后的最后條目加一處開始讀取數(shù)據(jù),并進(jìn)行遷移。在遷移過程中,有一些數(shù)據(jù)會(huì)在多個(gè)遷移環(huán)節(jié)中使用,例如用戶的ID和用戶名。每次使用時(shí)去數(shù)據(jù)庫(kù)取,將也會(huì)影響到數(shù)據(jù)遷移的效率。針對(duì)此問題,本發(fā)明實(shí)施例還可以包括以下步驟將使用過的字段索引信息寫入緩存。例如存放在memcached中,下次使用時(shí)可以高速讀取,減少數(shù)據(jù)庫(kù)操作。從而進(jìn)一步提高數(shù)據(jù)遷移效率,節(jié)省數(shù)據(jù)遷移時(shí)間。為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,以下以某網(wǎng)站舊版空間博客相冊(cè)數(shù)據(jù)遷移至新版空間博客相冊(cè)的操作為例,對(duì)本發(fā)明更進(jìn)一步說明。應(yīng)用本發(fā)明,在遷移過程中,需要保障遷移數(shù)據(jù)的完整性和遷移時(shí)間在可容忍的時(shí)間范圍內(nèi),并且遷移過程中減少人為干預(yù)次數(shù),實(shí)現(xiàn)遷移過程的平穩(wěn)和高效。此外,新舊空間產(chǎn)品的數(shù)據(jù)都是存儲(chǔ)在Mysql數(shù)據(jù)庫(kù)中。對(duì)數(shù)據(jù)的操作(如讀取、寫入)都需要進(jìn)行SQL查詢來完成。一、準(zhǔn)備工作1、線上DB服務(wù)器帳號(hào)、密碼、IP、端口、訪問權(quán)限、準(zhǔn)備設(shè)置;2、本地綁定線上前端IP,HOST綁定。3、工具程序放在tools目錄,。tools目錄下是所有的工具程序和控制遷移文件列表。4、自動(dòng)執(zhí)行的TOB程序{{4.1、用戶數(shù)據(jù)(user)-用戶基本數(shù)據(jù)、用戶好友關(guān)系4.2、博文數(shù)據(jù)(blog)-用戶博文數(shù)據(jù)。包括內(nèi)容詳情、TAG和分類數(shù)據(jù)4.3、照片遷移(photo)-包括照片基本信息、和照片訪問地址4.4、相冊(cè)數(shù)據(jù)(album)-相冊(cè)基本信息4.5、好友關(guān)系(friend)—好友關(guān)系整理4.6、博文分類(blogcate)-博文分類數(shù)據(jù)整理、寫入4.7、統(tǒng)計(jì)數(shù)據(jù)(stat)--相應(yīng)的統(tǒng)計(jì)數(shù)據(jù)整理、更新4.8、博文置頂(blogtop)-整理舊的博文置頂數(shù)據(jù),新數(shù)據(jù)存儲(chǔ)成序列化格式4.9、上一篇、下一篇博文(blognear)-自動(dòng)更新博文的上一篇下一篇字段中的值4.10、用戶頭像的整理遷移(avatar)-轉(zhuǎn)換用戶頭像數(shù)據(jù),重新存儲(chǔ)到新的服務(wù)器上}}5、使用瀏覽器進(jìn)行數(shù)據(jù)的遷移;6、所有遷移日志均存儲(chǔ)在遷移目錄的LOG目錄內(nèi)。二、開始遷移1、所有需要遷移的舊數(shù)據(jù),先備份到一個(gè)單獨(dú)的地方,然后,再使用備份數(shù)據(jù)進(jìn)行遷移工作。增量數(shù)據(jù)在第一遍遷移完畢后進(jìn)行。2、開始先把uchome程序拷貝至要布署新程序的服務(wù)器上。確保UCh0me/y0ka_upgrade存在。3,綁定外網(wǎng)測(cè)試IP;4、檢查配置文件在程序遷移前一定要檢查下配置文件是否正確5、遷移默認(rèn)的UCHOME和UCENTER的數(shù)據(jù)庫(kù)結(jié)構(gòu){{5.1、進(jìn)入docs目錄。cddocs5.2、導(dǎo)入ucenter數(shù)據(jù)表的結(jié)構(gòu)。5.3、導(dǎo)入uchome表的數(shù)據(jù)結(jié)構(gòu)。}}6、遷移原blog庫(kù)的數(shù)據(jù)表結(jié)構(gòu)及其數(shù)據(jù){{6.1、把地址替換為原空間blog數(shù)據(jù)庫(kù)所在服務(wù)器的IP。{6.1.1、創(chuàng)建新目錄:mkdirbackdata6.1.2、進(jìn)入目錄cdbackdata}6.2、執(zhí)行下面的SQL語句備份這些表結(jié)構(gòu)和數(shù)據(jù)6.3、整理這些備份數(shù)據(jù)cat*,sql>allblogtable.sql6.4、把備份數(shù)據(jù)導(dǎo)入到新的庫(kù)里面。{6.4.1、導(dǎo)入博客的數(shù)據(jù)表結(jié)構(gòu)和數(shù)據(jù)mysql-h59.151.9.117-uroot-p-Bup_uh<allblogtable.sql6.4.2、更改表名稱(執(zhí)行如下語句)7、其它操作{把“的空間”改成“的博客“}8、執(zhí)行去除索引方法9、通過TOB方式進(jìn)行數(shù)據(jù)遷移{{9.1、同步用戶數(shù)據(jù)9.2、同步博文9.3、同步博文分類9.4、同步相冊(cè)9.5、同步照片9.6、重新整理好友關(guān)系9.7、重新統(tǒng)計(jì)9.8、修改用戶的鏈接模塊的數(shù)據(jù)。9.9、用戶頭像10、轉(zhuǎn)換頭圖的操作11、更新封號(hào)的用戶的相關(guān)操作11.1、鎖定用戶不可用(更新)11.2、被鎖定的用戶RSS不能更新12、程序上線后,更新原來所調(diào)的JS的接口13、執(zhí)行恢復(fù)索引方法14、在數(shù)據(jù)庫(kù)中執(zhí)行SQL語句遷移評(píng)論留言數(shù)據(jù)15、平行遷移的數(shù)據(jù)16、yk_blog_set數(shù)據(jù)表的遷移工作17、其余的操作{{17.1、更新domain語句,原來的domain數(shù)據(jù)在yk_blog_set表中17.2、更新好友統(tǒng)計(jì)數(shù)17.3、增加索引17.4、在message中添加新表。17.5、修改頭圖字段類型需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。參考圖4,示出了本發(fā)明的一種數(shù)據(jù)遷移的裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括源數(shù)據(jù)提取模塊401,用于連接源數(shù)據(jù)庫(kù)獲取符合預(yù)設(shè)條件的源數(shù)據(jù),所述源數(shù)據(jù)具有字段索引信息,所述預(yù)設(shè)條件為針對(duì)字段索引信息設(shè)置的提取條件;目標(biāo)數(shù)據(jù)存儲(chǔ)模塊402,用于連接目標(biāo)數(shù)據(jù)庫(kù)將所獲取的源數(shù)據(jù)存為目標(biāo)數(shù)據(jù)。本發(fā)明實(shí)施例通過分析源數(shù)據(jù)特征,在已建索引的字段上按照預(yù)設(shè)條件提取當(dāng)前批次需要遷移的數(shù)據(jù),而不按照數(shù)據(jù)位置提取,從而避免取數(shù)位置高時(shí)的效率低下問題,有效提高了數(shù)據(jù)遷移的效率,節(jié)省了數(shù)據(jù)遷移的時(shí)間。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)位于不同服務(wù)器中,所述的裝置還可以包括源數(shù)據(jù)備份模塊100,用于在遷移開始前,將源數(shù)據(jù)庫(kù)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)所在的服務(wù)器,并將源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)配置到同一個(gè)數(shù)據(jù)庫(kù)端口上。應(yīng)用本實(shí)施例,可以利用SQL直接讀取操作新舊數(shù)據(jù)庫(kù)中的數(shù)據(jù),從而提高效率。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述數(shù)據(jù)遷移裝置還可以包括轉(zhuǎn)換模塊103,用于在將源數(shù)據(jù)存到目標(biāo)數(shù)據(jù)庫(kù)之前,將所述源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)所要求的格式。作為一種具體應(yīng)用的示例,所述轉(zhuǎn)換模塊可以包括如下子模塊格式轉(zhuǎn)換子模塊,用于按照目標(biāo)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)對(duì)源數(shù)據(jù)進(jìn)行轉(zhuǎn)換;數(shù)值修正子模塊,用于在數(shù)值含義發(fā)生變化時(shí),對(duì)目標(biāo)數(shù)據(jù)的數(shù)值進(jìn)行修正;名稱更新子模塊,用于按照目標(biāo)數(shù)據(jù)的名稱對(duì)源數(shù)據(jù)進(jìn)行更新。在具體實(shí)現(xiàn)中,所述的裝置,其特征在于,還包括緩存模塊,用于將使用過的字段索引信息寫入緩存。應(yīng)用本實(shí)施例可以減少數(shù)據(jù)庫(kù)操作。從而進(jìn)一步提高數(shù)據(jù)遷移效率,節(jié)省數(shù)據(jù)遷移時(shí)間。由于本實(shí)施例基本相應(yīng)于前述的方法實(shí)施例,故本實(shí)施例的描述中未詳盡之處,可以參見前述實(shí)施例中的相關(guān)說明,在此就不贅述了。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。本發(fā)明可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如多處理器系統(tǒng)、服務(wù)器、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。以上對(duì)本發(fā)明所提供的一種數(shù)據(jù)遷移的方法及一種數(shù)據(jù)遷移的裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。權(quán)利要求1.一種數(shù)據(jù)遷移的方法,其特征在于,包括連接源數(shù)據(jù)庫(kù)獲取符合預(yù)設(shè)條件的源數(shù)據(jù),所述源數(shù)據(jù)具有字段索引信息,所述預(yù)設(shè)條件為針對(duì)字段索引信息設(shè)置的提取條件;連接目標(biāo)數(shù)據(jù)庫(kù)將所獲取的源數(shù)據(jù)存為目標(biāo)數(shù)據(jù)。2.如權(quán)利要求1所述的方法,其特征在于,所述源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)位于不同服務(wù)器中,所述的方法還包括在遷移開始前,將源數(shù)據(jù)庫(kù)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)所在的服務(wù)器,并將源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)配置到同一個(gè)數(shù)據(jù)庫(kù)端口上。3.如權(quán)利要求1或2所述的方法,其特征在于,還包括將使用過的字段索引信息寫入緩存。4.如權(quán)利要求1或2所述的方法,其特征在于,還包括在將源數(shù)據(jù)存到目標(biāo)數(shù)據(jù)庫(kù)之前,將所述源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)所要求的格式。5.如權(quán)利要求4所述的方法,其特征在于,所述將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)所要求的格式的步驟包括按照目標(biāo)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)對(duì)源數(shù)據(jù)進(jìn)行轉(zhuǎn)換;若數(shù)值含義發(fā)生變化,則對(duì)目標(biāo)數(shù)據(jù)的數(shù)值進(jìn)行修正;按照目標(biāo)數(shù)據(jù)的名稱對(duì)源數(shù)據(jù)進(jìn)行更新。6.一種數(shù)據(jù)遷移的裝置,其特征在于,包括源數(shù)據(jù)提取模塊,用于連接源數(shù)據(jù)庫(kù)獲取符合預(yù)設(shè)條件的源數(shù)據(jù),所述源數(shù)據(jù)具有字段索引信息,所述預(yù)設(shè)條件為針對(duì)字段索引信息設(shè)置的提取條件;目標(biāo)數(shù)據(jù)存儲(chǔ)模塊,用于連接目標(biāo)數(shù)據(jù)庫(kù)將所獲取的源數(shù)據(jù)存為目標(biāo)數(shù)據(jù)。7.如權(quán)利要求6所述的裝置,其特征在于,所述源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)位于不同服務(wù)器中,所述的裝置還包括源數(shù)據(jù)備份模塊,用于在遷移開始前,將源數(shù)據(jù)庫(kù)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)所在的服務(wù)器,并將源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)配置到同一個(gè)數(shù)據(jù)庫(kù)端口上。8.如權(quán)利要求6或7所述的裝置,其特征在于,還包括緩存模塊,用于將使用過的字段索引信息寫入緩存。9.如權(quán)利要求6或7所述的裝置,其特征在于,還包括轉(zhuǎn)換模塊,用于在將源數(shù)據(jù)存到目標(biāo)數(shù)據(jù)庫(kù)之前,將所述源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)所要求的格式。10.如權(quán)利要求9所述的裝置,其特征在于,所述轉(zhuǎn)換模塊包括格式轉(zhuǎn)換子模塊,用于按照目標(biāo)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)對(duì)源數(shù)據(jù)進(jìn)行轉(zhuǎn)換;數(shù)值修正子模塊,用于在數(shù)值含義發(fā)生變化時(shí),對(duì)目標(biāo)數(shù)據(jù)的數(shù)值進(jìn)行修正;名稱更新子模塊,用于按照目標(biāo)數(shù)據(jù)的名稱對(duì)源數(shù)據(jù)進(jìn)行更新。全文摘要本發(fā)明公開了一種數(shù)據(jù)遷移的方法,包括連接源數(shù)據(jù)庫(kù)獲取符合預(yù)設(shè)條件的源數(shù)據(jù),所述源數(shù)據(jù)具有字段索引信息,所述預(yù)設(shè)條件為針對(duì)字段索引信息設(shè)置的提取條件;連接目標(biāo)數(shù)據(jù)庫(kù)將所獲取的源數(shù)據(jù)存為目標(biāo)數(shù)據(jù)。本發(fā)明可以提高數(shù)據(jù)遷移,尤其是海量數(shù)據(jù)遷移的效率,節(jié)省遷移時(shí)間。文檔編號(hào)G06F17/30GK102063500SQ20111000061公開日2011年5月18日申請(qǐng)日期2011年1月4日優(yōu)先權(quán)日2011年1月4日發(fā)明者劉國(guó)柱申請(qǐng)人:北京凱銘風(fēng)尚網(wǎng)絡(luò)技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
开阳县| 布拖县| 汝阳县| 长泰县| 陵川县| 秭归县| 潞城市| 依安县| 北安市| 福鼎市| 太康县| 三明市| 荥经县| 浏阳市| 翼城县| 通许县| 吴忠市| 肥西县| 阿荣旗| 巩义市| 遂宁市| 镇沅| 大同市| 鲜城| 阿图什市| 丹阳市| 临泉县| 五家渠市| 托里县| 安仁县| 建平县| 德保县| 鱼台县| 泗洪县| 上饶县| 高安市| 河津市| 武宣县| 育儿| 泌阳县| 开远市|