注册
如何在同一个操作系统中安装多个不同版本的DM数据库
专栏/技术分享/ 文章详情 /

如何在同一个操作系统中安装多个不同版本的DM数据库

BruceCD 2025/11/28 72 0 0
摘要

概述

有时候我们在验证问题时需要在现有系统中安装多个不同版本的DM数据库进行功能的对比测试,我们可以按照下述方式执行。

步骤

安装二进制程序

  1. 使用DMInstall.bin进行安装,安装过程中如果提示本系统已经存在其他版本数据库,选择Y继续安装:
    图片.png
    在指定安装目录是需要选择另一个新的安装目录,例如:/home/dmdba/dmdbms_8_1_3_162/
    图片.png
    并且在安装过程中会提示/etc/dm_svc.conf已经存在是否替换,此处选择不替换:
    图片.png
  2. 安装完成后,输出提示在root权限下执行服务安装脚本,注意不要去执行,此步骤需要跳过:
    图片.png

配置环境变量

  1. 至此,数据库的二进制程序已经安装好了,但是直接去执行其中的二进制文件还是会有问题,如果直接该安装目录的bin子目录下执行./disql help | head -2,可以发现看到的版本信息其实是不对的,它还是前一个安装过的数据库的版本信息,退出后重新登录再查虽然信息对了,但是之前已安装的版本的二进制文件执行就有问题了,看到的信息都是后安装的版本。
    这是因为环境变量LD_LIBRARY_PATH所导致的问题,在执行二进制文件之前,加载器都会根据当前shell会话中的LD_LIBRARY_PATH查找所需要的动态库,所以我们如果需要在不同版本间进行切换使用它们的二进制工具,就需要重置LD_LIBRARY_PATH变量:
    export LD_LIBRARY_PATH=/home/dmdba/dmdbms_8_1_3_162/bin
    还需要将安装过程中安装程序自动添加到~/.bash_profile文件中的LD_LIBRARY_PATH和DM_HOME变量的赋值语句注释掉,以避免后一个安装的版本影响前面的版本:
    图片.png
    为了操作方便我们可以在bin目录下编写一个env.sh文件,将重置LD_LIBRARY_PATH的命令写入其中,需要用此版本的时侯先执行下source env.sh即可:
    图片.png

配置dmserver和dmap启动脚本

后续的数据库启动我们可以直接使用现有安装目录下的DmService脚本启动dmserver,DmAPService启动dmap进程

  1. 使用dminit命令初始化数据库,需要注意执行前必须重置LD_LIBRARY_PATH,否则版本可能不对:
    图片.png
  2. 启动dmserver我们可以使用DmService脚本执行,需要使用以下方法:
    1. 将bin/service_template/DmService拷贝一份到bin目录下,修改其中前面的DM_HOME和INI_PATH变量的初始赋值为实际的值:
      图片.png
    2. 在bin目录下执行./DmService start即可启动此数据库实例
  3. 同样的方式我们也可以启动新的dmap服务,不过需要注意要增加一个dmap.ini文件在其中指定ap_port为另一个未使用的端口:
    1. 将bin/service_template/DmAPService拷贝一份到bin目录下,修改其中前面的DM_HOME和DMAP_INI_PATH变量的初始赋值为实际的值:
      图片.png
    2. 在bin目录下增加文件dmap.ini,填入内容以下内容:
      ap_port=端口值
      图片.png
    3. 在bin目录下执行./DmAPService start
  4. 启动成功后可以查看进程已经完成:
    图片.png

总结

在同时部署多套不同版本的数据库安装包时,需要注意以下资源的分隔:

  1. 二进制文件的安装目录
  2. 数据库数据目录的安装目录
  3. 占用的监听端口

以上仅针对单机部署的数据库,如果是主备模式或者其他模式的部署,可以通过资源的隔离来达到部署目的,仅作为测试使用,不建议在生产环境使用。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服