DM8基本入门
一般情况下,一个数据库与一个实例对应,但在DMDSC环境下,一个数据库对应多个实例。 在达梦数据库中存储层次结构如下。 (1)数据库由1个或多个表空间组成。 (2)表空间由1个或多个数据文件组成。 (3)数据文件由1个或多个簇组成。 (4)段是簇的上级逻辑单元,1个段可以跨多个数据文件。 (5)簇由磁盘上连续的页组成,1个簇总是在1个数据文件中。 (6)页是数据库中最小的分配单元,也是数据库中使用的最小的I/O单元。
安装前检查
……(参考官方安装文档)
操作系统前置配置
……(参考官方安装文档)
创建用户
groupadd dinstall //创建dinstall组useradd -g dinstall dmdba //创建dmdba用户passwd dmdba //设置dmdba用户的密码
创建目录
mkdir /dm //创建路径chown dmdba:dinstall /dm //将路径/dm的所属用户和所属的组分别改为dmdba和dinstallchmod 755 /dm //将路径/dm的权限改为755
配置系统限制
vim /etc/security/limits.confdmdba hard nofile 65536dmdba soft nofile 65536dmdba hard stack 32768dmdba soft stack 16384
安装
将DM8的ISO上传到Linux系统并挂载mount -o loop ...iso /media/
将安装文件复制到/opt/目录下并修改安装文件权限cd /media //切换到路径/mediacp DMInstall.bin /opt/DMInstall.bin //将文件DMInstall.bin复制到/opt/路径下chown dmdba:dinstall /opt/DMInstall.bin //更改/opt/DMInstall.bin的所属用户和所属组分别为dmdba和dinstall
[root@localhost dmdba]# cd /home/dmdba/dminstall/[root@localhost dminstall]#[root@localhost dminstall]# lsdm8_20210712_x86_rh6_64_ent.zip[root@localhost dminstall]#[root@localhost dminstall]# unzip dm8_20210712_x86_rh6_64_ent.zipArchive: dm8_20210712_x86_rh6_64_ent.zipcreating: dm8_20210712_x86_rh6_64_ent/inflating: dm8_20210712_x86_rh6_64_ent/dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso_SHA256.txtinflating: dm8_20210712_x86_rh6_64_ent/dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso[root@localhost dminstall]#[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/mount: /dev/loop0 写保护,将以只读方式挂载[root@localhost dminstall]#[root@localhost dminstall]# cp /media/DMInstall.bin /opt/[root@localhost dminstall]#[root@localhost dminstall]# chown dmdba:dinstall /opt/DMInstall.bin[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
- 执行 ./DMInstall.bin -i 进行命令行安装```shell[dmdba@localhost opt]$ ./DMInstall.bin解压安装程序..........初始化图形界面失败,如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用"./DMInstall.bin -i"进行命令行安装。[dmdba@localhost opt]$ ./DMInstall.bin -i请选择安装语言(C/c:中文 E/e:英文) [C/c]:解压安装程序..........欢迎使用达梦数据库安装程序是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:请输入Key文件的路径地址 [dm.key]:请输入key文件路径!是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n是否设置时区? (Y/y:是 N/n:否) [Y/y]:n安装类型:1 典型安装2 服务器3 客户端4 自定义请选择安装类型的数字序号 [1 典型安装]:所需空间: 1181M请选择安装目录 [/home/dmdba/dmdbms]:/dm/dmdbms可用空间: 12G是否确认安装路径(/dm/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y安装前小结安装位置: /dm/dmdbms所需空间: 1181M可用空间: 12G版本信息:有效日期:安装类型: 典型安装是否确认安装? (Y/y:是 N/n:否):y2021-12-17 10:03:08[INFO] 安装达梦数据库...2021-12-17 10:03:09[INFO] 安装 基础 模块...2021-12-17 10:03:10[INFO] 安装 服务器 模块...2021-12-17 10:03:10[INFO] 安装 客户端 模块...2021-12-17 10:03:12[INFO] 安装 驱动 模块...2021-12-17 10:03:12[INFO] 安装 手册 模块...2021-12-17 10:03:13[INFO] 安装 服务 模块...2021-12-17 10:03:13[INFO] 移动日志文件。2021-12-17 10:03:14[INFO] 安装达梦数据库完成。请以root系统用户执行命令:/dm/dmdbms/script/root/root_installer.sh安装结束[dmdba@localhost opt]$ su密码:[root@localhost opt]# cd /dm/dmdbms/script/root/[root@localhost root]# ./root_installer.sh移动 /dm/dmdbms/bin/dm_svc.conf 到/etc目录修改服务器权限创建DmAPService服务Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.创建服务(DmAPService)完成启动DmAPService服务[root@localhost root]# su - dbdbasu: user dbdba does not exist[root@localhost root]# su - dmdba上一次登录:五 12月 17 09:59:27 CST 2021pts/0 上[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
DM数据库配置助手
DM数据迁移工具
DM管理工具(进入主页可启动其他工具)
SQL交互式查询工具
DM控制台工具
DM性能监视工具
DM数据库实例
数据库一般指数据文件的集合,包括数据文件、日志文件、控制文件等。实例指数据库的后台进程/线程和内存的组合。数据库存储在服务器的磁盘上,而实例则存储于服务器的内存中。 通过运行DM实例,可以操作达梦数据库中的数据,实例仅在启动后才存在。
创建数据库实例
图形界面方式:(新手友好型)
命令行方式:
使用DMINIT工具
dminit help
实例的启动与关闭
(1)通过dmserver命令
dmserver help
(2)通过DM服务查看器
(3)通过系统服务
DISQL工具
disql help
如果DM数据库实例使用的是默认的用户名和密码,可以通过直接输入disql命名,并输入两次回车来登录
连接默认端口实例
disql SYSDBA/SYSDBA //用SYSDBA用户连接数据库
连接非默认端口实例
disql SYSDBA/SYSDBA@192.168.XX.XX:6236 //用SYSDBA连接数据库时指定IP地址和端口号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


达梦数据库备份恢复
大小写敏感问题
解决方法
新建数据库实例时不选择默认的字符串大小写敏感选项

记录总结
第一次迁移出错
类型不存在


关系不存在

没有找到数据类型


解决方案
类型不存在——新建自定义类型


关系不存在——检查迁移情况和SQL文件
经检查,关系”psp.vw_tab_ysxk_fw”迁移成功,即该关系在kes86数据库中是存在的。
检查VW_YSXK_FW.sql文件,暂未发现错误。
先搁置,第二次迁移如果还出错考虑SQL的语法、格式等问题。
没有找到数据类型——增加数据类型映射

第二次迁移

发现
序列无法迁移


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

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




