红联Linux门户
Linux帮助

MySQL转移到PostgreSQL的痛苦经历

发布时间:2006-09-29 21:33:39来源:红联作者:asiaec
 五一了,加班,闲着没事,打算把自己放在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导入时可不认这个
文章评论

共有 0 条评论