返回顶部
首页 > 资讯 > 数据库 >MySQL迁移KingbaseESV8R2的实现步骤
  • 792
分享到

MySQL迁移KingbaseESV8R2的实现步骤

2024-04-02 19:04:59 792人浏览 薄情痞子
摘要

目录1. 使用oracle中转2. 使用KingbaseESV8R3中转3. 其他问题1.自增2.uuid4. 已发现的 sql 问题1. 使用Oracle中转 KingbaseES

1. 使用Oracle中转

KingbaseESV8R2只支持从Oracle迁移,所以先Mysql迁移到Oracle。

迁移到Oracle问题:
1.oracle对表名有最大30位限制
2.invalid hex number,无效16进制
3.表数据空,报cannot insert NULL into
4.索引名太长

mysql迁移Oracle问题就很多了,并且调整很大也很麻烦;Oracle迁移Kingbase时,有时候表迁移会不成功,但多次尝试后又可成功。

2. 使用KingbaseESV8R3中转

联系了金仓技术人员后,得知目前有新版本V8R3,但是不能用于生产环境,可用于测试,并且支持MySQL直接迁移到V8R3。

所以重新安装一台虚拟机(R2和R3不可共存),然后使用R3迁移工具进行迁移。迁移中的源数据库设置记得全选,这样才会迁移视图,索引,外键,默认值等。

源数据库设置

迁移到V8R3问题:
1.tinyint(1)迁移后映射成boolean,即使迁移工具中已经映射了,但还是一样。
所以迁移过后需要改表字段类型,有默认值的话也要改默认值

数据类型映射

2.注释虽然迁移时选择了,但是使用默认的对象管理器看不到字段的注释。鼠标停留表名,可查看表的注释。目前未找到方式查看。

修改tinyint(1)问题后,即可在R3的对象管理器中选择数据库,进行逻辑备份。
再使用R2的对象管理器,进行逻辑还原。

3. 其他问题

1.自增

MySQL自增和Kingbase自增不同;Kingbase自增和Oracle相同,都是定义一个序列sequence来实现。

目前使用kingbaseV8R3做中转的话,mysql迁移到r3,会帮我们创建好序列,并填好字段的默认值,实现自增。

下面是手动使用自增的方式:

先创建SEQUENCE,命名为test_id_SEQ,这里设置开始值为101

CREATE SEQUENCE test_id_SEQ START 101;

然后再需要自增值的字段的默认值加上

NEXTVAL('test_id_SEQ'::REGCLASS)

之后使用insert语句,test表的字段id就开始从101开始自增

INSERT INTO test (name) values('1');

删除序列之前,需要把字段中的默认值删掉,才能删除序列

DROP SEQUENCE test_id_SEQ

2.uuid

kingbase没有uuid函数,执行报错

select replace(uuid(), '-', '') as id from dual 

暂时先用

select SYS_GUID_NAME() as id from dual;

代替,毕竟mysql和kingbase的uuid生成规则不同

4. 已发现的 SQL 问题

1.不能使用`区分关键词

2.函数IFNULL改NVL

3.group by 中需要把字段都展示出来

4.sql不能出现!='' ,不会报错,但是执行结果null,在Kingbase中空字符串和null等价

5.函数IF改成NVL2,Kingbase中只能判断是否为null

6.字段类型字符串但是存时间,又想格式化时间。需要先将时间转为时间戳,再格式化为字符串

SELECT to_char(to_timestamp('2020-02-20 15:35:44', 'YYYY-MM-DD HH24:MI:SS'),'MM-DD')

7.不能使用双引号"",用单引号''代替

8.不能使用count('')

9.时间格式化,加减

limit_time = limit_time + (now() - apply_time)

MySQL:

limit_time = date_add( limit_time, INTERVAL ( SELECT TimeStampDiff( DAY, now(), apply_time ) ) + 1 DAY ) 

Kingbase:麻烦在于时间和字符串的转换,先将时间戳格式化为字符串,再转回时间才能进行加减

limit_time = limit_time + (to_date(to_char(now(),'YYYY-MM-DD'),'YYYY-MM-DD') - to_date(to_char(apply_time,'YYYY-MM-DD'),'YYYY-MM-DD') + integer '1')

10.表名和系统视图可能重名,要加模式名.表名区分

11.is_delete = false 改为 is_delete = 0,字段值为0不能使用false来过滤

到此这篇关于MySQL迁移KingbaseESV8R2的实现步骤的文章就介绍到这了,更多相关MySQL 迁移 KingbaseESV8R2内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL迁移KingbaseESV8R2的实现步骤

本文链接: https://lsjlt.com/news/138562.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL迁移KingbaseESV8R2的实现步骤
    目录1. 使用Oracle中转2. 使用KingbaseESV8R3中转3. 其他问题1.自增2.uuid4. 已发现的 SQL 问题1. 使用Oracle中转 KingbaseES...
    99+
    2024-04-02
  • MySQL怎么迁移KingbaseESV8R2
    这篇“MySQL怎么迁移KingbaseESV8R2”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL怎么迁移King...
    99+
    2023-06-29
  • mysql数据库迁移详细步骤
    mysql 数据库迁移步骤概述:准备并备份源数据库,优化迁移速度。配置目标数据库,确保空间和资源充足。传输源数据库架构,在目标数据库中重新创建。传输源数据库数据,验证正确导入。管理用户和...
    99+
    2024-08-02
    mysql 数据丢失
  • mysql数据库迁移的步骤是什么
    MySQL数据库迁移的步骤通常包括以下几个方面:1.备份原始数据库:在开始迁移之前,首先需要对原始数据库进行备份,以防止数据丢失或损...
    99+
    2023-09-27
    mysql数据库
  • MySQL 集群迁移到 Kubernetes操作步骤
    目录背景适用场景前提条件操作步骤Step 1:自建集群开启 GTIDStep 2:容器集群在线迁移全量数据Step 3:进行增量同步Step 4:同步数据到容器集群的其他节点Step 5:业务切换Step 6:停止同步总...
    99+
    2024-04-02
  • MySQL集群迁移到Kubernetes操作步骤
    目录背景适用场景前提条件操作步骤Step 1:自建集群开启 GTIDStep 2:容器集群在线迁移全量数据Step 3:进行增量同步Step 4:同步数据到容器集群的其他节点Step...
    99+
    2024-04-02
  • 数据到hadoop的迁移步骤
    本篇内容主要讲解“数据到hadoop的迁移步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据到hadoop的迁移步骤”吧!最近在用flume和sqoop来做非关系数据(日志)和关系数据(MY...
    99+
    2023-06-03
  • MySQL数据库管理--迁移表操作步骤
    下面一起来了解下MySQL数据库管理--迁移表操作步骤,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL数据库管理--迁移表操作步骤这篇短内容是你想要的。      ...
    99+
    2024-04-02
  • 活动目录迁移需要的步骤
      1、在目标域上建立双向信任关系。   2、在目标域上关闭SID筛选   源域: old.com   目标域:net.com   Netdom trust old.com /domain:net.com /qu...
    99+
    2023-05-24
    步骤 需要 迁移 目录 活动 目标 口令 工具 ADMT 文件
  • ubuntu系统迁移的步骤是什么
    迁移Ubuntu系统的步骤可以分为以下几个步骤: 备份数据:在迁移之前,首先要确保将所有重要的数据进行备份,以防止数据丢失或损坏...
    99+
    2023-10-26
    ubuntu
  • MySQL数据库数据文件路径迁移步骤
    一、关闭mysql. $ service mysqld stop 二、将/data/mysql下的mysql目录mv(移动)到data目录。 mysql> show variables like...
    99+
    2024-04-02
  • Mongodb数据迁移步骤是什么
    本篇内容介绍了“Mongodb数据迁移步骤是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!需求:需要将...
    99+
    2024-04-02
  • Android项目迁移到AndroidX的方法步骤
    1. 写在前面 迁移前请确认所有代码都已提交至代码托管平台或已手动备份! 迁移前请确认所有代码都已提交至代码托管平台或已手动备份! 迁移前请确认所有代码都已提交至代码托管平台...
    99+
    2022-06-06
    方法 Android
  • Anaconda环境克隆、迁移的详细步骤
    目录背景:1、查看conda环境:2、克隆base环境3、安装conda-forge和conda-pack工具4、将环境打包5、将压缩包放到目标主机的同版本Anaconda路径下的e...
    99+
    2024-04-02
  • docker迁移数据目录的方法步骤
    目录查看磁盘使用磁盘清理 (切勿轻易使用)迁移数据查看磁盘使用 # du -hs /var/lib/docker/ 237G /var/lib/docker/ # docke...
    99+
    2024-04-02
  • hadoop服务器迁移的步骤是什么
    Hadoop服务器迁移包括以下步骤: 确定迁移目标:确定新服务器的配置和位置,确保新服务器满足集群需求。 数据备份:在执行迁...
    99+
    2024-04-15
    hadoop
  • MySQL实验中不同字符集数据库迁移步骤是怎样的
    MySQL实验中不同字符集数据库迁移步骤是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。今天主要介绍下mysqldump怎么迁移编码...
    99+
    2024-04-02
  • 从MySQL迁移到Oracle数据库的详细步骤和方法
    系列文章目录 文章目录 系列文章目录前言一、备份MySQL数据库二、安装Oracle数据库三、数据转换四、导出MySQL数据五、导入数据到Oracle六、重新创建索引和约束七、测试和验证八、...
    99+
    2023-09-24
    数据库 mysql oracle
  • docker迁移备份仓库的步骤是什么
    要迁移和备份Docker仓库,可以按照以下步骤进行操作: 创建目标仓库:在迁移的目标主机上创建一个新的Docker仓库,用于接收...
    99+
    2023-10-23
    docker
  • MySQL数据如何实现迁移
    下文给大家带来有关MySQL数据如何实现迁移内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完MySQL数据如何实现迁移你一定会有所收获。   ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作