背景:
我所在公司的官網使用了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.
在"Database system"選項中選擇"Microsoft SQL Server",在Connection Method中選擇"ODBC(native)",輸入相應的服務器,用戶名,密碼,點擊"Test Connection"即可測試是否連接成功。
在"Target Selection"頁面中填入目標MySQL信息並測試連接情況,然後點擊下一步。
在"Fetch Schemas list"頁面中,軟件會對源數據庫進行數據檢查以及獲取相應信息。
在"Schemas Selection"選擇你想要遷移的數據庫,點擊下一步。
在"Reverse Engineer Source"選項點擊下一步即可。
在"Source Objects"中選擇你想遷移源數據的類型,默認會勾選"Migrate Table objects",默認即可,點擊下一步。
在"Migration"中選擇下一步。
在"Manual editing"查看遷移可能存在的錯誤,警告。一般有錯誤幾乎是無法遷移成功,有警告還是有可能的。
在"Target Creation Option"選項中選擇"Create Schema in target RDBMS",是否需要創建"SQL Script"看自己的需求嘍。默認是不會選中。
在"Create Schemas"頁面中,軟件會在目標MySQL中自動創建相應的Schemas以及Objects。
"Create Target Results"中可以查看到創建的結果,右側會顯示成功狀態。
"Data Transfer Setup"頁面中,軟件會拷貝源數據到目標數據庫,有三個選項可以選擇,如果網絡允許,直接選擇"Online copy of table data to target RDBMS",即在線遷移。
"Bulk Data Transfer"頁面中可以看到數據遷移的過程,如果遷移一直正常,那麼就遷移成功啦。
可惜我本次遷移存在問題,記得之前頁面的warning麼,很有可能是那個問題。但只是1個表遷移有問題,其他表是沒有問題的,可以連接到目標數據庫去查看。
如果只是1個表遷移失敗並且表中的數據不是很多,我們可以通過手動遷移,通過log可以看出,有一個表遷移失敗。我們接下來手動遷移這個表。
打開MS SQL Server 2008 Management,找到對應的數據庫,在數據庫上點擊右鍵“任務”->“生成腳本”
在選擇對象中,選擇“選擇特定數據庫對象”,找到想要導出的表,點擊下一步。
在“設置腳本編寫選項”頁面中,點擊高級選項。
“找到要編寫標本的數據的類型”,選擇“架構和數據”。
摘要選項,review相關信息,並點擊下一步,即會自動生成腳本。
稍等片刻之後,可以在保存目錄中找到腳本文件。
下圖即是導出的MS SQL script,但由於導出的SQL script只適用於SQL Server,導入MySQL需要進一步修改,由於兩者語法差別不大,稍稍修改即可,請自行搞定啦啦啦啦啦.....
修改後的語句,可以自動在MySQL命令行中執行插入數據,接下來的步驟請自行搞定啦阿拉拉了拉了。。。
==============我是分割線=========================
媽蛋,上面的圖都白打馬賽克了,最後一張全給暴漏了....
What the hell %>_<%