青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 181  文章 - 15  trackbacks - 0
<2007年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

My Tech blog

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

4.不同版本數據庫之間的數據遷移

一旦你把程序和數據庫提交給用戶,那么只是重構開發數據庫結構就不是重構的全部了。比如,如果一列被從一個表移動到另外一個表,這個操作也許通過一條Sql語句完成,首先把這一列從源表中刪除,然后添加到目的表中。一旦重構好的系統處于穩定狀態并將提交給用戶的時候,我們就不得不面對不同版本之間數據的遷移。在這里,我們將要看到不同的數據遷移策略之于數據庫重構的不同影響。

4.1數據庫模式的版本化

我們需要把已有的數據庫數據遷移到新的數據庫中去。當然,在遷移過程當中,老的數據庫還將運轉。只有當數據的遷移完畢以后,老的數據庫模式才可以被摒棄。

新老數據庫模式的存在有幾種不同的方式。你首先可以以版本來區分它們。比如起名為schema V1,schema V2之類。

當然,數據庫中的表也同樣可以有版本號。比如Customer V1,Product V2,當然,這多少會給重構的結果帶來一些影響。畢竟,外健關系、約束、觸發器都是和表名有關系的。一旦新版本的模式被創建,諸如此類與表名有關系的部分可能都需要進行調整。

為了減少這種情況的發生,我們往往采取每一個模式對應一個版本號的方式。

模式的名稱讓程序能夠辨識現在正在使用的是那個版本。大量的經驗表明,這是數據遷移的一個先決條件。不要總以為大家都是使用的上一個版本的數據庫,而造成把前一個數據庫版本的數據混同更早版本的數據庫一起進行數據的遷移。因而每一個人都應當清楚他所使用的那個數據庫的版本是什么。

4.2遷移步驟

就像前面說的那樣,當開發的產品的受眾更多的時候,不要期待你的所有用戶都使用的是你的上一個版本的軟件。用戶往往會忽略一些版本的更新。

每進行一次數據遷移,新的數據庫版本就是下一次數據遷移的源端。

這樣,當新系統被安裝的時候,系統的版本識別器需要首先判斷當前的數據模式是什么版本,然后依版本逐次進行遷移,進而讓數據庫的版本達到最新的狀態。這就預示著每一個安裝包都要整合以前所有的數據遷移程序。對于那些跑了很長時間的重要系統,這就是個問題了。因為有些老的數據遷移程序已經不被新的操作系統所兼容了。在這種情況下,就需要做出一些判斷,挑選出那些真正適宜于當前操作系統的數據遷移程序進行打包發布。

不要讓客戶以為一步就能夠把老數據庫中的數據遷移到新的數據庫中來。甚至可能必須要進行更多的步驟來進行數據遷移。

dbrefactor3

4.3當數據量很大時

當數據量十分巨大時,數據遷移的時間長短就成為了問題。不能指望十億條數據在很短的時間內就完成轉移。而你總不能為了轉移數據讓銀行停止營業吧。

當然,從組織或技術視角看來,這個問題會有不同的解決辦法。從組織的角度,你就必須把握好什么時候去修改數據庫系統,什么時候遷移數據在時間上才是充足的。并以此為依據制定你的時間表。對于數據庫的遷移來說,圣誕節或者東方的一些節日是些不錯的選擇。

如果技術上允許的話,你可以嘗試進行增量遷移數據的方式。數據只會在系統要用到它們的時候才進行遷移。這樣的話,遷移的周期也會一定程度的延長,但是系統的活動總是不會被打斷。對那些需要7乘24小時運作的系統來說,這也是數據庫遷移的唯一途徑。

增量遷移的一個先決條件就是應用系統能夠同時使用多個數據庫的版本。當訪問數據庫的時候,系統必須知道從哪個數據庫能夠取得數據。所選擇的那些數據將總會被填充到新的數據庫中,然后舊數據庫中相對應的數據被刪除。一旦舊數據庫不再包含任何數據的時候,它就可以下崗了。

如果增量的數據遷移比你發布一個新版本應用程序的間歇期還要長,多于兩個的數據庫版本就會同時存在。

4.4數據遷移的技術

ETL工具可以大大簡化數據遷移。ETL即是Extract(抽取),Transform(轉換),Load(載入)。ETL工具支持從一個數據源抽取數據,把抽取出來的數據進行轉換,然后把它們裝載到目標數據庫中去。ETL工具通常被用來整合不同的應用。這讓它們在EAI(Enterprise Application Integration)領域里面變得舉足輕重。

不同版本之間的數據庫的數據遷移對于ETL來說只是一個附加用途。事實上,ETL被用來做比這重要的多的事情。這樣一個不幸的事實就產生了,作為附加用途來使用ETL,代價太昂貴了,畢竟ETL作為數據整合工具來發售,具有相當高的售價。

幸運的是,在各個數據庫之間提供了一個相對“便宜”的ETL工具,那就是--SQL。使用SQL語句,數據可以簡單的抽取出來(使用Select),然后載入到另一個數據庫中(使用Insert,Update)。然而,SQL并沒有直接提供數據轉換的能力,但是記錄表或存儲過程是可以拿過來解決這些問題的。在記錄表中,源和目標值總是能夠和某個字段進行對應。這樣對于一個字段中數據的遷移總是可以通過Insert-Select命令來實現。對于那些打算修改枚舉類型的顯示值的人來說,這是一種值得推薦的做法。比如如果一個字段以前用M來代表男性,用F來代表女性,而現在則分別要用0和1來取代它們,我們就可以做一個記錄表來指示這種對應。

 可能現實中的一些數據遷移要復雜得多,這就必須編寫專門的數據遷移程序來做這些事情。今天,很多數據庫平臺允許直接在數據庫中運行JAVA程序。這使得數據遷移受益匪淺,因為數據不再需要從數據庫傳送到受理數據遷移的主機。因而數據遷移的效率將會大大提高。

posted on 2007-08-16 22:19 littlegai 閱讀(179) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区三区久久| 亚洲一区二区三| 欧美噜噜久久久xxx| 久久久久久久性| 久久人人爽国产| 男女精品网站| 欧美日韩国产页| 国产精品久久久久久超碰| 国产精品热久久久久夜色精品三区 | 久久精品日韩| 麻豆9191精品国产| 欧美精品尤物在线| 国产欧美 在线欧美| 国产在线视频不卡二| 亚洲精品免费在线观看| 亚洲深夜福利| 蜜桃av综合| 中文精品99久久国产香蕉| 欧美在线啊v| 欧美精品免费在线| 国产视频精品xxxx| 亚洲免费观看| 久久久久久网址| 亚洲精品视频一区| 亚洲欧美三级伦理| 欧美国产精品v| 国产亚洲制服色| 国产日产欧美一区| 亚洲免费一级电影| 一本色道久久综合亚洲精品按摩| 午夜精品久久久久久久99水蜜桃 | 亚洲精品1区2区| 性欧美videos另类喷潮| 欧美a级一区二区| 午夜精品久久久久久久久久久久| 欧美激情视频一区二区三区不卡| 国语自产精品视频在线看| 夜夜精品视频一区二区| 狼人天天伊人久久| 小处雏高清一区二区三区| 欧美日韩国产999| 亚洲精品国产拍免费91在线| 久久久av网站| 亚洲欧美日韩精品在线| 欧美午夜免费| 亚洲一区二区三区乱码aⅴ| 欧美成人精品| 久久久久国产一区二区| 国产伦精品一区二区三区视频孕妇 | 亚洲欧美国产精品va在线观看| 免费国产自线拍一欧美视频| 国产午夜精品全部视频播放| 午夜欧美精品久久久久久久| 一本色道婷婷久久欧美| 欧美激情第一页xxx| 亚洲韩日在线| 欧美激情欧美激情在线五月| 久久这里只有| 亚洲黄一区二区| 欧美激情视频网站| 暖暖成人免费视频| 亚洲精品一区二区三区福利| 亚洲福利专区| 美女图片一区二区| 亚洲日本无吗高清不卡| 亚洲第一精品福利| 欧美精品一区二区三区在线播放 | 久久久久久国产精品mv| 亚洲在线播放| 国产午夜亚洲精品羞羞网站 | 在线看欧美视频| 国产视频在线观看一区| 欧美亚洲视频在线观看| 一区二区三区免费在线观看| 欧美日韩人人澡狠狠躁视频| 中文无字幕一区二区三区| 一本一本久久a久久精品综合妖精| 欧美亚洲第一区| 午夜视频在线观看一区二区| 午夜国产不卡在线观看视频| 国产综合色在线视频区| 欧美成人免费视频| 欧美精品一区二区三区高清aⅴ| 国产精品99久久久久久久久久久久| 99精品视频一区| 国产亚洲综合在线| 亚洲高清不卡一区| 国产精品久久久久天堂| 久久久久久久一区二区三区| 蜜桃av综合| 午夜欧美大尺度福利影院在线看| 久久成人久久爱| 日韩视频一区二区三区| 在线视频日韩精品| 激情文学综合丁香| 一区二区日本视频| 在线观看日韩国产| 99精品热6080yy久久| 国内精品久久久久久| 亚洲精品日本| 红桃视频欧美| 在线视频欧美日韩精品| 1024欧美极品| 亚洲愉拍自拍另类高清精品| 亚洲国产高潮在线观看| 亚洲一区二区成人| 亚洲人成欧美中文字幕| 欧美亚洲免费在线| 亚洲视频在线观看| 麻豆精品一区二区综合av| 欧美一二三区在线观看| 欧美日韩高清不卡| 免费视频一区| 国产亚洲毛片| 亚洲一区免费在线观看| 亚洲另类在线一区| 久久频这里精品99香蕉| 欧美中文字幕不卡| 国产精品久久国产愉拍 | 欧美一区二区三区免费看| 欧美第一黄网免费网站| 久久综合狠狠综合久久综合88 | 亚洲人人精品| 久久网站免费| 久久先锋资源| 一区在线观看| 久久久久中文| 女同性一区二区三区人了人一| 国产欧美丝祙| 午夜一级久久| 久久精品一区二区国产| 国产日韩欧美一区二区三区四区| 国产麻豆一精品一av一免费| 蜜月aⅴ免费一区二区三区 | 午夜老司机精品| 一区二区三区国产在线| 你懂的视频一区二区| 免费欧美高清视频| 在线精品一区二区| 久久久亚洲综合| 欧美ab在线视频| 亚洲欧洲免费视频| 欧美极品在线播放| 亚洲看片网站| 亚洲午夜在线观看| 国产精品入口尤物| 欧美一区二区国产| 久热综合在线亚洲精品| 亚洲电影免费观看高清完整版| 久久青草福利网站| 亚洲黑丝在线| 亚洲视频精品| 国产日产欧美一区| 久久漫画官网| 亚洲精选一区二区| 亚洲欧美国内爽妇网| 国产情人节一区| 久久精品国产精品亚洲综合| 欧美mv日韩mv国产网站app| 亚洲精品视频中文字幕| 欧美无砖砖区免费| 久久国产精品久久精品国产| 欧美成人精品高清在线播放| 99re热精品| 国产日本欧美一区二区| 巨乳诱惑日韩免费av| 亚洲精品国产欧美| 性色一区二区三区| 91久久精品日日躁夜夜躁欧美| 欧美日韩你懂的| 久久激情五月丁香伊人| 亚洲国产小视频在线观看| 欧美一区二区三区婷婷月色| 亚洲国产成人精品视频| 国产精品久久久久秋霞鲁丝| 久久夜色精品国产| 亚洲视频大全| 亚洲国产成人精品女人久久久 | 亚洲高清在线观看一区| 在线亚洲一区| 影音先锋成人资源站| 欧美日韩中文在线| 久久另类ts人妖一区二区| av成人动漫| 欧美国产日韩a欧美在线观看| 亚洲自拍偷拍视频| 亚洲精品免费在线播放| 国产资源精品在线观看| 欧美日韩在线精品一区二区三区| 久久精品国产成人| 亚洲永久免费观看| 亚洲精选在线观看| 欧美韩国日本综合| 亚洲国产视频直播| 欧美超级免费视 在线| 亚洲一区二区三区四区五区黄| 亚洲第一精品夜夜躁人人爽 | 国产精品久久夜| 欧美激情欧美激情在线五月| 久久er精品视频|