当前位置:网站首页>金仓数据库 Pro*C 迁移指南( 4. KingbaseES 的 Pro*C 迁移指南)

金仓数据库 Pro*C 迁移指南( 4. KingbaseES 的 Pro*C 迁移指南)

2022-08-03 02:52:00 沉舟侧畔千帆过_

4. KingbaseES 的 Pro*C 迁移指南

本部分描述了关于 KingbaseES 的 Pro*C 的环境搭建和程序开发示例。

本部分包含以下章节:

  • 迁移前准备

  • 工程搭建与迁移

  • 数据库服务与连接配置

4.1. 迁移前准备

在开始工程迁移前,需要做好一系列准备,包括:

  • 适配度评估

  • 系统环境评估

4.1.1. 适配度评估

迁移前,需确认 KingbaseES 所支持的数据类型和函数是否满足您的业务需求。 您可以参考 KingbaseES Pr*oc 对 Oracle Pro*c 的兼容 章节中的表格,评估是否可以完成迁移工程。

4.1.2. 系统环境评估

除了特性支持适配度以外,还需要考虑使用的平台是否支持 KingbaseES 数据库。目前 KingbaseES 支持的平台如下:

  • Windows 系统: 64 位操作系统,可运行 64 位 / 32 位 VS2013

    在该平台上,可兼容 release/debug 版本的 OCCI。

  • Linux 系统: 各种主流的操作系统 64 位发行版本的 CPU 平台,如 x86/arm/mipsel/loongarch64

    默认使用 gcc4.8.5 。

注意:

由于在 gcc5.1 版本之后重新实现了 C++ 底层的 string 类和 list 类,为了与原有方式兼容,引入了双重 ABI。新版本 gcc 默认使用新的 ABI, 即使用新版本 C++ 库,也可通过设置 gcc 参数定义宏_GLIBCXX_USE_CXX11_ABI=0(默认 1 表示新 ABI)以表示使用旧版本的 ABI,使用旧版本的 C++ 库。

在使用驱动之前,要明确项目所使用 gcc 版本、是否使用新的 ABI, 以及编译数据库驱动的 gcc 版本。

若项目使用高版本 gcc(大于 5.1)且使用新的 ABI (默认), 在连接低版本 gcc 编译的驱动时,会报错 undefined symbol,因要求提供高版本 gcc 编译的驱动。

若项目所在系统使用高版本 gcc,但在编译应用时指定了(_GLIBCXX_USE_CXX11_ABI=0)且又使用高版本 gcc 编译的数据库驱动,连接是也会报错,应要求提供低版本 gcc 编译的驱动。

4.2. 工程搭建与迁移

  • 工程搭建

  • 工程迁移

4.2.1. 工程搭建

以下为 Linux 环境下的工程搭建步骤:

  1. 将 kbproc 运行库 tar 包解压至需求目录,本例的解压目录为 /home/kingbase/kbproc,

2. 添加环境变量 $KINGBASE_CONFDIR(如.bashrc 中添加 "export KINGBASE_CONFDIR=/home/kingbase/kbproc/"); 该目录下需放置 kbproc 的配置文件 sys_service.conf。如果环境中因使用其他接口库而配置了该环境变量,则可复用该环境变量及其目录下的 sys_service.conf 文件。

3. 将 kbproc 中的 lib 目录添加至环境变量 LD_LIBRARY_PATH 中(如.bashrc 中添加 "export LD_LIBRARY_PATH=/home/kingbase/kbproc/lib:$LD_LIBRARY_PATH");

4. 在 makefile 文件中引入 kbproc 中的两个头文件目录和库文件目录。

4.2.2. 工程迁移

将 Oracle 的 Pro*C 工程迁移至 KingbaseES 是极为简单的,通常不需要在翻译后的代码层进行改动,仅需在 KingbaseES 的 Pro*C 运行时库安装后变更一下编译依赖即可。

使用其他数据库的嵌入式 SQL 应用程序需要特殊处理,即需要将嵌入式 SQL 的源码文件通过 Oracle 的 proc 预编译工具编译后,作为程序源文件来搭建应用工程。

工程搭建 章节中将详细介绍 KingbaseES Pro*C 运行库的安装和使用方法,应用层可按照对应的步骤更改编译依赖, 或者在工程代码编译(非 Oracle 数据库应用)完成后,按照搭建步骤重新搭建依赖 KingbaseES Pro*C 运行库的工程即可。

4.3. 数据库服务与连接配置

Pro*C 的 sys_service.conf 文件配置与 OCI 的配置方法相同,KingbaseES 的 DCI 兼容了 OCI,因此您可以参考《KingbaseES 客户端编程接口指南 - DCI》的 sys_service.conf 文件配置。

详见 KingbaseES 客户端编程接口指南 - DCI 的 DCI 服务的配置方法与参数说明。

4.4. 迁移后确认

迁移完成后,需确认迁移是否成功,以保证迁移后业务正常运行。

  1. 迁移完成后,编写一个程序连接到 KingbaseES 数据库,查看是否能连接成功。

    程序示例请参考 程序开发示例 中的连接数据库。

  2. 尝试运行您的业务,观察是否与迁移前行为一致。

如有疑问,请联系我们的技服人员。

原网站

版权声明
本文为[沉舟侧畔千帆过_]所创,转载请带上原文链接,感谢
https://blog.csdn.net/arthemis_14/article/details/126127773