DM8基本入门

一般情况下,一个数据库与一个实例对应,但在DMDSC环境下,一个数据库对应多个实例。 在达梦数据库中存储层次结构如下。 (1)数据库由1个或多个表空间组成。 (2)表空间由1个或多个数据文件组成。 (3)数据文件由1个或多个簇组成。 (4)段是簇的上级逻辑单元,1个段可以跨多个数据文件。 (5)簇由磁盘上连续的页组成,1个簇总是在1个数据文件中。 (6)页是数据库中最小的分配单元,也是数据库中使用的最小的I/O单元。

安装前检查

……(参考官方安装文档)

操作系统前置配置

……(参考官方安装文档)

创建用户

  1. groupadd dinstall //创建dinstall组
  2. useradd -g dinstall dmdba //创建dmdba用户
  3. passwd dmdba //设置dmdba用户的密码

创建目录

  1. mkdir /dm //创建路径
  2. chown dmdba:dinstall /dm //将路径/dm的所属用户和所属的组分别改为dmdba和dinstall
  3. chmod 755 /dm //将路径/dm的权限改为755

配置系统限制

  1. vim /etc/security/limits.conf
  2. dmdba hard nofile 65536
  3. dmdba soft nofile 65536
  4. dmdba hard stack 32768
  5. dmdba soft stack 16384

安装

将DM8的ISO上传到Linux系统并挂载
mount -o loop ...iso /media/
将安装文件复制到/opt/目录下并修改安装文件权限
cd /media //切换到路径/media
cp DMInstall.bin /opt/DMInstall.bin //将文件DMInstall.bin复制到/opt/路径下
chown dmdba:dinstall /opt/DMInstall.bin //更改/opt/DMInstall.bin的所属用户和所属组分别为dmdba和dinstall

  1. [root@localhost dmdba]# cd /home/dmdba/dminstall/
  2. [root@localhost dminstall]#
  3. [root@localhost dminstall]# ls
  4. dm8_20210712_x86_rh6_64_ent.zip
  5. [root@localhost dminstall]#
  6. [root@localhost dminstall]# unzip dm8_20210712_x86_rh6_64_ent.zip
  7. Archive: dm8_20210712_x86_rh6_64_ent.zip
  8. creating: dm8_20210712_x86_rh6_64_ent/
  9. inflating: dm8_20210712_x86_rh6_64_ent/dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso_SHA256.txt
  10. inflating: dm8_20210712_x86_rh6_64_ent/dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso
  11. [root@localhost dminstall]#
  12. [root@localhost dminstall]# mount -o loop /home/dmdba/dminstall/dm8_20210712_x86_rh6_64_ent/dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso /media/
  13. mount: /dev/loop0 写保护,将以只读方式挂载
  14. [root@localhost dminstall]#
  15. [root@localhost dminstall]# cp /media/DMInstall.bin /opt/
  16. [root@localhost dminstall]#
  17. [root@localhost dminstall]# chown dmdba:dinstall /opt/DMInstall.bin
  18. [root@localhost dminstall]#

切换到用户dmdba

  • 执行 ./DMInstall.bin 进行图形化安装 ```shell [root@localhost dminstall]# su - dmdba [dmdba@localhost ~]$ [dmdba@localhost ~]$ cd /opt/ [dmdba@localhost opt]$ [dmdba@localhost opt]$ ls DMInstall.bin rh [dmdba@localhost opt]$ ./DMInstall.bin
  1. - 执行 ./DMInstall.bin -i 进行命令行安装
  2. ```shell
  3. [dmdba@localhost opt]$ ./DMInstall.bin
  4. 解压安装程序..........
  5. 初始化图形界面失败,如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用"./DMInstall.bin -i"进行命令行安装。
  6. [dmdba@localhost opt]$ ./DMInstall.bin -i
  7. 请选择安装语言(C/c:中文 E/e:英文) [C/c]:
  8. 解压安装程序..........
  9. 欢迎使用达梦数据库安装程序
  10. 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:
  11. 请输入Key文件的路径地址 [dm.key]:
  12. 请输入key文件路径!
  13. 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
  14. 是否设置时区? (Y/y:是 N/n:否) [Y/y]:n
  15. 安装类型:
  16. 1 典型安装
  17. 2 服务器
  18. 3 客户端
  19. 4 自定义
  20. 请选择安装类型的数字序号 [1 典型安装]:
  21. 所需空间: 1181M
  22. 请选择安装目录 [/home/dmdba/dmdbms]:/dm/dmdbms
  23. 可用空间: 12G
  24. 是否确认安装路径(/dm/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y
  25. 安装前小结
  26. 安装位置: /dm/dmdbms
  27. 所需空间: 1181M
  28. 可用空间: 12G
  29. 版本信息:
  30. 有效日期:
  31. 安装类型: 典型安装
  32. 是否确认安装? (Y/y:是 N/n:否):y
  33. 2021-12-17 10:03:08
  34. [INFO] 安装达梦数据库...
  35. 2021-12-17 10:03:09
  36. [INFO] 安装 基础 模块...
  37. 2021-12-17 10:03:10
  38. [INFO] 安装 服务器 模块...
  39. 2021-12-17 10:03:10
  40. [INFO] 安装 客户端 模块...
  41. 2021-12-17 10:03:12
  42. [INFO] 安装 驱动 模块...
  43. 2021-12-17 10:03:12
  44. [INFO] 安装 手册 模块...
  45. 2021-12-17 10:03:13
  46. [INFO] 安装 服务 模块...
  47. 2021-12-17 10:03:13
  48. [INFO] 移动日志文件。
  49. 2021-12-17 10:03:14
  50. [INFO] 安装达梦数据库完成。
  51. 请以root系统用户执行命令:
  52. /dm/dmdbms/script/root/root_installer.sh
  53. 安装结束
  54. [dmdba@localhost opt]$ su
  55. 密码:
  56. [root@localhost opt]# cd /dm/dmdbms/script/root/
  57. [root@localhost root]# ./root_installer.sh
  58. 移动 /dm/dmdbms/bin/dm_svc.conf 到/etc目录
  59. 修改服务器权限
  60. 创建DmAPService服务
  61. Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
  62. 创建服务(DmAPService)完成
  63. 启动DmAPService服务
  64. [root@localhost root]# su - dbdba
  65. su: user dbdba does not exist
  66. [root@localhost root]# su - dmdba
  67. 上一次登录:五 12月 17 09:59:27 CST 2021pts/0 上
  68. [dmdba@localhost ~]$

配置环境变量

vim ~/.bash_profile //编辑文件.bash_profile
source ~/.bash_profile //让修改的文件.bash_profile生效
cat ~/.bash_profile //查看文件.bash_profile

export PATH export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/dm/dmdbms/bin” export DM_HOME=”/dm/dmdbms” export PATH=$PATH:$DM_HOME/bin

[dmdba@localhost bin]$ ./DmServiceDMSERVER status
DmServiceDMSERVER (pid 1383) is running.
[dmdba@localhost bin]$ ./DmServiceDMSERVER restart
Stopping DmServiceDMSERVER: [ OK ]
Starting DmServiceDMSERVER: [ OK ]
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
[dmdba@localhost bin]$ ./DmServiceDMSERVER status
DmServiceDMSERVER is stopped
[dmdba@localhost bin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
[dmdba@localhost bin]$

…/dmdbms/tool/(打开图形化工具)

DM服务查看器

./dmservice.sh
image.png

DM数据库配置助手

./dbca.sh
image.png

DM数据迁移工具

./dts
image.png

DM管理工具(进入主页可启动其他工具)

./manager
image.png
image.png

SQL交互式查询工具

./disql
image.png

DM控制台工具

./console
image.png

DM性能监视工具

./monitor
image.png

DM数据库实例

数据库一般指数据文件的集合,包括数据文件、日志文件、控制文件等。实例指数据库的后台进程/线程和内存的组合。数据库存储在服务器的磁盘上,而实例则存储于服务器的内存中。 通过运行DM实例,可以操作达梦数据库中的数据,实例仅在启动后才存在。

创建数据库实例

图形界面方式:(新手友好型)

使用DBCA工具
./dbca.sh

命令行方式:

使用DMINIT工具
dminit help

实例的启动与关闭

(1)通过dmserver命令
dmserver help
(2)通过DM服务查看器
(3)通过系统服务

DISQL工具

disql help

如果DM数据库实例使用的是默认的用户名和密码,可以通过直接输入disql命名,并输入两次回车来登录

连接默认端口实例

disql SYSDBA/SYSDBA //用SYSDBA用户连接数据库

连接非默认端口实例

  1. disql SYSDBA/SYSDBA@192.168.XX.XX:6236 //用SYSDBA连接数据库时指定IP地址和端口号
  2. SQL> conn SYSDBA/SYSDBA@192.168.XX.XX:5236 //用SYSDBA连接数据库时指定IP地址和端口号

备份与还原

逻辑备份与还原

逻辑备份
将指定对象(库级、模式级、表级、用户级)的数据导出到文件的备份方式。
利用DEXP导出工具实现

逻辑还原
逻辑备份的逆过程,利用DIMP工具,将由DEXP导出的备份数据重新导入到目标数据库。
dexp help
dimp help

模式级导出与导入实例

逻辑导出或导入有以下4种级别。
(1)数据库级(FULL):导出或导入整个数据库中的所有对象。
(2)用户级(OWNER):导出或导入1个或多个用户所拥有的所有对象。
(3)模式级(SCHEMAS):导出或导入1个或多个模式下的所有对象。
(4)表级(TABLE):导出或导入1个或多个指定的表或表分区。

模式是1个用户拥有的所有数据库对象的集合,每个用户都有自己默认的模式,用户默认的模式名与用户名相同。
一般情况下,OWNER与SCHEMAS的导入与导出是相同的。但用户可以包含多个模式,在这种情况下,SCHEMAS的入与导出是OWNER导入与导出的一个子集。

导出模式
dexp SYSDBA/SYSDBA file=sales.dmp log=sales.log directory=/dm/dmbak schemas=SALES

导入源模式:
dimp SYSDBA/SYSDBA file=sales.dmp log=sales2.log directory=/dm/dmbak schemas=SALES table_exists_action=replace

导入其他模式,模式名要大写。DAVE模式是一个空模式,导入之前是没有其他对象的。
dimp SYSDBA/SYSDBA file=sales.dmp log=sales3.log directory=/dm/dmbak remap_schema=SALES:DAVE

使用数据库管理工具备份与恢复

物理备份与还原

物理备份分联机备份(SQL备份工具)和脱机备份(DMRMAN工具)。


数据迁移:DM8 → kes86

image.png
image.png

达梦数据库备份恢复

大小写敏感问题

image.png
image.png

解决方法

新建数据库实例时不选择默认的字符串大小写敏感选项
image.png
image.png

记录总结

第一次迁移出错

类型不存在

image.png
类型不存在.png

关系不存在

关系不存在.png

没有找到数据类型

达梦数据类型.png
没有数据类型映射.png

解决方案

类型不存在——新建自定义类型

自定义类型.png
新建类型正确.png

关系不存在——检查迁移情况和SQL文件

经检查,关系”psp.vw_tab_ysxk_fw”迁移成功,即该关系在kes86数据库中是存在的。
检查VW_YSXK_FW.sql文件,暂未发现错误。
先搁置,第二次迁移如果还出错考虑SQL的语法、格式等问题。

没有找到数据类型——增加数据类型映射

增加数据类型映射.png

第二次迁移

第二次迁移的二次迁移,函数成功.png

发现

序列无法迁移

image.png

新建迁移任务.png

发现差异

DM8
image.png
KES86
image.png

发现问题

问题描述
本机安装有官网下载的Windows版本(KingbaseES_V008R006C005B0023PS002_Win64_single_install),原计划以在物理机安装的数据迁移工具分别建立部署在虚拟机上的DM8和KES86数据库连接,并进行数据迁移。但出现了错误,数据连接正常,新建数据迁移任务正常,但最后的任务概述都显示迁移对象为0。
重新安装物理机上的kes86版本为 KingbaseES_V008R006C004B0021_Win64_single_install ,数据迁移过程可顺利完成。

以下为实验复现:
(物理机安装的mysql向虚拟机安装kes86迁移数据,数据迁移工具为物理机上的kes86客户端)
image.png

image.png
kes86-B0023迁移任务
image.png
kes86-B0021迁移任务

可能的原因:kes86-B0023的license出现问题或者物理本身的问题。

image.png
image.png