昨天接到一个任务,将一个表从mysql迁移到oracle,表总共有300多万条记录。
解决思路;先将数据从mysql导出一个文本文件,然后传送的目标服务器,进而用sqlldr将其加载至oracle
第一步: 导出文件
Mysql 导出文件
在此省去表结构
mysql> select * from justin into outfile '/data/mysqldata/justin.txt' fields terminated by ',' enclosed by '"';
第二步
将其传输到目标服务器
[rkun@localhost mysqldata]$ scp justin.txt oracle@192.168.0.1:
oracle@192.168.0.1's password:
justin.txt
第三步
目标服务器上建立control.ctl
load data
characterset UTF8
infile '/home/oracle/justin
new.txt'
append into table justin
fields terminated by ',' OPTIONALLY ENCLOSED BY '"'
(
"ID" sequence(MAX,1),
**********
**********
)
注:我们在此采用sqlldr直接路径加载,必须在控制文件指定加载字符集,