基础

UOS
  • 统信的操作系统
    – A结尾的是基于龙蜥 OpenAnolis
    – D结尾的是基于 debian 10
    – E结尾的是基于欧拉 OpenEuler

  • 安装后可以通过/etc下的文件来分辨
    – A版安装好以后可以 cat /etc/redhat-release
    – D版安装好以后可以 cat /etc/debian_version
    – E版安装好以后可以 cat /etc/UnionTech-release

  • 问题处理

    • 登录出问题时,通过快捷键CTRL+ATL+F2,进入终端可以参看错误
  • SSH登录

    • 开启端口和root登录(/etc/ssh/sshd_config)
      Port=22
      PermitRootLogin yes
    • 开启SSH服务
      sudo /etc/init.d/sshd start
    • 如果没有,需要安装
       sudo apt-get install openssh-server -y
  • 安装msodbcsql
    – 通过脚本安装有问题,无法更新

      #下载
      curl https://packages.microsoft.com/debian/10/prod/pool/main/m/msodbcsql18/msodbcsql18_18.3.2.1-1_amd64.deb --output msodbcsql18.deb
      #安装
      sudo dpkg -i msodbcsql18.deb
  • 问题

– SSL routines:ssl_choose_client_version:unsupported protocol
新系统升级了 openssl 的版本,提高了最低安全协议的版本,应该是为了安全,低版本的 ssl 不再被支持。/etc/ssl/openssl.cnf 修改MinProtocol项为TLSv1

[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT@SECLEVEL=1
达蒙数据库
数据库安装
  • 安装前准备

    • 新建 dmdba 用户
      ##创建用户所在的组,命令如下:
      groupadd dinstall -g 2001
      ##创建用户,命令如下:
      useradd  -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
      ##修改用户密码,命令如下:
      passwd dmdba 
    • 修改文件打开最大数
      vi /etc/security/limits.conf
      ##在最后需要添加如下配置:
      dmdba  soft      nice       0
      dmdba  hard      nice       0
      dmdba  soft      as         unlimited
      dmdba  hard      as         unlimited
      dmdba  soft      fsize      unlimited
      dmdba  hard      fsize      unlimited
      dmdba  soft      nproc      65536
      dmdba  hard      nproc      65536
      dmdba  soft      nofile     65536
      dmdba  hard      nofile     65536
      dmdba  soft      core       unlimited
      dmdba  hard      core       unlimited
      dmdba  soft      data       unlimited
      dmdba  hard      data       unlimited
    • 目录规划
      ## 数据库安装目录
      /home/dmdba
      ##实例保存目录
      mkdir -p /dmdata/data 
      ##归档保存目录
      mkdir -p /dmdata/arch
      ##备份保存目录
      mkdir -p /dmdata/dmbak
    • 修改目录权限
       ##新建的路径目录权限的用户修改为 dmdba,用户组修改为 dinstall
      chown -R dmdba:dinstall /dmdata/data
      chown -R dmdba:dinstall /dmdata/arch
      chown -R dmdba:dinstall /dmdata/
      ##给路径下的文件设置 755 权限。命令如下:
      chmod -R 755 /dmdata/data
      chmod -R 755 /dmdata/arch
      chmod -R 755 /dmdata/dmbak
    • 安装Java
       sudo apt-get install openjdk-11-jdk
      ## 设置Java环境
      sudo vi /etc/environment
      JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
      DM_JAVA_HOME=$JAVA_HOME
  • 安装

       #挂载镜像
      mount -o loop dm8_20240116_x86_rh7_64.iso /mnt
      su - dmdba
      cd /mnt
      # 不带参数为图形模式,需要安装java环境
      ./DMInstall.bin -i
    快速入门
  • 达梦要求高IO性能的硬盘

  • 缺省端口号5236

  • 初始化数据库

       su - dmdba
       cd dmdbms/bin
       # CHARSET 0、1、2。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。缺省值为 0
      ./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=0 DB_NAME=OPMDB INSTANCE_NAME=OPMDB
      # 生成服务。到/home/dmdba/dmdbms目录
      cd ..
      sudo ./script/root/dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/OPMDB/dm.ini -p OPMDB
      #启用/开始
      sudo systemctl enable DmServiceOPMDB.service
      sudo systemctl start DMServiceOPMDB.service
      #图形模式(dmdba用户下,没有设置DISPLAY=:0)
      dmdbms/tool/dbca.sh
      # 可以生成数据库实例,手动生成数据库服务
  • 创建表空间

      su - dmdba
      cd dmdbms/bin
      ./disql SYSDBA/SYSDBA \`create_tablespace_uniic.sql
    
      # create_tablespace_uniic.sql内容为
      -- 创建表空间
      create tablespace uniic datafile '/dmdata/data/UniDB/UNIIC.DBF' size 128 autoextend on next 100;
      -- 创建用户
      create user UNIFOUNDIC identified by "Unifound808&" hash with SHA512 salt;
      -- 设置用户对应表空间
      alter user UNIFOUNDIC default tablespace uniic;
      -- 赋予用户数据库权限
      grant "DBA","PUBLIC","RESOURCE","SOI" to "UNIFOUNDIC";
    
      exit
  • DM管理工具(tool/manage)

    • 启动manager异常时,可能在dmdba用户下,没有设置DISPLAY=:0
      使用SYSDBA(密码SYSDBA)建立连接,用户\管理用户\创建用户 CCMADMIN
  • /etc/odbcinst.ini

      [DM8 ODBC DRIVER]
      Description = ODBC DRIVER FOR DM8
      Driver = /lib/libdodbc.so
  • /etc/odbc.ini

      [dm]
      Description = DM ODBC DSN
      Driver = DM8 ODBC DRIVER
      SERVER = localhost
      TCP_PORT = 5236
  • $DM_HOME/bin要加到使用ODBC功能的系统路径中(LD_LIBRARY_PATH),否则会导致libdodbc.so(上面的Driver路径要指向数据库安装路径中的drivers/odbc,也可以将此文件复制到/lib下)无法打开(依赖库在$DM_HOME/bin目录下)。

      [Driver Manager]Can't open lib '/home/dmdba/dmdbms/drivers/odbc/libdodbc.so' : file not found
    In /etc/envrionment添加
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin

以上方法可行性时,将环境变量设置放到opmserver.service文件中,在[Service]中添加

    [Service]
    Environment="LD_LIBRARY_PATH=/home/dmdba/dmdbms/bin"
  • 创建表空间只能在dmdba用户目录下才可以,否则会创建不成功

  • 创建管理用户CCMAdmin,绑定表空间OPMDB

  • 使用CCMAdmin

  • 数据库执行sql语句,例如insert 语句,发现查询不到数据。需要submit(提交)才能执行完成,这与sqlServer的sql语句存在一点差异。[在达蒙管理端(manager)执行sql语句插入时,必须submit(提交/刷新)]

  • tblCurriculum 的字段Class生成索引时出错

  • 其他

  • 一个实例,一个服务,实例之间各自独立

  • 卸载

      ./uninstall.sh -i
集成到Spring
  • dm库使用8.1.2.141

  • sql语句

    • 不使用单反引号(`)(用户表名和字段名)
    • 单独创建索引
    • 字符串中包含单引号的改为’’(mysql中为')
    • 数据类型json处理, VARCHAR CONSTRAINT ensure_json
    • 表增加字段时,无法调整(指定)位置

      部署

  • 安装unixodbc

      sudo apt-get install unixodbc
  • 安装mssql驱动
    参考下面的MS Server ODBC驱动安装.
    安装完成自动在/etc/odbcinst.ini文件中生成驱动块

      [ODBC Driver 17 for SQL Server]
      Description=Microsoft ODBC Driver 17 for SQL Server
      Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.1
      UsageCount=1
  • 配置数据源(修改/etc/odbc.ini)

      [116.62.172.199]
      Driver=ODBC Driver 17 for SQL Server
      Description= SQL Server DSN
      Server=116.62.172.199
      Port=1433
      Database=OPMDB
      TDS_Version=8.0

    其中Driver为上一节驱动名, Server和Port分别为数据库地址和端口.[]内的为DSN(数据源)名称,用于配置连接API中DSN

ODBC驱动安装

在Linux下使用ODBC连接SQL Server数据库,需要进行以下几个步骤:

安装ODBC驱动程序

Linux下可以使用FreeTDS或unixODBC驱动程序连接SQL Server数据库,需要先安装相应的驱动程序。可以使用以下命令进行安装: - FreeTDS:sudo apt-get install freetds-dev - unixODBC:sudo apt-get install unixodbc unixodbc-dev

配置ODBC数据源

需要使用ODBC配置文件(odbc.ini)配置ODBC数据源,可以使用以下命令打开配置文件: sudo nano /etc/odbc.ini 在文件中添加以下内容:

   [SQLServerDSN]
   Driver=FreeTDS
   Description=SQL Server DSN
   Server=<server name or IP address>
   Port=<port number>
   Database=<database name>
   TDS_Version=8.0

其中,SQLServerDSN是数据源名称,Driver是ODBC驱动程序名称,Server是SQL Server的名称或IP地址,Port是SQL Server的端口号,Database是要连接的数据库名称,TDS_Version是FreeTDS的版本号。

配置ODBC驱动程序

需要使用ODBC驱动程序配置文件(freetds.conf或odbcinst.ini)配置ODBC驱动程序,可以使用以下命令打开配置文件: sudo nano /etc/freetds/freetds.conf 在文件中添加以下内容:

   [SQLServerDSN]
   host = <server name or IP address>
   port = <port number>
   tds version = 8.0

其中,SQLServerDSN是数据源名称,host是SQL Server的名称或IP地址,port是SQL Server的端口号,tds version是FreeTDS的版本号。

linux下用ODBC连接 连接 SQL Server

MS Server ODBC驱动安装

安装 Microsoft ODBC Driver for SQL Server (Linux)

Ubuntu
  • 运行 “sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18”时会有对话框进行确认,只能在Ubuntu环境中运行(ssh工具不行)

  • 安装完成后,在/etc/odbcinst.ini文件中会增加驱动块

    Microsoft ODBC 18

    Ubuntu 18.04 20.04 22.04 23.04

      if ! [[ "18.04 20.04 22.04 23.04" == *"$(lsb_release -rs)"* ]];
      then
          echo "Ubuntu $(lsb_release -rs) is not currently supported.";
          exit;
      fi
    
      curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
    
      curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
    
      sudo apt-get update
      sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
      # optional: for bcp and sqlcmd
      sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18
      echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
      source ~/.bashrc
      # optional: for unixODBC development headers
      sudo apt-get install -y unixodbc-dev

    :
    ####### Microsoft ODBC 17
    Ubuntu 16.04 18.04 20.04 22.04

      if ! [[ "16.04 18.04 20.04 22.04" == *"$(lsb_release -rs)"* ]];
      then
          echo "Ubuntu $(lsb_release -rs) is not currently supported.";
          exit;
      fi
    
      curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
    
      curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
    
      sudo apt-get update
      sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
      # optional: for bcp and sqlcmd
      sudo ACCEPT_EULA=Y apt-get install -y mssql-tools
      echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
      source ~/.bashrc
      # optional: for unixODBC development headers
      sudo apt-get install -y unixodbc-dev

备注(解决不能通过远程工具安装的问题):可以将设置环境变量“ACCEPT_EULA”替换为设置 debconf 变量“msodbcsql/ACCEPT_EULA”:echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections

文档更新时间: 2025-03-14 13:34   作者:方杰