VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

设置DCI驱动

安装DCI驱动前需要先装好Vastbase G100 Libpq和unixODBC以及ODBC,并配置环境变量。

安装Vastbase G100 Libpq

安装Libpq有两种方式。

  • 通过提供的Libpq安装包安装。

解压Vastbase G100提供的Libpq,新建/usr/local/libpq目录,将解压后的 include和lib目录拷贝到/usr/local/libpq目录下,配置环境变量如下:

export LD_LIBRARY_PATH=/usr/local/libpq/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/usr/local/libpq/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/local/libpq/include:$CPLUS_INCLUDE_PATH
  • 通过Vastbase G100安装包安装。

安装过程可参考Vastbase G100 安装指南中的数据库安装步骤。新建/usr/local/libpq目录,将数据库安装目录中的 include和lib目录拷贝到/usr/local/libpq目录下,配置上述环境变量。

安装unixODBC

以下步骤以安装unixODBC-2.3.9为例。

1、解压安装包。

tar zxvf unixODBC-2.3.9.tar.gz

2、编译安装。

​cd unixODBC-2.3.9
​./configure --enable-gui=no #如果要在鲲鹏服务器上编译,请追加一个configure参数: --build=aarch64-unknown-linux-gnu 
​make  ​#安装可能需要root权限
​make install

安装ODBC

使用ODBC安装包ODBC安装可以选择安装opengGauss提供的安装包或者由Vastbase G100提供的安装包。

  • 安装openGauss-2.0.0-ODBC

1、下载对应平台的openGauss-2.0.0-ODBC(目前仅支持centos_x86_64、openeuler_aarch64、openeuler_x84_64)地址:https://opengauss.org/zh/download.html

2、替换客户端 openGauss 驱动程序。

解压 openGauss-2.0.0-ODBC.tar.gz, 将解压后 lib 目录下的库拷贝到”/usr/local/lib” 目录下。

  • 安装Vastbase G100 ODBC

1、解压由Vastbase G100提供的ODBC驱动安装包,安装包可联系工程师获取。

2、将解压后的lib目录、unixodbc/lib以及odbc/lib目录下的库拷贝到”/usr/local/lib” 目录下。

配置数据源

1、配置 ODBC 驱动文件。 在”/usr/local/etc/odbcinst.ini” 文件中添加以下内容。

[VastbaseMPP]   # 驱动器名称,对应数据源 DSN 中的驱动名。
Driver64=/usr/local/lib/psqlodbcw.so   # 驱动动态库的路径。
setup=/usr/local/lib/psqlodbcw.so   # 驱动安装路径,与Driver64 中动态库的路径一致。

2、配置数据源文件。 该步骤并不是必须的, 取决于获取连接的方式, 详见下章“连接数据库” 小节。 在”/usr/local/etc/odbc.ini” 文件中添加以下内容。

[Test]    # 数据源的名称。
Description=Test    # 数据源说明。
Driver=VastbaseMPP    # 驱动名,对应odbcinst.ini中的DriverName。
Servername=172.16.12.57    # 服务器的 IP 地址。
Database=vastbase    # 要连接的数据库的名称。
Username=odbc    # 数据库用户名称。
Password= Gauss@123    # 数据库用户密码。
Port=5432    # 服务器的端口号。
Sslmode=allow    # 开启SSL模式:disable否,allow可能,prefer可能,requrie是,verify-ca是, verify-full是。

配置环境变量

1、修改配置文件。

vim ~/.bashrc

配置文件中追加以下内容:

export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
export ODBCSYSINI=/usr/local/etc
export ODBCINI=/usr/local/etc/odbc.ini

2、执行如下命令使配置生效。

source ~/.bashrc

测试数据源配置

上述配置中该数据源的 DSN 为 Test,可以通过 isql 来验证配置是否正确。 命令如下。

isql -v Test

如果数据源配置中未指定用户名和密码,则用 isql 测试连接时需要指定用户密码:

isql -v Test yuntu Ttest@123

如果显示以下信息,表示配置正确,连接成功。

如果显示查找不到psqlodbcw.so动态库,如图:

在确认动态库确实存在之后,该错误可能是由于当前机器上缺少odbc驱动库的依赖库造成的,可以使用ldd命令观察缺失的动态库后安装对应的依赖库。

安装DCI驱动

1、解压由Vastbase G100提供的DCI驱动安装包,并将路径添加到LD_LIBRARY_PATH环境变量里,再将LD_LIBRARY_PATH添加到LIBRARY_PATH环境变量里。

vi ~/.bashrc

添加以下内容

export LD_LIBRARY_PATH="DCIpath:$LD_LIBRARY_PATH"
export LIBRARY_PATH="$LD_LIBRARY_PATH:$LIBRARY_PATH"

2、将解压后的.so和.a文件拷贝到“/usr/local/lib” 目录下。

3、将头文件放到/usr/include/路径下(头文件另外提供或者使用DCI12.c的头文件)。

使用DCI连接数据库

获取DCI连接

DCIEnv       *envhp;  // 环境句柄   
DCIServer     *srvhp;  // 服务句柄   
DCIError      *errhp;	 // 错误句柄
DCISvcCtx     *svchp;  //服务上下文句柄
/* 1.分配环境和错误句柄 */
if(DCIEnvCreate((DCIEnv **) &envhp, (ub4) DCI_DEFAULT,
                  (dvoid *) 0, (dvoid * (*)(dvoid *,size_t)) 0,
                  (dvoid * (*)(dvoid *, dvoid *, size_t)) 0,
                  (void (*)(dvoid *, dvoid *)) 0, (size_t) 0, (dvoid **) 0))
{
    printf("FAILED: DCIEnvCreate()\n");         
    return DCI_ERROR;        
}
If(DCIHandleAlloc( (dvoid *) envhp, (dvoid **) &errhp, (ub4) DCI_HTYPE_ERROR,
           (size_t)0, (dvoid **) 0))
{
    printf("FAILED: DCIHandleAlloc()\n");         
    return DCI_ERROR;
}
 /* 2.建立连接并创建简单会话*/
if(DCILogon(envhp, errhp, &svchp, username, strlen (username),
               password, strlen (password), "", 0))
{
    printf("FAILED: DCILogon()\n");         
    return DCI_ERROR;
}

关闭DCI连接

关闭连接时调用DCILogoff()函数关闭数据库连接:

if(DCILogoff(svchp, errhp))
{
    printf("FAILED: DCILogoff()\n");         
    return DCI_ERROR;
}
if(svchp)
    DCIHandleFree((dvoid *)svchp, (ub4)DCI_HTYPE_SVCCTX);
if(errhp)
    DCIHandleFree((dvoid *)errhp, (ub4)DCI_HTYPE_ERROR);
if(envhp)
    DCIHandleFree((dvoid *)envhp, (ub4)DCI_HTYPE_ENV);