SQL Server數據遷移至MySQL

背景:


我所在公司的官網使用了PHP進行重新開發,拋棄了原有.net開發環境,但需要使用到老官網的一些數據,所以需要進行數據遷移。


環境如下:

老官網:Windows Server 2008 R2, SQL Server 2008 R2

新官網:RedHat 6.5,MySQL,PHP...


====================我是分割線=========================


目前網絡上有很多軟件聲稱是可以進行SQL Server-> My SQL的數據遷移,比如OBDB2DB,但我嘗試轉換不成功,其他類似的小軟件,我也沒去測試。在這裏我使用了MySQL官方提供的MySQL WorkBench,此軟件功能強大,既可以設計開發數據庫,也可以進行數據轉移。具體鏈接,請大家自行去MySQL官網查找。


MySQL workbench安裝過程略,具體遷移過程如下:


打開MySQL workbench->Database->Migration wizard->Start Migration.


wKiom1ZqNKCQtWm4AACwJWN0rPI090.png


在"Database system"選項中選擇"Microsoft SQL Server",在Connection Method中選擇"ODBC(native)",輸入相應的服務器,用戶名,密碼,點擊"Test Connection"即可測試是否連接成功。

wKiom1ZqNhrC29VRAAGEF3pljLU037.png


在"Target Selection"頁面中填入目標MySQL信息並測試連接情況,然後點擊下一步。


wKiom1ZqN_2S0g4pAAGWWT2Jo6o713.png


在"Fetch Schemas list"頁面中,軟件會對源數據庫進行數據檢查以及獲取相應信息。


wKioL1ZqOMSDD0J5AAC66Ndm9Ko262.png


在"Schemas Selection"選擇你想要遷移的數據庫,點擊下一步。


wKioL1ZqOvDBmGpMAAD-T6kD9kA778.png


在"Reverse Engineer Source"選項點擊下一步即可。

wKiom1ZqOvCzIs0BAAC3MrF1VNA864.png


在"Source Objects"中選擇你想遷移源數據的類型,默認會勾選"Migrate Table objects",默認即可,點擊下一步。


wKioL1ZqOvLi7b_4AADikynUbHw590.png


在"Migration"中選擇下一步。


wKioL1ZqOvOQI3HIAAC4RPLxmzc094.png


在"Manual editing"查看遷移可能存在的錯誤,警告。一般有錯誤幾乎是無法遷移成功,有警告還是有可能的。


wKioL1ZqOvWR6jTLAACkUQ9Yfek528.png


在"Target Creation Option"選項中選擇"Create Schema in target RDBMS",是否需要創建"SQL Script"看自己的需求嘍。默認是不會選中。


wKioL1ZqOvayDiQnAADOixvTm4A649.png


在"Create Schemas"頁面中,軟件會在目標MySQL中自動創建相應的Schemas以及Objects。


wKioL1ZqOvfjfoQHAADQhhNNMLc136.png


"Create Target Results"中可以查看到創建的結果,右側會顯示成功狀態。


wKiom1ZqOviA3DsoAAE9EycyGXQ224.png


"Data Transfer Setup"頁面中,軟件會拷貝源數據到目標數據庫,有三個選項可以選擇,如果網絡允許,直接選擇"Online copy of table data to target RDBMS",即在線遷移。


wKiom1ZqOvrintp3AADbj9QfKXg059.png


"Bulk Data Transfer"頁面中可以看到數據遷移的過程,如果遷移一直正常,那麼就遷移成功啦。


wKioL1ZqOvyTjqRcAACvQbzm2kc514.png


可惜我本次遷移存在問題,記得之前頁面的warning麼,很有可能是那個問題。但只是1個表遷移有問題,其他表是沒有問題的,可以連接到目標數據庫去查看。


wKioL1ZqPWmxq1cqAAAT8areXE8838.png


如果只是1個表遷移失敗並且表中的數據不是很多,我們可以通過手動遷移,通過log可以看出,有一個表遷移失敗。我們接下來手動遷移這個表。


wKioL1ZqPkLTmOY8AABCaic-tXE681.png


打開MS SQL Server 2008 Management,找到對應的數據庫,在數據庫上點擊右鍵“任務”->“生成腳本”


wKioL1ZqRFHj77QDAAIsqCZ_KZc161.png


在選擇對象中,選擇“選擇特定數據庫對象”,找到想要導出的表,點擊下一步。


wKiom1ZqRFKCehB5AAC26KolVs0199.png


在“設置腳本編寫選項”頁面中,點擊高級選項。


wKioL1ZqRFSBB3PUAADopUKYmws955.png


“找到要編寫標本的數據的類型”,選擇“架構和數據”。


wKiom1ZqRFOwOdXsAABlT6khMMg710.png


摘要選項,review相關信息,並點擊下一步,即會自動生成腳本。


wKioL1ZqRFWjdgnaAACGrJCxnkw420.png


稍等片刻之後,可以在保存目錄中找到腳本文件。


wKioL1ZqReqQgCFsAABzB0Q40wo413.png


下圖即是導出的MS SQL script,但由於導出的SQL script只適用於SQL Server,導入MySQL需要進一步修改,由於兩者語法差別不大,稍稍修改即可,請自行搞定啦啦啦啦啦.....


wKiom1ZqReuz_h82AAEscwSntSk845.png


修改後的語句,可以自動在MySQL命令行中執行插入數據,接下來的步驟請自行搞定啦阿拉拉了拉了。。。



==============我是分割線=========================


媽蛋,上面的圖都白打馬賽克了,最後一張全給暴漏了....


What the hell %>_<%



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章