0


达梦数据库 Docker版操作

一、下载

1. 下载地址:

产品下载 | 达梦数据库

选择 开发者版本 - Docker

2. 安装包

达梦版本 DM8

dm8_20230808_rev197096_x86_rh6_64_single.tar

二、安装

(一)安装环境 :

x86-64架构机器(主流的服务器和个人电脑基本都是)

root@VM-4-7-ubuntu:/home/ubuntu# arch
x86_64

本次演示环境:

腾讯云 Ubuntu22 在线(是什么无所谓,只要是Linux平台,X86_64架构)

(二)安装Docker

(三)安装Docker Compose

(四)安装Java

三、操作

(一)连接

(二)创建表空间

表空间解释:

可以理解为给数据库的数据存放指定一个文件目录,并不是数据库的概念

1.右击表空间

新建

2. 常规配置

  • 表空间名:MY_ESO
  • 文件路径:/opt/dmdbms/data/MY_ESO.DBF - 其中,/opt/dmdbms/data/是dm数据库安装到docker服务里面的数据实例目录- MY_ESO.DBF文件根据表空间名取,需要自己手动写(这里吐槽一下达梦)
  • 扩充尺寸:每次自动扩展的大小 100M
  • 扩展上限:扩展的最大值 10240M

3. 查看新建的表空间

(三)创建用户

1.开始创建

右键“管理用户”-“新建用户”

2. 常规

  • 密码大于9位,否则报错;
  • 表空间和索引空间,和之前创建的MY_ESO一致;

3. 查看用户

右击 “用户”-“属性”

4. 授权

右击 “ESO”-“修改”

所属角色,新增角色

5.模式(看作Mysql的库概念)

    右击 “模式”-“刷新”

    可以看到,多了一个和用户ESO同名的模式“ESO”;

    因为:新建用户会自动生成一个和用户对应的模式,所有的后续表操作,增删改查,都在模式“ESO”里面操作。

(四)创建数据库对象

四、迁移 dm->dm

0 准备工作

迁出方:源数据库 local,ESO模式(库)里有表

迁入方:目的数据库 腾讯云,ESO模式(库)里没有表

甚至,连ESO模式都没有,需要创建用户后才能看到(不创建其实也不影响迁移,但建议创建)

(一)Dm数据迁移工具

1 打开DM数据迁移工具

2 新建工程

2.1 开始

右键空白处,“新建工程”

2.2 常规

工程名:local迁移到腾讯云 dm - dm

3 新建迁移

3.1 开始

展开工程,右击“迁移” - “新建迁移”

3.2 常规

4 迁移方式

4.1 DM-DM
版本选择
    目前DM最高版本是8,我的版本也是8,这里最高只能选6,搞不懂什么意思。

    一开始先选dm6-> dm6试试,发现行不通;

    后面确定是选了dm-dm就行。

数据源

目的

迁移选项

默认不动

指定模式

指定对象

审阅并完成

结果

处理错误
查看错误详情

定位错误

发现这个默认值有问题,不确定DM一会行一会不行的,那就,改成tinyint。

原始sql

达梦sql

修改

改成

alter table "ESO"."MT_SHARE" modify "DELETED" TINYINT;

alter table "ESO"."MT_SHARE" alter column "DELETED" set default (0);

重更新执行出错的操作

使用腾讯云的SYSDBA账号查看迁移结果

使用腾讯云的ESO账号查看迁移结果

spring java配置,连接腾讯云的达梦服务
#      local
      driver-class-name: dm.jdbc.driver.DmDriver
      url: jdbc:dm://localhost:5236/ESO?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
#      username: SYSDBA # 用这个账户,所有的表名前面,必须加上 模式.表名 例如 ESO.schedule_job
#      password: SYSDBA
      username: ESO # 这个账户ESO,与模式ESO是对应的,不用写模式.
      password: a123456789

4.2 DM=》SQL=》DM

遇到无法和甲方服务器直接内网连接的情况,需要导入导出

如果遇到导入导出按钮是灰色禁用的情况,请看五、2小节去处理下;

4.2.1 选择迁移方式 DM=>SQL

4.2.2 设置导出的sql脚本信息

4.2.3 迁移选项

保持不变

4.2.4 指定模式

源模式:ESO 理解为导出的库

目的模式:ESO理解为要导入的库

4.2.5 指定对象

全选即可

后面就是审阅然后完成了

4.2.6 选择迁移方式SQL=》DM

4.2.7 要导入的sql文件

后面就是输入要导入的dm数据库账号密码,然后审阅完成即可!

五、问题

1 本地开发机器的dm迁移云上dm后,服务器崩溃

spring工程无法连接到腾讯云的达梦服务

然后发现达梦管理工具也连接不上了

然后发现我的云服务器也登录不了了

ip和端口服务都是正常的

磁盘的读写异常

果断重启,然后都恢复了!!!

2 WIndows版本的达梦图形化客户端,发现导入导出按钮是灰色的禁止状态,

将达梦安装目录,例如E:\dmdbms\bin目录加载到环境变量里,这样导入导出功能就能正常使用了。 ​​​

DM_HOME

%DM_HOME%\bin

配置完成后,重启打开dm管理工具

3 dimp导入报错:该工具不能解析此文件,请使用更高版本的工具

查看本地导出机器的版本

select build_version from v$instance;

现场需要导入的机器是也是DM V8,但是是2022年的版本,这都能报错!!(再次吐槽达梦ε=(´ο`*)))唉)

也就是虽然版本一样,但是小版本不一样也会失败!!!

最后,改成dm导出sql,然后sql导入dm的方式,解决。

标签: docker 运维 数据库

本文转载自: https://blog.csdn.net/weixin_38969534/article/details/135957290
版权归原作者 重生1993 所有, 如有侵权,请联系我们删除。

“达梦数据库 Docker版操作”的评论:

还没有评论