【云圖說】第132期 小云妹帶您快速玩轉RDS實例操作(2)——刪除與退訂
1249
2025-04-01
最近接手一起老項目數據庫 SQL Server 到 MySQL 的遷移。因此遷移前進行了一些調查和總結。下面是一些?SQL Server 到 MySQL 的遷移方法。
1. 使用 SQLyog 遷移
具體方法可以參加:http://www.cnblogs.com/gaizai/p/3237907.html
優點:該遷移方法很簡單,靈活,遷移時,可以進行字段的修改,比如在sql server中原來是datetime,然后遷移到mysql時你可以配置成timestamp;
成功率很高;
缺點:遷移很慢!這是該方法最大的缺點,如果表的數據量達到幾十萬行,甚至幾百萬行,你會發現遷移起來真的很慢。明顯比其他遷移方法慢很多。
2. 使用 powerdesigner 和 sql server 的腳本導出功能 來遷移
第一步:該方法首先使用 powerdesigner,對sql server數據庫,進行逆向工程,得到E-R圖,然后生成MySQL的建表語句。完成數據庫結構的遷移;
當然表結構的遷移,不使用powerdesigner一樣也是可以的。比如我將表結構導出成語句,然后手動進行修改,然后在MySQL中運行,也是一樣的;
第二部:然后使用 sql server的工具 SSMS,將sql server數據庫中的表的數據,導出成insert語句,每個表對應導出一個文件,然后對文件進行一些處理,
然后導入到MySql數據庫中。
具體的對 sql server 導出的sql文件的處理方法,參見:http://www.cnblogs.com/digdeep/p/4822499.html
3. 使用Oracle MySQL Server 官方的 workbeach 工具進行遷移
mysql官方有兩篇 sql server 遷移到 mysql的指導手冊,可以參考:
http://www.mysql.com/why-mysql/white-papers/guide-to-workbench-migration-wizard/
http://www.mysql.com/why-mysql/white-papers/guide-to-migrating-from-sql-server-to-mysql/
上面的連接中可以下載到pdf文件,安裝文件的說明,使用 workbeach 工具就能進行遷移。因為 workbeach 有30天的使用期,所以完全不需要擔心;
在workbench 連接sql server時,用戶需要有?view any database?的權限。不然workbench無法訪問sql server的表結構的元數據,從而無法進行遷移。
還有使用 Navicat 來進行遷移的方法,方法和 SQLyog 是類似的。
4. 三種方法比較
方法一只適合數據量小的遷移方法,如果數據量大,遷移時間短,基本是不適合的;
方法二是比較好的方法,缺點就是sql server導出的insert腳本中 datetime字段和decimal需要自己寫代碼進行轉換,稍微有點麻煩;
第三種方法應該是最佳的選擇,比較簡單,速度也快,又不需要自己進行字段的處理。
所以對于數據量比較大的情況,應該選擇方法三或者方法二。
5. 遷移需要注意的一些問題
sql server 在向 mysql 遷移時,需要注意的一些問題,在連接 http://www.mysql.com/why-mysql/white-papers/guide-to-migrating-from-sql-server-to-mysql/ 的文檔中都有說明。下面是一些具體的注意事項:
1)唯一索引的不同,sql server的唯一索引的字段只能允許存在一個null值,而mysql,一直oracle中唯一索引對應的字段都允許存在多個null值;
2)ifnull 與 isnull ,sql server使用的是 ifnull,而mysql 中要使用 isnull:
3)所有的分頁sql都需要重寫:
SQL server的分頁(使用的是?row_number() over(......)):
用mysql重寫:
4)存儲過程的遷移是最麻煩的:
存儲過程的語法存在很大的不同。
http://www.mysql.com/why-mysql/white-papers/guide-to-migrating-from-sql-server-to-mysql/ 的文檔中有一些說明。
下面是一些mysql存儲過程的參考文章:
http://www.cnblogs.com/digdeep/p/4818660.html
http://www.cnblogs.com/digdeep/p/4814020.html
MySQL SQL Server SQL
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。