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

MogDB安装compat-tools与whale兼容性测试

原创 Z·A·Q 2023-08-16
438

compat-tools插件

  • 本项目是一个兼容工具集合,旨在为从其他异构数据库,迁移到 OpenGauss 之后的系统,创建必要的函数,以及系统视图的兼容。为后续的系统运维与应用改造提供便利,项目地址https://gitee.com/enmotech/compat-tools
  • 脚本中带有版本控制,直接运行脚本时,会根据如下三种情况进行处理:
    • 若待创建对象在目标数据库中不存在,则直接进行创建
    • 若待创建对象版本高于目标数据库中的对象版本,则进行升级重建
    • 若待创建对象版本不高于目标数据库中的对象版本,则跳过创建
  • 下载安装包并解压
[omm@raca2 ~]$ ll
total 140
-rw-r--r-- 1 omm omm 141024 Aug 16 15:11 compat-tools-master.zip
[omm@raca2 ~]$ unzip compat-tools-master.zip 
[omm@raca2 ~]$ ll
total 144
drwx------ 3 omm omm   4096 Jun 15 16:23 compat-tools-master
-rw-r--r-- 1 omm omm 141024 Aug 16 15:11 compat-tools-master.zip
  • 查看软件架构
[omm@raca2 ~]$ cd compat-tools-master
[omm@raca2 compat-tools-master]$ ll
total 932
-rwxr-xr-x 1 omm omm   4908 Jun 15 16:23 batch_executor.py
-rw------- 1 omm omm   4231 Jun 15 16:23 checkMe.sql
-rw------- 1 omm omm   5966 Jun 15 16:23 CONTRIBUTING.md
-rw------- 1 omm omm  77393 Jun 15 16:23 DB2_Functions.sql
-rw------- 1 omm omm   6875 Jun 15 16:23 flush_privileges.sql
-rw------- 1 omm omm   9592 Jun 15 16:23 LICENSE
-rw------- 1 omm omm 109251 Jun 15 16:23 MySQL_Functions.sql
-rw------- 1 omm omm      0 Jun 15 16:23 MySQL_Views.sql
-rw------- 1 omm omm 169696 Jun 15 16:23 Oracle_Functions.sql
-rw------- 1 omm omm 225075 Jun 15 16:23 Oracle_Packages.sql
-rw------- 1 omm omm  15606 Jun 15 16:23 Oracle_Types.sql
-rw------- 1 omm omm 239481 Jun 15 16:23 Oracle_Views.sql
-rw------- 1 omm omm    212 Jun 15 16:23 Oracle_Views_Upper.sql
-rw------- 1 omm omm  22466 Jun 15 16:23 README.md
-rw------- 1 omm omm   7310 Jun 15 16:23 runMe.sql
-rw------- 1 omm omm   8421 Jun 15 16:23 test.py
-rw------- 1 omm omm    129 Jun 15 16:23 test_result.md
-rw------- 1 omm omm   9268 Jun 15 16:23 uninstall.sql
  • SQL文件
    • runMe.sql: 总执行脚本,执行创建所有的兼容性对象
    • checkMe.sql: 总检查脚本,检查目标数据库中的兼容性对象是否需要升级
    • flush_privileges.sql: 权限刷新脚本,将兼容性对象的使用权限授予全部用户
    • uninstall.sql: 卸载脚本,用于移除 compat-tools 创建的一系列兼容性相关对象
    • Oracle_Views.sql: Oracle数据库兼容性数据字典及视图
    • Oracle_Functions.sql: Oracle数据库兼容性函数
    • Oracle_Packages.sql: Oracle数据库管理包兼容
    • MySQL_Views.sql: MySQL数据库兼容性数据字典及视图 //TODO
    • MySQL_Functions.sql: MySQL数据库兼容性函数
    • DB2_Functions.sql: DB2数据库兼容性函数
  • 创建所有兼容性对象,包括: 视图,函数,管理包等。
[omm@raca2 compat-tools-master]$ gsql -d postgres -p 26000 -f runMe.sql

[omm@raca2 compat-tools-master]$ gsql -d postgres -p 26000
gsql ((MogDB 5.0.0 build 503a9ef7) compiled at 2023-06-26 16:30:36 commit 0 last mr 1804 )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

MogDB=# select count(*) from  compat_tools.compat_version;
 count 
-------
   381
(1 row)

whale插件

  • 下载地址https://www.mogdb.io/downloads/mogdb/all,根据数据库版本下载对应插件安装包
  • 解压tar包并安装
[omm@raca2 ~]$ tar -xzvf whale-5.0.0-01-CentOS-x86_64.tar.gz 
whale/Makefile
whale/whale--1.0.sql
whale/whale.control
whale/whale.so
[omm@raca2 ~]$ cd whale
[omm@raca2 whale]$ make install
  • 连接数据库,创建extension
[omm@raca2 ~]$ gsql -d postgres -p 26000
gsql ((MogDB 5.0.0 build 503a9ef7) compiled at 2023-06-26 16:30:36 commit 0 last mr 1804 )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

MogDB=# create extension whale;
ERROR:  function "round" already exists with same argument types
  • 报错原因:安装compat-tools插件时创建了round(timestamptz,text)函数,该函数已存在,因此,安装whale插件报错
  • 解决方式
1.先卸载compat-tools
[omm@raca2 compat-tools-master]$ gsql -d postgres -p 26000 -f uninstall.sql

2.执行create extension
MogDB=# create extension whale;
CREATE EXTENSION

3.重新安装compat-tools
[omm@raca2 compat-tools-master]$ gsql -d postgres -p 26000 -f runMe.sql
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论