iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >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://www.lsjlt.com/news/138562.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 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数据库迁移的步骤通常包括以下几个方面:1.备份原始数据库:在开始迁移之前,首先需要对原始数据库进行备份,以防止数据丢失或损...
    99+
    2023-09-27
    mysql数据库
  • 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
  • 活动目录迁移需要的步骤
      1、在目标域上建立双向信任关系。   2、在目标域上关闭SID筛选   源域: old.com   目标域:net.com   Netdom trust old.com /domain:net.com /qu...
    99+
    2023-05-24
    步骤 需要 迁移 目录 活动 目标 口令 工具 ADMT 文件
  • MySQL数据库数据文件路径迁移步骤
    一、关闭mysql. $ service mysqld stop 二、将/data/mysql下的mysql目录mv(移动)到data目录。 mysql> show variables like...
    99+
    2024-04-02
  • ubuntu系统迁移的步骤是什么
    迁移Ubuntu系统的步骤可以分为以下几个步骤: 备份数据:在迁移之前,首先要确保将所有重要的数据进行备份,以防止数据丢失或损坏...
    99+
    2023-10-26
    ubuntu
  • Mongodb数据迁移步骤是什么
    本篇内容介绍了“Mongodb数据迁移步骤是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!需求:需要将...
    99+
    2024-04-02
  • hadoop服务器迁移的步骤是什么
    Hadoop服务器迁移包括以下步骤: 确定迁移目标:确定新服务器的配置和位置,确保新服务器满足集群需求。 数据备份:在执行迁...
    99+
    2024-04-15
    hadoop
  • 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
  • 从MySQL迁移到Oracle数据库的详细步骤和方法
    系列文章目录 文章目录 系列文章目录前言一、备份MySQL数据库二、安装Oracle数据库三、数据转换四、导出MySQL数据五、导入数据到Oracle六、重新创建索引和约束七、测试和验证八、...
    99+
    2023-09-24
    数据库 mysql oracle
  • MySQL实验中不同字符集数据库迁移步骤是怎样的
    MySQL实验中不同字符集数据库迁移步骤是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。今天主要介绍下mysqldump怎么迁移编码...
    99+
    2024-04-02
  • Mysql如何实现数据迁移
    这篇文章将为大家详细讲解有关Mysql如何实现数据迁移,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MySQL迁移通常使用的有三种方法:1、数据库直接导出,拷贝文件到新服...
    99+
    2024-04-02
  • docker迁移备份仓库的步骤是什么
    要迁移和备份Docker仓库,可以按照以下步骤进行操作: 创建目标仓库:在迁移的目标主机上创建一个新的Docker仓库,用于接收...
    99+
    2023-10-23
    docker
  • 阿里云数据库迁移步骤详解
    随着信息化的快速发展,企业对数据库的需求也在不断变化。有时,由于某种原因,企业可能需要将现有的数据库迁移到阿里云数据库。本文将详细介绍阿里云数据库迁移的步骤,希望能对您有所帮助。 一、准备阶段在开始迁移之前,需要对现有的数据库进行详细的了解...
    99+
    2023-11-10
    阿里 详解 步骤
  • Vite3迁移Webpack5的实现
    目录为什么要做迁移现有问题性能提升webpack5为什么快安装依赖webpack5配置webpack.base.conf.jswebpack.dev.jswebpack.prod.j...
    99+
    2023-05-18
    Vite3迁移Webpack5 Vite3 Webpack5迁移
  • 实时同步!从MySQL到SelectDB的无缝数据迁移
    随着数据分析在业务决策中变得日益重要,数据实时同步和分析成为企业提升竞争力的关键。MySQL 作为广泛使用的关系型数据库,其数据存储丰富,但无法满足大规模数据分析和高并发查询的需求。而 SelectDB 作为一款专为大数据分析设计的分布式数...
    99+
    2023-09-06
    mysql 数据库 数据库开发 dba
  • 将Django项目迁移到linux系统的详细步骤
    目录Django项目配置修改项目环境以及数据库打包linux系统中的配置1、python3的安装2、第二步就是数据库的配置项目整合与配置总结Django项目配置修改 我们需要把原先的Django项目进行修改才能更好地进行...
    99+
    2023-03-15
    Django项目迁移到linux Django项目迁移 Django项目迁移linux系统
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作