信创迁移适配预研-达梦数据库DM8服务与客户端工具安装使用

简介: 信创迁移适配预研-达梦数据库DM8服务与客户端工具安装使用

背景


凡事预则立


听说我们的项目将来要部署到国产化平台上,数据库用的是达梦数据库,国产的这些组件也没有用过,就想着在虚拟机安装数据库服务(因为是在 CentOS7 上安装测试,所以图形化客户端无法使用,可以通过在远程/宿主 Windows 主机上选择仅安装客户端使用,eg:DM管理工具,DM数据迁移工具等),先研究下国产数据库的使用,包括基础的 CRUD 操作以及事务支持,方便将来的部署与维护。

image.png

由于本系列文章仅用于记录当时项目的国产化迁移过程,不涉及太多的理论内容,基本都是一系列的操作过程,所以行文上就直接上操作了。如果您有任何疑问,欢迎留言评论。


从前车马很慢,书信很远,一生只够爱一个人。

如今生活太快,时间太少,不要绕圈子,给我来个痛快的。


系统环境


CentOS7 上进行安装,虚拟主机信息如下:

[root@hadoop3 local]# uname -a
Linux hadoop3 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@hadoop3 local]# cat /proc/version
Linux version 3.10.0-1127.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Mar 31 23:36:51 UTC 2020
[root@hadoop3 local]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)


下载


www.dameng.com/ucenter/doc…

手机号、短信验证码登录。


下载 x86CentOS7 下的 DM8 开发版。


解压, iso 解压,将 DMInstall.bin 上传至服务器,赋予可读、可写、可执行权限。


安装


执行安装文件


[root@hadoop3 local]# chmod +x DMInstall.bin 
[root@hadoop3 local]# ./DMInstall.bin 
解压安装程序..........
Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
        no swt-pi-gtk-3659 in java.library.path
        no swt-pi-gtk in java.library.path
        Can't load library: /tmp/swtlib-64/libswt-pi-gtk-3659.so
        Can't load library: /tmp/swtlib-64/libswt-pi-gtk.so
        /tmp/swtlib-64/libswt-pi-gtk-3659.so: libgtk-x11-2.0.so.0: 无法打开共享对象文件: 没有那个文件或目录
        at org.eclipse.swt.internal.Library.loadLibrary(Library.java:267)
        at org.eclipse.swt.internal.Library.loadLibrary(Library.java:174)
        at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:22)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
        at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132)
        at org.eclipse.swt.widgets.Widget.isValidSubclass(Widget.java:988)
        at org.eclipse.swt.widgets.Decorations.checkSubclass(Decorations.java:164)
        at org.eclipse.swt.widgets.Shell.<init>(Shell.java:258)
        at org.eclipse.swt.widgets.Shell.<init>(Shell.java:253)
        at org.eclipse.swt.widgets.Shell.<init>(Shell.java:204)
        at org.eclipse.swt.widgets.Shell.<init>(Shell.java:140)
        at com.dameng.common.gui.util.SWTUtility.canInitGUI(SWTUtility.java:380)
        at com.dameng.install.ui.MainApplication.run(MainApplication.java:80)
        at com.dameng.install.ui.MainApplication.main(MainApplication.java:436)
# 缺少相关的依赖,安装即可
yum install -y libXtst
# 再次执行安装
[root@hadoop3 local]# ./DMInstall.bin 
解压安装程序..........
Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
        no swt-pi-gtk-3659 in java.library.path
        no swt-pi-gtk in java.library.path
        /tmp/swtlib-64/libswt-pi-gtk-3659.so: libgtk-x11-2.0.so.0: 无法打开共享对象文件: 没有那个文件或目录
        Can't load library: /tmp/swtlib-64/libswt-pi-gtk.so
        at org.eclipse.swt.internal.Library.loadLibrary(Library.java:267)
        at org.eclipse.swt.internal.Library.loadLibrary(Library.java:174)
        at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:22)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
        at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132)
        at org.eclipse.swt.widgets.Widget.isValidSubclass(Widget.java:988)
        at org.eclipse.swt.widgets.Decorations.checkSubclass(Decorations.java:164)
        at org.eclipse.swt.widgets.Shell.<init>(Shell.java:258)
        at org.eclipse.swt.widgets.Shell.<init>(Shell.java:253)
        at org.eclipse.swt.widgets.Shell.<init>(Shell.java:204)
        at org.eclipse.swt.widgets.Shell.<init>(Shell.java:140)
        at com.dameng.common.gui.util.SWTUtility.canInitGUI(SWTUtility.java:380)
        at com.dameng.install.ui.MainApplication.run(MainApplication.java:80)
        at com.dameng.install.ui.MainApplication.main(MainApplication.java:436)
# 缺少相关的依赖,安装即可
yum install -y gtk2
[root@hadoop3 local]# ./DMInstall.bin 
解压安装程序..........
初始化图形界面失败,如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用"./DMInstall.bin -i"进行命令行安装。
[root@hadoop3 local]# ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:
解压安装程序..........
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14989
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 14989
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
可打开文件数过少,建议至少设置为65536或更多。
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [9]:21
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 1181M
请选择安装目录 [/opt/dmdbms]:
可用空间: 44G
是否确认安装路径(/opt/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:
安装前小结
安装位置: /opt/dmdbms
所需空间: 1181M
可用空间: 44G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2021-09-27 22:40:18 
[INFO] 安装达梦数据库...
2021-09-27 22:40:18 
[INFO] 安装 基础 模块...
2021-09-27 22:40:59 
[INFO] 安装 服务器 模块...
2021-09-27 22:41:29 
[INFO] 安装 客户端 模块...
2021-09-27 22:44:55 
[INFO] 安装 驱动 模块...
2021-09-27 22:46:20 
[INFO] 安装 手册 模块...
2021-09-27 22:46:32 
[INFO] 安装 服务 模块...
2021-09-27 22:46:35 
[INFO] 移动日志文件。
2021-09-27 22:46:37 
[INFO] 创建dmdba系统管理员完成。
2021-09-27 22:46:37 
[INFO] 正在启动DmAPService服务...
2021-09-27 22:46:41 
[INFO] 启动DmAPService服务成功。
2021-09-27 22:46:41 
[INFO] 安装达梦数据库完成。

安装结束~


安装系统服务


[root@hadoop3 ~]# cd /opt/dmdbms/bin
[root@hadoop3 bin]# ./dminit path=/opt/dmdbms/data page_size=16 log_size=2048 case_sensitive=n
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2022-07-09
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
 log file path: /opt/dmdbms/data/DAMENG/DAMENG01.log
 log file path: /opt/dmdbms/data/DAMENG/DAMENG02.log
write to dir [/opt/dmdbms/data/DAMENG].
create dm database success. 2021-09-27 23:23:09
[root@hadoop3 bin]# cd ../script/root/
[root@hadoop3 root]# ./dm_service_installer.sh -h
Usage: dm_service_installer.sh -t service_type [-p service_name_postfix] [-dm_ini dm_ini_file]
        [-watcher_ini watcher_ini_file ] [-monitor_ini monitor_ini_file] [-cssm_ini cssm_ini_file]
        [-dfs_ini dfs_ini_file] [-dcr_ini dcr_ini_file]
        [-dss_ini dss_ini_file] [-drs_ini drs_ini_file] [-dras_ini dras_ini_file] [-dcs_ini dcs_ini_file] [-server server_info]
        [-dmap_ini dmap_ini_file] [-dpc_mode SP|MP|BP] [-m open|mount] [-y dependent_service] [-auto true|false]
  or dm_service_installer.sh [-s service_file_path]
  or dm_service_installer.sh -h
   -t               服务类型,包括dmimon,dmap,dmserver,dmwatcher,dmmonitor,dmcss,dmcssm,dmasmsvr,dmdcs,dmdrs,dmdras,dmdss
   -p               服务名后缀,对于dmimon,dmap服务类型无效
   -dm_ini          dm.ini文件路径
   -watcher_ini     dmwatcher.ini文件路径.
   -monitor_ini     dmmonitor.ini文件路径.
   -dcr_ini         dmdcr.ini文件路径.
   -cssm_ini        dmcssm.ini文件路径.
   -dss_ini         dss.ini文件路径.
   -drs_ini         drs.ini文件路径.
   -dras_ini        dras.ini文件路径.
   -dcs_ini         dcs.ini文件路径.
   -dfs_ini         dfs.ini文件路径.
   -dmap_ini        dmap.ini文件路径.
   -dpc_mode        DPC节点类型.
   -server          服务器信息(IP:PORT)
   -auto            设置服务是否自动启动,值为true或false,默认true.
   -m               设置服务器启动模式open或mount,只针对dmserver服务类型生效,可选
   -y               设置依赖服务,此选项只针对systemd服务环境下的dmserver和dmasmsvr服务生效
   -s               服务脚本路径,设置则忽略除-y外的其他参数选项
   -h               帮助
[root@hadoop3 root]# ./dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p DMSERVER
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
[root@hadoop3 root]# systemctl status DmServiceDMSERVER
● DmServiceDMSERVER.service - DM Instance Service(DmServiceDMSERVER).
   Loaded: loaded (/usr/lib/systemd/system/DmServiceDMSERVER.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
[root@hadoop3 root]# systemctl start DmServiceDMSERVER
[root@hadoop3 root]# systemctl status DmServiceDMSERVER
● DmServiceDMSERVER.service - DM Instance Service(DmServiceDMSERVER).
   Loaded: loaded (/usr/lib/systemd/system/DmServiceDMSERVER.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2021-09-28 02:47:39 EDT; 13s ago
  Process: 12945 ExecStart=/opt/dmdbms/bin/DmServiceDMSERVER start (code=exited, status=0/SUCCESS)
 Main PID: 12986 (dmserver)
   CGroup: /system.slice/DmServiceDMSERVER.service
           └─12986 /opt/dmdbms/bin/dmserver path=/opt/dmdbms/data/DAMENG/dm.ini -noconsole
9月 28 02:47:22 hadoop3 systemd[1]: Starting DM Instance Service(DmServiceDMSERVER)....
9月 28 02:47:39 hadoop3 DmServiceDMSERVER[12945]: [39B blob data]
9月 28 02:47:39 hadoop3 systemd[1]: Started DM Instance Service(DmServiceDMSERVER)..


处理前面安装过程时的警告


可打开文件数过少,建议至少设置为 65536 或更多。

[root@hadoop3 ~]# ulimit -n
1024
[root@hadoop3 ~]# ulimit -n 65535
[root@hadoop3 ~]# ulimit -n
65535


客户端连接


因为我是典型安装,所以在安装达梦服务端的同时也安装了客户端。进入客户端后,操作类似于其他关系型数据库。

[root@hadoop3 dmdbms]# ./bin/disql
disql V8
用户名:SYSDBA
密码:
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 445.520(ms)
SQL> select * from v$version;
行号     BANNER                   
---------- -------------------------
1          DM Database Server 64 V8 
2          DB Version: 0x7000c
已用时间: 42.031(毫秒). 执行号:53300.
SQL> select id_code;
行号     id_code                                
---------- ---------------------------------------
1          1-2-38-21.07.09-143359-10018-ENT  Pack1
已用时间: 0.685(毫秒). 执行号:53301.


注意事项


达梦 SQL 查询必须指定 from 库名. 表名,除非用户名和库名一致时可省略库名。

  • 在默认的模式下建表
create table "SYSDBA"."city"
(
  "city_id" VARCHAR(36),
  "city_name" VARCHAR(100),
  "region_id" INT
);
  • 新建模式
create user SMART_CITY identified by SMART_CITY123 limit password_life_time 60, failed_login_attemps 5, password_lock_time 5; 
  --identifiled by 指定鉴定密码
  --limit password_life_time 指定最大生存时间(单位:天)
  --failed_login_attemps 指定最大登录失败次数
  --password_lock_time 指定锁定时间(单位:分)
create user SMARTCITY identified by SMART_CITY123 limit failed_login_attemps 5, password_lock_time 5;


目录
相关文章
|
2月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
4月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
3月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
5月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
1022 1
|
5月前
|
关系型数据库 MySQL 数据库
MySQL数据库上云迁移
本文介绍了将数据库迁移到RDS for Mysql的两种主要方法:停服迁移和不停服迁移。停服迁移适合可短暂中断服务的场景,通过mysqldump或DTS完成;不停服迁移适用于需保持业务连续性的场景,推荐使用DTS实现结构、全量及增量数据迁移。文中详细列出了每种方法的具体操作步骤,帮助企业根据需求选择合适的迁移方案。
176 1
MySQL数据库上云迁移
|
2月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
128 3
|
2月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。

热门文章

最新文章

下一篇
oss云网关配置