Oracle數(shù)據(jù)導(dǎo)入MySQL的快捷工具:MySQL Migration Toolkit
Oracle數(shù)據(jù)庫中的數(shù)據(jù)某些情況下需要導(dǎo)入到MySQL中,如何方便快捷地導(dǎo)入呢?使用MySQL GUI Tools中的MySQL Migration Toolkit就可以輕松搞定,該工具對CLOB、BLOB類型的數(shù)據(jù)也有非常好的支持。
以下是利用該工具將原有的Oracle數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到MySQL的過程。
1、 運(yùn)行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database System中選擇Oracle Database Server,如果第一次使用會(huì)告之要求加載驅(qū)動(dòng)程序ojdbc14.jar。
加載驅(qū)動(dòng)程序之后,界面將變成如下的形式,在其中填寫Oracle數(shù)據(jù)庫的連接信息,按“Next”繼續(xù)。
2、 在Target Database中默認(rèn)Database System為MySQL Server,在Connection Parameters中填寫相應(yīng)的MySQL數(shù)據(jù)庫的連接信息,按“Next”繼續(xù)。
3、進(jìn)行數(shù)據(jù)庫連接測試,測試通過后按“Next”到Source Schemata Selection,點(diǎn)選準(zhǔn)備進(jìn)行數(shù)據(jù)遷移的Schemata后按“Next”繼續(xù)。
4、在Object Type Selection,點(diǎn)Detailed selection按鈕,在下方左側(cè)列表中選擇不進(jìn)行遷移的表,將其放入右側(cè)列表中,即左側(cè)列表剩余的表都將進(jìn)行數(shù)據(jù)遷移。選擇好之后按“Next”繼續(xù)。
#p#
5、在Object Mapping的Migration of type Oracle Schema,如果要設(shè)置參數(shù),點(diǎn)Set Parameter按鈕。如果默認(rèn)數(shù)據(jù)庫表為UTF8的話,則選擇Multilanguage;如果默認(rèn)數(shù)據(jù)庫表為GBK的話,則需要選擇User defined,并在下方填寫charset=gbk, collation=gbk_general_ci。Migration of type Oracle Table中要設(shè)置參數(shù)點(diǎn)Set Parameter按鈕。如果默認(rèn)數(shù)據(jù)庫表為UTF8的話,則選擇Data consistency/multilanguage;如果默認(rèn)數(shù)據(jù)庫表為GBK的話,則需要選擇User defined,并在下方填寫addAutoincrement=yes, charset=gbk, collation=gbk_general_ci, engine=INNODB。選擇好之后按“Next”繼續(xù)。
6、再到Manual Editing,在這里可以修改建表腳本。由于Oracle與MySQL之間語法規(guī)則的差異,通常需要對腳本的數(shù)據(jù)類型以及默認(rèn)值進(jìn)行調(diào)整,比如Oracle中通常會(huì)對Timestamp類型的數(shù)據(jù)設(shè)置默認(rèn)值sysdate,但在MySQL中是不能識別的。在Filter中選擇Show All Objects,然后在Migrated Objects中選擇要修改腳本的表,再點(diǎn)擊左下方的Advanced就可以進(jìn)行腳本編輯了。修改完之后點(diǎn)擊右側(cè)Apply Changes按鈕保存,按“Next”繼續(xù)。
7、然后一路“Next”,如果沒有提示出錯(cuò)的話,就可以將指定表中的數(shù)據(jù)導(dǎo)入MySQL了。如果有提示出錯(cuò)信息,則需要返回到Manual Editing處對腳本重新進(jìn)行修改。
需要補(bǔ)充一點(diǎn),在導(dǎo)大容量數(shù)據(jù)特別是CLOB數(shù)據(jù)時(shí),可能會(huì)出現(xiàn)異常:“Packets larger than max_allowed_packet are not allowed”。這是由于MySQL數(shù)據(jù)庫有一個(gè)系統(tǒng)參數(shù)max_allowed_packet,其默認(rèn)值為1048576(1M),可以通過如下語句在數(shù)據(jù)庫中查詢其值:
show VARIABLES like '%max_allowed_packet%';
修改此參數(shù)的方法是在mysql文件夾找到my.ini文件,在my.ini文件[mysqld]中添加一行:
max_allowed_packet=16777216
重啟MySQL,這樣將可以導(dǎo)入不大于16M的數(shù)據(jù)了,當(dāng)然這數(shù)值可以根據(jù)需要作調(diào)整。
原文地址:http://blog.chinaunix.net/space.php?uid=12115233&do=blog&id=431601
【編輯推薦】