MySQL轉移到PostgreSQL的痛苦經歷(轉)

ba發表於2007-08-15
MySQL轉移到PostgreSQL的痛苦經歷(轉)[@more@] 五一了,加班,閒著沒事,打算把自己放在MySQL(5.0.17)上的資料轉到PostgreSQL(8.0.0)上,參照網上的文章匯入,結果陷入了一場麻煩之中。最後終於成功了,現在將步驟說一下,以免有其他的朋友誤入歧途。

資料:做電信業務話單分析使用的兩張表,每張都在200萬條記錄左右

步驟:
1.用mysqldump將檔案導了出來,生成了兩個檔案bill01.sql,bill02.sql(400M左右一個檔案),如果你的資料量也不較大,最好不要整庫匯出,否則編輯匯出檔案回讓你的機器爽死的,俺的機器P42.8,1G記憶體都吃不消。


2.由於資料庫伺服器在遠端,編輯很不方便,下載回本機。用UltraEdit32開啟,將匯出檔案的前面的建立表的部分、檔案最後的LOCK之類的都刪除,僅保留資料。將資料前面Insert xxxx values(刪除,檔案中`號等MySQL用的符號刪除。總之形成一個只有資料的檔案,每行一個記錄,每欄位間用,號分隔。

3.在PostgreSQL上建立相應的表結構,上傳資料檔案到伺服器。

4.用psql登陸資料庫,COPY bill01 FROM '/data/bill02.txt' WITH DELIMITER AS ','

基本上就OK了。

用這個辦法比匯出來的SQL命令執行要快多了,俺的機器跑了10個小時才導了200多萬條記錄,而且匯出的SQL命令需要修改才能在PostgreSQL上用,用這個辦法,10分鐘搞定。

要注意的問題:

如果欄位為Integer且允許為NULL的話,匯入之前將NULL替換成數字,否則會報錯的。

一定要將`符號去掉,這個是MySQL支援的,PostgreSQL匯入時可不認這個

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-959635/,如需轉載,請註明出處,否則將追究法律責任。

相關文章