达梦数据库使用

包括达梦数据库的安装、配置、适配mysql、备份与还原内容,具体的内容参考文档。

  • 安装达梦

可以采用本地部署和Docker部署,具体的包在达梦官网地址获取;

地址:产品下载-达梦数据

  1. Windows安装
  1. 选择对应平台下载安装包
  2. 以Windows资源管理器打开.iso文件
  3. 双击setup.exe进行安装
  4. 打开数据库配置助手创建数据库实例

最好把页大小设置大一点,不然有记录超过页大小需要设置表的开启长记录设置。

  1. Docker安装

Compose配置文件

version: '3'

services:

  dmdbms:

    image: dm8_single:dm8_20230808_rev197096_x86_rh6_64

    environment:

      - PAGE_SIZE=32

      - CASE_SENSITIVE=0

      - ENABLE_BLOB_CMP_FLAG=1

      - GROUP_OPT_FLAG=1

      - LD_LIBRARY_PATH=/opt/dmdbms/bin

      - EXTENT_SIZE=32

      - BLANK_PAD_MODE=1

      - LOG_SIZE=1024

      - UNICODE_FLAG=1

      - LENGTH_IN_CHAR=1

      - INSTANCE_NAME=dm8

    volumes:

      - /data1/xhjy/dm8/data:/opt/dmdbms/data

    deploy:

      replicas: 1 #制定容器数量

      restart_policy:

        condition: any

        delay: 10s

        max_attempts: 3

        window: 120s

      resources:

        limits:

          memory: 21024M  #内存不超过1024M

      update_config:

        parallelism: 1 # 每次启动一个容器一份服务

        delay: 5s    # 更新一组容器之间的等待时间

        monitor: 10s # 单次更新多长时间后没有结束则判定更新失败

        max_failure_ratio: 0.1 # 更新时能容忍的最大失败率

    ports:

      - "30236:5236"

单独启动

docker run -d -p 30236:5236 --restart=always --name dm8 --privileged=true -e PAGE_SIZE=32 -e CASE_SENSITIVE=0 -e ENABLE_BLOB_CMP_FLAG=1  -e GROUP_OPT_FLAG=1  -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e  EXTENT_SIZE=32 -e BLANK_PAD_MODE=1 -e LOG_SIZE=1024 -e UNICODE_FLAG=1 -e LENGTH_IN_CHAR=1 -e INSTANCE_NAME=dm8 -v /root/software/dm8/data:/opt/dmdbms/data dm8_single:dm8_20230808_rev197096_x86_rh6_64

  • 配置达梦

修改数据库配置文件,并替换文件,主要目的是适配语法支持groupby和大字段比较。然后开启日志备份。

dm.ini文件修改

具体内容参考如下文件

  • Mysql迁移到达梦

建表语句转化约束

1.除主键索引外都建议使用单独语句进行索引新建

例子:

CREATE INDEX "type_idx" ON "sd_dt_fd"."test_tinyint" ("id", "type");

CREATE UNIQUE INDEX "typtype_uidxe_idx" ON "sd_dt_fd"."test_tinyint" ("id", "type");

2.不能使用USE BTREE

3.int相关字段类型不能标注长度

4.json字段转换为varchar并添加检查约束CHECK("array_json" IS JSON),需要根据字段标识长度

varchar(1024) CHECK("average_load_rate" IS JSON)

5.所有的反引号`都替换为"

6.不支持UNSIGNED无符号标识

7.不同的表,同名索引字段,同索引名称不允许建索引,会报索引冲突,索引命名建议以"表名_索引名"命名

8.mediumtext、tinytext等字段类型需要替换为text类型

9.double数据类型不能带长度与精度

10.存储json的char类型需要把转义字符也计算长度,或者直接去掉转义字符

11.超长记录需要开启表的超长记录选项(单条记录超过页大小的一半),含有长json字段的表开启,或者重新设置页大小为32K

例子:

alter table "sd_dt_fd"."bidding_result" enable using long row;

12.time数据类型不支持24:00:00

13.约束报错查询表select * from all_cons_columns where constraint_name='CONS134220431';

14.字符串New Year's Day无法识别,因为'是字符串标识,使用''如New Year''s Day

15.datetime是带默认精度6位,目前建表使用datetime(0)精度为0

16.表的说明单独语句使用,例如

COMMENT ON TABLE "sd_dt_fd"."sys_config" IS '系统配置管理';

四、备份与还原

推荐dimp、dexp工具备份,还有其他的备份方式,不推荐使用。

  1. Windows管理客户端

通过客户端导入导出

  1. 命令备份

导出:dmdbms/bin/dexp USERID=SYSDBA/SYSDBA001@localhost:5236 DIRECTORY=/opt/dmdbms/data/backup FILE=imp_exp_${DATE_FORMAT}.dmp SCHEMAS="sd_dt_fd" LOG=exp_${DATE_FORMAT}.log

导入:dmdbms/bin/dimp USERID=SYSDBA/SYSDBA001@localhost:5236 DIRECTORY=/ FILE=imp_exp_20240102.dmp SCHEMAS="sd_dt_fd" LOG=imp.log

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值