利用AMP(Alibaba Migration Platfrom)神器轻松把Oracle数据库中的数据迁移到MySQL数据库

转载请注明出处: http://blog.csdn.net/guoyjoe/article/details/44926187

上传AMP包并解压:tar -jxvf amp.2.1.0.tar

启动AMP:nohup sh start.sh > /tmp/log.txt 1 & >2

1、我把AMP迁移工具部署到了192.168.1.8上,在192.168.1.8上也装了MySQL数据库,可以正常连接,如下:

2、配置AMP,如下

3、点保存并预检查,报错如下

目标库的大小写敏感设置 lower_table_case_name,看一下是什么?

mysql> show variables like ‘%case%‘;
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 0    |
+------------------------+-------+

lower_case_table_names ---大小写敏感,lower_case_table_names=1 让MySQL不区分大小写!

+-----------------------

vi /u01/my3306/my.cnf  ---添加
lower_case_table_names=1
   
重启mysql
mysqld_safe --defaults-file=/u01/mysql3306/my.cnf --user=mysql &

mysql> show variables like ‘%case%‘;
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 1     |
+------------------------+-------+


把0改成1就搞定了

转换完成后还有几个报错,总结如下!

------------------不能用函数索引
 create index IDX_TUN on TB_USERBANK (TRIM(USER_LOGIN));   
 改
 create index IDX_TUN on TB_USERBANK (USER_LOGIN);

CREATE INDEX `IDX_CUSTNO` ON `DBPAY`.`TB_FINSERIAL` (`TRIM(CUSTNO)`); 

CREATE INDEX `IDX_CUSTNO` ON `DBPAY`.`TB_FINSERIAL` (`USTNO`);

CREATE INDEX `IDX_FUNC_CHARGE_PAY_BILL` ON `DBCHARGE`.`CHARGE_PAY_BILL` (`SUBSTR(ORDER_ID,2,16)`); 

 CREATE INDEX `IDX_FUNC_CHARGE_PAY_BILL` ON `DBCHARGE`.`CHARGE_PAY_BILL` (`ORDER_ID`);

-----------------表中的字段默认值不能用TO_CHAR(SYSDATE,‘YYYYMMDD‘)
create table TB_ORDERINFO                                   
(
  OID_BILLNO  VARCHAR(32),
  ORDER_ID    VARCHAR(64) not null,
  OID_CHNL    VARCHAR(2) not null,
  TYPE_DC     VARCHAR(1) not null,
  OID_REGUSER VARCHAR(32) not null,
  DT_SYS      DATE,
  TRANS_DATE  CHAR(8) default TO_CHAR(SYSDATE,‘YYYYMMDD‘) not null
);

create table TB_ORDERINFO                                  
(
  OID_BILLNO  VARCHAR(32),
  ORDER_ID    VARCHAR(64) not null,
  OID_CHNL    VARCHAR(2) not null,
  TYPE_DC     VARCHAR(1) not null,
  OID_REGUSER VARCHAR(32) not null,
  DT_SYS      DATE,
  TRANS_DATE  CHAR(8)  not null
);

-----------------Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

CREATE TABLE IF NOT EXISTS `DBPAY`.`SYS_EXPORT_SCHEMA_01` (
    `PROCESS_ORDER` BIGINT, 
    `DUPLICATE` BIGINT, 
    `DUMP_FILEID` BIGINT, 
    `DUMP_POSITION` BIGINT, 
    `DUMP_LENGTH` BIGINT, 
    `DUMP_ALLOCATION` BIGINT, 
    `COMPLETED_ROWS` BIGINT, 
    `ERROR_COUNT` BIGINT, 
    `ELAPSED_TIME` BIGINT, 
    `OBJECT_TYPE_PATH` VARCHAR(200), 
    `OBJECT_PATH_SEQNO` BIGINT, 
    `OBJECT_TYPE` VARCHAR(30), 
    `IN_PROGRESS` CHAR(1), 
    `OBJECT_NAME` VARCHAR(500), 
    `OBJECT_LONG_NAME` VARCHAR(4000), 
    `OBJECT_SCHEMA` VARCHAR(30), 
    `ORIGINAL_OBJECT_SCHEMA` VARCHAR(30), 
    `PARTITION_NAME` VARCHAR(30), 
    `SUBPARTITION_NAME` VARCHAR(30), 
    `FLAGS` BIGINT, 
    `PROPERTY` BIGINT, 
    `COMPLETION_TIME` DATETIME, 
    `OBJECT_TABLESPACE` VARCHAR(30), 
    `SIZE_ESTIMATE` BIGINT, 
    `OBJECT_ROW` BIGINT, 
    `PROCESSING_STATE` CHAR(1), 
    `PROCESSING_STATUS` CHAR(1), 
    `BASE_PROCESS_ORDER` BIGINT, 
    `BASE_OBJECT_TYPE` VARCHAR(30), 
    `BASE_OBJECT_NAME` VARCHAR(30), 
    `BASE_OBJECT_SCHEMA` VARCHAR(30), 
    `ANCESTOR_PROCESS_ORDER` BIGINT, 
    `DOMAIN_PROCESS_ORDER` BIGINT, 
    `PARALLELIZATION` BIGINT, 
    `UNLOAD_METHOD` BIGINT, 
    `GRANULES` BIGINT, 
    `SCN` BIGINT, 
    `GRANTOR` VARCHAR(30), 
    `XML_CLOB` LONGTEXT, 
    `NAME` VARCHAR(30), 
    `VALUE_T` VARCHAR(4000), 
    `VALUE_N` BIGINT, 
    `IS_DEFAULT` BIGINT, 
    `FILE_TYPE` BIGINT, 
    `USER_DIRECTORY` VARCHAR(4000), 
    `USER_FILE_NAME` VARCHAR(4000), 
    `FILE_NAME` VARCHAR(4000), 
    `EXTEND_SIZE` BIGINT, 
    `FILE_MAX_SIZE` BIGINT, 
    `PROCESS_NAME` VARCHAR(30), 
    `LAST_UPDATE` DATETIME, 
    `WORK_ITEM` VARCHAR(30), 
    `OBJECT_NUMBER` BIGINT, 
    `COMPLETED_BYTES` BIGINT, 
    `TOTAL_BYTES` BIGINT, 
    `METADATA_IO` BIGINT, 
    `DATA_IO` BIGINT, 
    `CUMULATIVE_TIME` BIGINT, 
    `PACKET_NUMBER` BIGINT, 
    `OLD_VALUE` VARCHAR(4000), 
    `SEED` BIGINT, 
    `LAST_FILE` BIGINT, 
    `USER_NAME` VARCHAR(30), 
    `OPERATION` VARCHAR(30), 
    `JOB_MODE` VARCHAR(30), 
    `CONTROL_QUEUE` VARCHAR(30), 
    `STATUS_QUEUE` VARCHAR(30), 
    `REMOTE_LINK` VARCHAR(4000), 
    `VERSION` BIGINT, 
    `DB_VERSION` VARCHAR(30), 
    `TIMEZONE` VARCHAR(64), 
    `STATE` VARCHAR(30), 
    `PHASE` BIGINT, 
    `GUID` VARBINARY(16), 
    `START_TIME` DATETIME, 
    `BLOCK_SIZE` BIGINT, 
    `METADATA_BUFFER_SIZE` BIGINT, 
    `DATA_BUFFER_SIZE` BIGINT, 
    `DEGREE` BIGINT, 
    `PLATFORM` VARCHAR(101), 
    `ABORT_STEP` BIGINT, 
    `INSTANCE` VARCHAR(60)
) engine=INNODB charset=UTF8 COLLATE UTF8_bin comment = ‘Data Pump Master Table EXPORT                         SCHEMA                        ‘;
改主要把VARCHAR(500)超过500全改成TEXT
CREATE TABLE IF NOT EXISTS `DBPAY`.`SYS_EXPORT_SCHEMA_01` (
    `PROCESS_ORDER` BIGINT, 
    `DUPLICATE` BIGINT, 
    `DUMP_FILEID` BIGINT, 
    `DUMP_POSITION` BIGINT, 
    `DUMP_LENGTH` BIGINT, 
    `DUMP_ALLOCATION` BIGINT, 
    `COMPLETED_ROWS` BIGINT, 
    `ERROR_COUNT` BIGINT, 
    `ELAPSED_TIME` BIGINT, 
    `OBJECT_TYPE_PATH` VARCHAR(200), 
    `OBJECT_PATH_SEQNO` BIGINT, 
    `OBJECT_TYPE` VARCHAR(30), 
    `IN_PROGRESS` CHAR(1), 
    `OBJECT_NAME` TEXT(500), 
    `OBJECT_LONG_NAME` TEXT(4000),
    `OBJECT_SCHEMA` VARCHAR(30), 
    `ORIGINAL_OBJECT_SCHEMA` VARCHAR(30), 
    `PARTITION_NAME` VARCHAR(30), 
    `SUBPARTITION_NAME` VARCHAR(30), 
    `FLAGS` BIGINT, 
    `PROPERTY` BIGINT, 
    `COMPLETION_TIME` DATETIME, 
    `OBJECT_TABLESPACE` VARCHAR(30), 
    `SIZE_ESTIMATE` BIGINT, 
    `OBJECT_ROW` BIGINT, 
    `PROCESSING_STATE` CHAR(1), 
    `PROCESSING_STATUS` CHAR(1), 
    `BASE_PROCESS_ORDER` BIGINT, 
    `BASE_OBJECT_TYPE` VARCHAR(30), 
    `BASE_OBJECT_NAME` VARCHAR(30), 
    `BASE_OBJECT_SCHEMA` VARCHAR(30), 
    `ANCESTOR_PROCESS_ORDER` BIGINT, 
    `DOMAIN_PROCESS_ORDER` BIGINT, 
    `PARALLELIZATION` BIGINT, 
    `UNLOAD_METHOD` BIGINT, 
    `GRANULES` BIGINT, 
    `SCN` BIGINT, 
    `GRANTOR` VARCHAR(30), 
    `XML_CLOB` LONGTEXT, 
    `NAME` VARCHAR(30), 
    `VALUE_T` VARCHAR(4000), 
    `VALUE_N` BIGINT, 
    `IS_DEFAULT` BIGINT, 
    `FILE_TYPE` BIGINT, 
    `USER_DIRECTORY` TEXT(4000),
    `USER_FILE_NAME` TEXT(4000),
    `FILE_NAME` TEXT(4000), 
    `EXTEND_SIZE` BIGINT, 
    `FILE_MAX_SIZE` BIGINT, 
    `PROCESS_NAME` VARCHAR(30), 
    `LAST_UPDATE` DATETIME, 
    `WORK_ITEM` VARCHAR(30), 
    `OBJECT_NUMBER` BIGINT, 
    `COMPLETED_BYTES` BIGINT, 
    `TOTAL_BYTES` BIGINT, 
    `METADATA_IO` BIGINT, 
    `DATA_IO` BIGINT, 
    `CUMULATIVE_TIME` BIGINT, 
    `PACKET_NUMBER` BIGINT, 
    `OLD_VALUE` TEXT(4000),
    `SEED` BIGINT, 
    `LAST_FILE` BIGINT, 
    `USER_NAME` VARCHAR(30), 
    `OPERATION` VARCHAR(30), 
    `JOB_MODE` VARCHAR(30), 
    `CONTROL_QUEUE` VARCHAR(30), 
    `STATUS_QUEUE` VARCHAR(30), 
    `REMOTE_LINK` TEXT(4000),
    `VERSION` BIGINT, 
    `DB_VERSION` VARCHAR(30), 
    `TIMEZONE` VARCHAR(64), 
    `STATE` VARCHAR(30), 
    `PHASE` BIGINT, 
    `GUID` VARBINARY(16), 
    `START_TIME` DATETIME, 
    `BLOCK_SIZE` BIGINT, 
    `METADATA_BUFFER_SIZE` BIGINT, 
    `DATA_BUFFER_SIZE` BIGINT, 
    `DEGREE` BIGINT, 
    `PLATFORM` VARCHAR(101), 
    `ABORT_STEP` BIGINT, 
    `INSTANCE` VARCHAR(60)
) engine=INNODB charset=UTF8 COLLATE UTF8_bin comment = ‘Data Pump Master Table EXPORT                         SCHEMA                        ‘;

错误失败原因[Specified key was too long; max key length is 767 bytes]:意思这个字段如果超过255长度,建索引会有警告:
CREATE  INDEX `NAME_LIST_INDEX1` ON `DBRISK`.`NAME_LIST` (`UNIQUE_ID`);

create table NAME_LIST
(
  ID          NUMBER(18) not null,
  UNIQUE_ID   VARCHAR2(256) not null,
  NAME        VARCHAR2(255),
  STATUS      NUMBER(2) default 0,
  EXPIRES     TIMESTAMP(6),
  COMMENTS    VARCHAR2(255),
  SOURCE      VARCHAR2(255),
  TAG         VARCHAR2(255) not null,
  TYPE        VARCHAR2(20),
  CREATE_TIME TIMESTAMP(6),
  UPDATE_TIME TIMESTAMP(6),
  TAG_2       VARCHAR2(256),
  RISK_TYPE   VARCHAR2(20),
  RISK_ROLE   VARCHAR2(20),
  OPR_NAME    VARCHAR2(255),
  RISK_SOURCE VARCHAR2(20)
)

转  UNIQUE_ID   VARCHAR2(256) not null,  搞成小于256就不会报错了。
CREATE  INDEX `NAME_LIST_INDEX1` ON `DBRISK`.`NAME_LIST` (`UNIQUE_ID`);

时间: 2024-10-09 08:09:32

利用AMP(Alibaba Migration Platfrom)神器轻松把Oracle数据库中的数据迁移到MySQL数据库的相关文章

利用JAVA想数据库中提交数据

1.用户信息提交界面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&qu

利用spring batch 读取数据库中的数据写入到txt文件中

写一个job,其配置文件为: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:batch="http://www.springfram

数据迁移至RDS-MySQL之利用RDS管理控制台

MySQL之利用RDS管理控制台数据迁移至RDS-MySQL之利用RDS管理控制台该方法是一种MySQL的在线迁移方法,可以不停服务就能够完成数据库的迁移工作,支持MySQL 5.1   5.5. 5.6(5.0版本只支持全量迁移)的迁移.更多迁移信息可参考:如何快速平稳的迁入RDS>>迁移注意事项1)MySQL的系统库将不允许迁移至RDS,不允许迁移的数据库包括:mysql,information_schema,perfermance_schema.这些数据库将不会显示在迁移列表中:2)不支

如何利用好chrome控制台这个神器好好调试javascript代码

上面的文章已经大致介绍了一下console对象具体有哪些方面以及基本的应用,下面简单介绍一下如何利用好chrome控制台这个神器好好调试javascript代码(这个才是我们真正能用到实处的地方) 1.先说一下源码定位 大家打开测试网页   看到页面右下方有一个推荐的图标吗?右击推荐图标,选择审查元素,打开谷歌控制台,如下图所示 我们现在想知道votePost方法到底在哪?跟着我这样做,在Console面板里面输入votePost然后回车 直接点击上图标红的链接,控制台将定位到Sources面板

转载:30多条mysql数据库优化方法,千万级数据库记录查询轻松解决

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, Sql 代码 : select id from t where num is null; 可以在 num 上设置默认值 0,确保表中 num 列没有 null 值,然后这样查询: Sql 代码 : select id from t where num=0; 3.应尽量避免在 wh

利用MySQL数据库如何解决大数据量存储问题?

提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下:1.数据的容量:1-3年内会大概多少条数据,每条数据大概多少字节: 2.数据项:是否有大字段,那些字段的值是否经常被更新: 3.数据查询SQL条件:哪些数据项的列名称经常出现在WHERE.GROUP BY.ORDER BY子句中等: 4.数据更新类SQL条件:有多少列经常出现UPDATE或DELETE 的WHERE子句中: 5.SQL量的统计比,

利用PHP实现登录与注册功能以及使用PHP读取mysql数据库——以表格形式显示数据

登录界面 <body><form action="login1.php" method="post"><div>用户名:<input type="text" name="uid" /></div><br /><div>密码:<input type="password" name="pwd" />

利用java反射机制实现读取excel表格中的数据

如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.List<Book>等,所以需要使用泛型机制去实现.下面会给出代码,可能会稍微复杂一点,但注释很清晰,希望大家耐心阅读. 在上代码之前简单说一下思路: 1.excel表格必须有表头,且表头中各列的值要与实体类的属性相同: 2.先读取表头信息,然后获取表头列数,接着确定需要使用的set方法的名称,并存到数

利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包

原文:利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包 因为业务需要,项目中需要把asp.netmvc项目打包成exe安装程序给客户,让客户直接可以点下一步下一步安装部署web程序,并且同时要将IIS服务和mysql一同安装到服务器上,因为客户的电脑可能是64位也可能是32位,所以在打包的时候就需要打包成两份安装包.研究了几天终于有所收获,下边就是打包的步骤. 打包步骤: 一.前期准备 1.将asp.netmvc发布到本地目录中