mysql資料庫的無縫遷移(百度技術沙龍開放空間環境討論主題)

來源:互聯網
上載者:User

[文章作者:孫立 連結:http://www.cnblogs.com/sunli/ 更新時間:2010-09-12]    

      昨天(9月11號)參加了infoq和百度共同舉辦的技術沙龍《MySQL效能最佳化及空間資料庫開發實踐》,百度的劉斌分享的內容相信對目前正欲使用ssd來提升mysql效能的朋友非常有協助,同時,個人覺得ssd在其他資料存放區上也有很大的空間。顏勳講的空間資料庫方面的,我平時沒有怎麼接觸過,不過看起來應該也是非常不錯,應該對做地理資訊的朋友很有協助。最後的open space環境有兩個小組討論了一些問題,但是最後沒有什麼答案,正好我有些類似的經驗,所以也就分享了下。

       mysql資料庫的無縫遷移問題?

     問:在平時的開始過程中,由於經常“需求理解,架構設計,需求變更”等多種原因,導致系統運行一段時間後,資料庫的表結構需要變更,如何?盡量短的停機,實現無縫的遷移?

     我開玩笑說,最好的解決辦法就是不遷移。不遷移肯定最好,這要依賴於非常好的設計,在前期架構設計的時候能夠考慮到需求可能的變更,資料庫設計也可以根據業務來進行一定程度的抽象。這可能有點太理想,不過遷移資料,始終是個不可避免的問題。下面說下一般的遷移方案。

     定點停機遷移

     就像那位朋友說的,在一個月黑風高的夜晚,停掉應用,用事先寫好的遷移程式,把mysql 資料庫資料移轉到新結構的mysql資料庫中。完成後,切換應用。最大的缺點就是隨著資料量的增加停機時間會變得非常長。

    mysql binlog方案

     mysql的遷移可以考慮mysql的主從複製 replication的特性,解析binlog日誌出來,然後根據新的業務特點設計的資料庫結構,把資料寫入到新的資料庫,運行遷移過程不需要停機。在資料移轉基本上完成的時候,停掉前段應用,等待遷移全部完成,切換應用到新庫。停機時間非常短,只需要幾乎1-2分鐘或者更少。

    觸發器方案

     備份老的mysql資料表結構到新的mysql資料庫,在新庫建立新的表結構,更改老的資料庫表,建立觸發器,讓資料的寫入的時候同時寫入到的心的mysql表。dump老的mysql的資料,匯入到新的mysql,這是新的mysql表結構的表應該已經有相應的資料了。然後開啟主從複製,讓其達到跟主庫資料一致。切換應用,遷移到的方案。停機時間非常短,只需要幾乎1-2分鐘或者更少。

     mysql udf方案

     mysql的udf允許你開發自己的函數整合到mysql中,這樣你可以很方便的在資料寫入的時候同時寫到的其他地方。缺點是開發成本大,需要對mysql udf有瞭解。也可以用現成的memcached_functions_mysql和lib_mysqludf_json來實現,你就不需要編寫udf函數了,只需要實現一個memcached的服務端來接受資料,然後解析json到新的資料庫就OK了。memcached協議非常簡單,自己實現起來也很容易。這種方案的遷移時間也會非常短。

    中介軟體方案

    這種方案必須要你的應用串連資料使用了類似中介層的方案,你只需要在中介層增加同時往新庫寫資料就OK了。這種方案的依賴比較大,相信小一點的公司可能都沒有條件。

    總結:要實現無縫遷移,成本和難度肯定會增加,這需要結合你的業務需要來具體實施。遷移方案需要進行充分的測試,以及考慮出錯的復原方案。

    

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.