从 Oracle 迁移到 MySQL 的工具
我想将架构从 Oracle 迁移到 MySQl,那么是否有任何免费工具可用于此任务?
我在 Oracle SQL 脚本中有“创建表”语句,但它包含唯一约束和外键。 MySQL有MyISAM存储引擎,因此不支持外键。
如何解决这个问题?
Oracle 创建语句示例:
CREATE TABLE channels
(
obt_id NUMBER(19) PRIMARY KEY,
discriminator VARCHAR2(64) NOT NULL
CONSTRAINT check_channel_discriminator CHECK (discriminator IN ('CHANNEL','SALES_CHANNEL')),
chan_id VARCHAR2(255),
description VARCHAR2(255),
name VARCHAR2(255) NOT NULL,
obt_version VARCHAR2(255),
fk2_channel NUMBER(19)
CONSTRAINT fk_channel_channel REFERENCES channels(obt_id)
);
CREATE TABLE object_types
(
obt_id NUMBER(19) PRIMARY KEY,
enum_value VARCHAR2(64) NOT NULL,
external_name VARCHAR2(64) NOT NULL,
description VARCHAR2(255),
business_validation NUMBER(1) DEFAULT 0,
start_date_time DATE DEFAULT to_date('01011900','DDMMYYYY'),
end_date_time DATE DEFAULT to_date('01014712','DDMMYYYY'),
mut_date_time DATE DEFAULT SYSDATE,
mut_user VARCHAR2(32) DEFAULT USER,
CONSTRAINT object_types UNIQUE (external_name,start_date_time,end_date_time)
);
I want to migrate schema from Oracle to MySQl, so are there any free tools that would be useful for this task?
I have "Create table" statements in Oracle SQL Script, but it contains unique constraints and a foreign key. MySQL has MyISAM storage engine, and so foreign key is not supported.
How to solve this issue?
Sample Oracle create statements:
CREATE TABLE channels
(
obt_id NUMBER(19) PRIMARY KEY,
discriminator VARCHAR2(64) NOT NULL
CONSTRAINT check_channel_discriminator CHECK (discriminator IN ('CHANNEL','SALES_CHANNEL')),
chan_id VARCHAR2(255),
description VARCHAR2(255),
name VARCHAR2(255) NOT NULL,
obt_version VARCHAR2(255),
fk2_channel NUMBER(19)
CONSTRAINT fk_channel_channel REFERENCES channels(obt_id)
);
CREATE TABLE object_types
(
obt_id NUMBER(19) PRIMARY KEY,
enum_value VARCHAR2(64) NOT NULL,
external_name VARCHAR2(64) NOT NULL,
description VARCHAR2(255),
business_validation NUMBER(1) DEFAULT 0,
start_date_time DATE DEFAULT to_date('01011900','DDMMYYYY'),
end_date_time DATE DEFAULT to_date('01014712','DDMMYYYY'),
mut_date_time DATE DEFAULT SYSDATE,
mut_user VARCHAR2(32) DEFAULT USER,
CONSTRAINT object_types UNIQUE (external_name,start_date_time,end_date_time)
);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我还没有听说过有任何工具可以帮助您满足您的要求。这并不意味着不存在,但是,采用现有的 Oracle 脚本并手动创建适当的 MySQL 脚本可能更容易且不易出错。在我参与过的每个项目中,DBA 都负责这种类型的数据迁移,而且他们总是手动完成。
编辑:
话虽这么说,我做了一个快速的谷歌搜索,有一些程序声称可以做到这一点(需要付费)。例如:
Oracle 到 MySQL
数据加载器
DBConvert
我显然会警告不要使用第三方工具,并确保在开始之前备份所有内容。
I have not heard of a single tool that can assist in what you are asking for. This does not mean one does not exist, however, it is probably easier and less error prone to take your existing Oracle scripts and manually create the appropriate MySQL scripts. On every project I have been on the DBAs were responsible for data migration of this type and they always did it manually.
Edit:
That being said I did a quick google search and there are a few programs that claim to do this (at a cost). For example:
Oracle to MySQL
Data loader
DBConvert
I would obviously caution against using a third party tool and make sure you back up everything before starting.
mysql gui 工具包包含一个迁移工具。
http://dev.mysql.com/downloads/gui-tools/5.0。 html
您需要在运行该工具包的计算机上安装 Oracle 的 jdbc 驱动程序。
The mysql gui tool kit includes a migration tool.
http://dev.mysql.com/downloads/gui-tools/5.0.html
You'll need to have the jdbc driver for Oracle installed on the machine where your running the tool kit.