暂无图片
暂无图片
暂无图片
暂无图片
1
暂无图片

GBase 8s数据迁移的学习心得

原创 吴毅 2022-05-06
1255

测试环境:操作系统版本:openEuler-20.03-LTS-SP2-everything-x86_64,硬件配置:4C8G 1台,服务器名称:gbase.wuyi.com, IP地址: 192.168.1.200

1. 通过学习《09.GBase 8s数据迁移》,了解数据迁移分类,数据迁移遇到的问题和数据迁移的方法。
特别注意:(1)默认的行分隔符为linux和windows系统时,windows系统多了\r,可以使用dos2unix工具来解决。(2)导入数据时,可能对字符进行转义会使数据产生膨胀,可根据情况对目标字段进行加长处理。(3)基于特定规则的换行符处理,导致不兼容第三方系统。(4)不同的汉字编码格式和数据截断导致数据产生乱码。

2. 数据迁移除了使用课程介绍的5种工具外,还可以使用GBaseMigrationToolkit迁移到GBase 8s或8a等数据库上。
测试数据使用股票采集的数据。因股票的数据直接写入到GBase 8s有缺失,可以先写入到mysql数据库,在通过GBaseMigrationToolkit迁移到GBase 8s。 在文章《GBase 8a的docker版安装、迁移和js连接测试》:https://www.modb.pro/db/240832有介绍mysql迁移GBase 8a,但特别注意迁移8a与8s有所不同。如图所示:
image.png
image.png
但是连接GBase 8s设置时,报错如图所示:
image.png
image.png
容易看错以为连接参数同时支持多种字符集,造成报错。使用下面命令查看GBase 8s中shares数据库属于那个字符集。

select * from sysmaster:sysdbslocale;
复制

image.png
经查询Zh_CN.57372就是utf8字符集,所以在连接参数上选择utf8即可。之后在迁移表里选择详细设置可以选择需要迁移的表。设置完成后,启动任务。
image.png
选择迁移2个表,只有shares_wide表成功,另外一个shares_basic表报错。但是在GBase 8s里无法查询到shares_wide的数据。
image.png
在mysql中查询shares数据库中shares_basic和shares_wide表的数据类型。
image.png
经过多次测试,发现不支持text类型,即使有些表迁移成功,但还是无法查询数据。只要把text类型的字段排除,而且发现text类型长度为65535,比较占空间资源。
image.png
简单在mysql里建立一个带text类型的表test来测试,在迁移过程中也会报错,如图所示:
image.png
image.png
通过数据迁移的操作,发现GBase 8s和GBase 8a有很多不同,GBase 8a大部分情况能兼容mysql,而GBase 8s却不支持textl类。在迁移到GBase 8a时, 不需要设置字符集,而GBase 8s需要相对应的字符集,否则会报错。对个人使用习惯来说,我比较喜欢GBase 8a,而GBase 8s的兼容性和使用习惯还有待改善。

最后修改时间:2022-05-06 10:11:55
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

墨天轮福利君
暂无图片
2年前
评论
暂无图片 0
您好,您的文章已入选墨力原创作者计划合格奖,10墨值奖励已经到账请查收! ❤️我们还会实时派发您的流量收益。
2年前
暂无图片 点赞
评论