目录
操作系统、数据库
1、下载达梦数据库
2、安装前准备
2.1、建立数据库用户和组
2.2、修改文件打开最大数
2.3、挂载镜像
2.4、新建安装目录
3、数据库安装
4、配置环境变量
5、初始化数据库实例
6、注册服务
7、使用数据库
8、卸载数据库
9、多实例管理
10、windows DM管理工具
10.1、下载安装windows DM管理工具
10.1、下载安装windows DM管理工具
11、文档查看
11.1、在线文档
11.2、安装程序中的本地文档
操作系统、数据库
操作系统:Debian 10
数据库:达梦数据库v8
1、下载达梦数据库
官方下载链接:产品下载 | 达梦数据库
官方安装文档:安装前准备 | 达梦技术文档
文件名:dm8_20230104_x86_rh6_64.zip
2、安装前准备
2.1、建立数据库用户和组
注意
安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。
建立数据库用户组、建立数据库用户、设置数据库用户密码
groupadd -g 12349 dinstall
useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
2.2、修改文件打开最大数
重启服务器后永久生效
使用 vi 编辑器打开 /etc/security/limits.conf 文件,在最后添加四条语句,命令如下:
vi /etc/security/limits.conf
dmdba hard nofile 65537
dmdba soft nofile 65537
dmdba hard stack 32768
dmdba soft stack 16384
切换到 dmdba 用户,查看是否生效,命令如下:
su - dmdba
ulimit -a
2.3、挂载镜像
切换到 root 用户,将 DM 数据库的 iso 安装包挂载在任意位置,例如 /dm 目录下,
新建挂载目录/dm
mkdir /dm
进入iso所在目录,这里的pathToIso修改为实际ISO所在目录。
cd pathToIso/dm8_20230104_x86_rh6_64.iso
执行如下命令挂载镜像:
mount -o loop dm8_20230104_x86_rh6_64.iso /dm
2.4、新建安装目录
在达梦家目录下创建 /dm 文件夹,用来安装 DM 数据库。命令如下:
mkdir /home/dmdba/dm
注意
使用 root 用户建立文件夹,待 dmdba 用户建立完成后
,需将文件所有者更改为 dmdba 用户,否则无法安装到该目录下
修改安装目录权限
将新建的安装路径目录权限的用户修改为 dmdba,用户组修改为 dinstall。命令如下:
chown dmdba:dinstall -R /home/dmdba/dm
给安装路径下的文件设置 755 权限。命令如下:
chmod -R 755 /home/dmdba/dm
3、数据库安装
切换到数据库用户进行安装
su - dmdba
进入达梦iso挂载目录,执行安装命令
cd /dm
./DMInstall.bin -i
由于数据库安装服务非root用户,无法创建服务。
需要以root用户执行下述脚本:建立数据库配置文件,进行数据库服务创建,配置systemd服务管理,配置开机自启动。
4、配置环境变量
切换到 root 用户进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入。
添加path环境变量,命令如下:
编辑 $DM_HOME/.bash_profile,使其最终效果如下图所示:
cd /home/dmdba/
vim .bash_profile
加入一行
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
然后切换至 dmdba 用户下,执行以下命令,使环境变量生效。
su - dmdba
source .bash_profile
5、初始化数据库实例
命令行初始化数据库实例
使用 dmdba 用户始化数据库实例,进入到 DM 数据库安装目录下的 bin 目录中,使用 dminit 命令初始化实例。
dminit 命令可设置多种参数,可执行如下命令查看可配置参数
./dminit help
关键字 | 说明(默认值) |
INI_FILE | 初始化文件dm.ini存放的路径 |
PATH | 初始数据库存放的路径 |
CTL_PATH | 控制文件路径 |
LOG_PATH | 日志文件路径 |
EXTENT_SIZE | 数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页 |
PAGE_SIZE | 数据页大小(8),可选值:4,8,16,32,单位:K |
LOG_SIZE | 日志文件大小(256),单位为:M,范围为:256M~2G |
CASE_SENSITIVE | 大小敏感(Y),可选值:Y/N,1/0 |
CHARSET/UNICODE_FLAG | 字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR] |
SEC_PRIV_MODE | 权限管理模式(0),可选值:0[TRADITION],1[BMJ],2[EVAL],3[ZB] |
LENGTH_IN_CHAR VARCHAR | 类型长度是否以字符为单位(N),可选值:Y/N,1/0 |
SYSDBA_PWD | 设置SYSDBA密码(SYSDBA) |
SYSAUDITOR_PWD | 设置SYSAUDITOR密码(SYSAUDITOR) |
DB_NAME | 数据库名(DAMENG) |
INSTANCE_NAME | 实例名(DMSERVER) |
PORT_NUM | 监听端口号(5236) |
BUFFER | 系统缓存大小(100),单位M |
TIME_ZONE | 设置时区(+08:00) |
PAGE_CHECK | 页检查模式(1),可选值:0/1/2 |
PAGE_HASH_NAME | 设置页检查HASH算法 |
EXTERNAL_CIPHER_NAME | 设置默认加密算法 |
EXTERNAL_HASH_NAME | 设置默认HASH算法 |
EXTERNAL_CRYPTO_NAME | 设置根密钥加密引擎 |
RLOG_ENCRYPT_NAME | 设置日志文件加密算法,若未设置,则不加密 |
USBKEY_PIN | 设置USBKEY PIN |
PAGE_ENC_SLICE_SIZE | 设置页加密分片大小,可选值:0、512、4096,单位:Byte |
ENCRYPT_NAME | 设置全库加密算法 |
BLANK_PAD_MODE | 设置空格填充模式(0),可选值:0/1 |
SYSTEM_MIRROR_PATH | SYSTEM数据文件镜像路径 |
MAIN_MIRROR_PATH | MAIN数据文件镜像 |
ROLL_MIRROR_PATH | 回滚文件镜像路径 |
MAL_FLAG | 初始化时设置dm.ini中的MAL_INI(0) |
ARCH_FLAG | 初始化时设置dm.ini中的ARCH_INI(0) |
MPP_FLAG | Mpp系统内的库初始化时设置dm.ini中的mpp_ini(0) |
CONTROL | 初始化配置文件(配置文件格式见系统管理员手册) |
AUTO_OVERWRITE | 是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖 |
USE_NEW_HASH | 是否使用改进的字符类型HASH算法(1) |
ELOG_PATH | 指定初始化过程中生成的日志文件所在路径 |
AP_PORT_NUM | 分布式环境下协同工作的监听端口 |
DFS_FLAG | 初始化时设置dm.ini中的DFS_INI(0) |
DFS_PATH | 启用dfs时指定数据文件的缺省路径 |
DFS_HOST | 指定连接分布式系统DFS的服务地址(localhost) |
DFS_PORT | 指定连接分布式系统DFS的服务端口号(3332) |
DFS_COPY_NUM | 指定分布式系统的副本数(3) |
DFS_DB_NAME | 指定分布式系统的中数据库名(默认与DB_NAME一致) |
SHARE_FLAG | 指定分布式系统中该数据库的共享属性(0) |
REGION_MODE | 指定分布式系统中该数据库的系统表空间数据文件的区块策略(0) 0:微区策略 1:宏区策略 |
HUGE_WITH_DELTA | 是否仅支持创建事务型HUGE表(1) 1:是 0:否 |
RLOG_GEN_FOR_HUGE | 是否生成HUGE表REDO日志(1) 1:是 0:否 |
PSEG_MGR_FLAG | 是否仅使用管理段记录事务信息(0) 1:是 0:否 |
CHAR_FIX_STORAGE | CHAR是否按定长存储(N),可选值:Y/N,1/0 |
SQL_LOG_FORBID | 是否禁止打开SQL日志(N),可选值:Y/N,1/0 |
DPC_MODE | 指定DPC集群中的实例角色(0) 0:无 1:MP 2:BP 3:SP,取值1/2/3时也可以用MP/BP/SP代替 |
HELP | 打印帮助信息 |
使用如下命令初始化数据库
dmdba@debian:~/dmdbms/bin$ ./dminit path=/home/dmdba/dm/data db_name=DAMENG instance_name=DMSERVER port_num=5236 CASE_SENSITIVE=0 CHARSET=1
数名 | 说明 |
---|---|
path=/home/dmdba/dm/data | 初始数据库存放的路径 |
db_name=DAMENG | 数据库名(DAMENG) |
instance_name=DMSERVER | 实例名(DMSERVER) |
port_num=5236 | 监听端口号(5236) |
下面是官方描述:供参考
需要注意的是页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 这四个参数,一旦确定无法修改,需谨慎设置。
extent_size 指数据文件使用的簇大小,即每次分配新的段空间时连续的页数。只能是 16 页或 32 页或 64 页之一,缺省使用 16 页。
page_size 数据文件使用的页大小,可以为 4 KB、8 KB、16 KB 或 32 KB 之一,选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降,缺省使用 8 KB。
case_sensitive 标识符大小写敏感,默认值为 Y 。当大小写敏感时,小写的标识符应用双引号括起,否则被转换为大写;当大小写不敏感时,系统不自动转换标识符的大小写,在标识符比较时也不区分大小写,只能是 Y、y、N、n、1、0 之一。
charset 字符集选项。0 代表 GB18030;1 代表 UTF-8;2 代表韩文字符集 EUC-KR;取值 0、1 或 2 之一。默认值为 0。
可以使用默认参数初始化实例,需要附加实例存放路径。此处以初始化实例到 /dm/data 目录下为例(执行初始化命令前,需要使用 root 用户授予 /dm/data 目录相应权限,可以参考修改目录权限),初始化命令如下:
./dminit path=/dm/data
dminit 默认参数
也可以自定义初始化实例的参数,参考如下示例:
以下命令设置页大小为 32 KB,簇大小为 32 KB,大小写敏感,字符集为 utf_8,数据库名为 DMDB,实例名为 DBSERVER,端口为 5237。
./dminit path=/dm/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y
CHARSET=1 DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5237
dminit 设置参数
注意
如果此处自定义了初始化参数,在后面的注册服务和启动数据库等步骤中,请按实际的自定义参数进行操作。
至此完成了DM数据库的命令行安装及初始化
6、注册服务
给刚初始化的数据库创建后台服务
需使用root用户创建
服务名叫做DmServiceDMSERVER
su - root
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dm/data/DAMENG/dm.ini -p DMSERVER
会自动创建systemd服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service → /lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
root@debian:/home/dmdba/dmdbms/script/root#
设置服务开机自启动,并开启服务。
systemctl enable DmServiceDMSERVER
开启服务
systemctl start DmServiceDMSERVER
查看服务
systemctl status DmServiceDMSERVER
root@debian:/home/dmdba/dmdbms/script/root#
● DmServiceDMSERVER.service - DM Instance Service(DmServiceDMSERVER).
Loaded: loaded (/lib/systemd/system/DmServiceDMSERVER.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-04-03 05:16:08 PDT; 2s ago
Process: 79472 ExecStart=/home/dmdba/dmdbms/bin/DmServiceDMSERVER start (code=exited, status=0/SUCCESS)
Main PID: 79495 (dmserver)
Tasks: 66
Memory: 544.4M
CGroup: /system.slice/DmServiceDMSERVER.service
└─79495 /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dm/data/DAMENG/dm.ini -noconsole
Apr 03 05:15:53 debian systemd[1]: Starting DM Instance Service(DmServiceDMSERVER)....
Apr 03 05:16:08 debian DmServiceDMSERVER[79472]: [39B blob data]
Apr 03 05:16:08 debian systemd[1]: Started DM Instance Service(DmServiceDMSERVER)..
root@debian:/home/dmdba/dmdbms/script/root#
命令行参数如下:
7、使用数据库
登录数据库
su - dmdba
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA@LOCALHOST:5236
格式:账号/口令@网络地址:端口号
账户:SYSDBA管理员账户
口令:初始化数据库可以指定,如没指定默认SYSDBA
端口号:初始化数据库指定的PORT_NUM
dmdba@debian:~/dmdbms/bin$ ./disql SYSDBA/SYSDBA@LOCALHOST:5236
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.979(ms)
disql V8
SQL> help
HELP
----
显示打印信息,键入HELP或者 ? .
HELP|? [topic]
APPEND 添加文本到当前行的末尾。
COLUMN 描述指定列的信息。
CONNECT 连接到服务器。
CLEAR 重置或清理指定操作的缓存。
DISCONNECT 提交所有修改到服务器,但不退出DISQL。要退出DISQL使用exit命令。
DESCRIBE 获取表或视图、存储过程、函数、包、记录、类的结构描述。
DEFINE 设置变量值,或者显示已定义的变量信息。
HOST 在不退出DISQL的情况下执行操作系统命令。
EDIT 打开一个文本编辑器,里面包含所有SQL记录。
EXIT 提交或者回滚所有修改,退出DISQL。
MORE 切换到下一个结果集。
LIST 显示最近执行的SQL语句或者PL/SQL块信息,或者使用 ";"命令。不显示DISQL命令。
PROMPT 发送指定的消息或者空行到用户的屏幕。
QUIT 提交或者回滚所有修改,退出DISQL。
SET 设置某个系统环境变量,设置的值会修改当前会话的DISQL系统设置,例如:
- 设置数据显示宽度
- 制定 HTML 格式
- 允许/禁止打印列头
- 设置每一页的行数
SHOW 显示某个DISQL的系统变量,或者当前DISQL的环境变量。
SPOOL 屏幕显示的内容输出到指定文件。
WHENEVER 当一个SQL命令,或者PL/SQL块生成一个错误的时候,执行特定的命令(默认是DISQL退出)
SQL> quit
dmdba@debian:~/dmdbms/bin$ pwd
/home/dmdba/dmdbms/bin
查看默认的所有用户
select username,user_id,default_tablespace,profile from dba_users:
查看数据库版本号
select * from v$version;
select id_code;
参数 | 说明 |
---|---|
DM Database Server 64 V8 | 达梦数据库管理系统目前最新的版本是8.0版本,简称DM8。 64 版本位数标识,64表示为64位版本,无64则表示为32位版本;V8 是大版本号。 |
B Version: 0x7000c | |
03134283968-20230103-178822-20033 | 03134283968 小版本号,20230103 版本编译时间;178822 代码SVN号;20033 分支代码号;后面如还有字段ENT是版本:ENT 版本标识,ENT表示企业版,还有STD标准版,SEC安全版。(其他标识为非通用的定制版) |
8、卸载数据库
切换到root用户
切换到root用户
su - root
停止服务
systemctl stop DmServiceDMSERVER
systemctl stop DmAPService.service
执行卸载程序
切换到dmdba用户
su - dmdba
cd /home/dmdba/dmdbms
./uninstall.sh -i
dmdba@debian:~/dmdbms$ ./uninstall.sh -i
请确认是否卸载达梦数据库(/home/dmdba/dmdbms/)? (y/Y:是 n/N:否):y
是否删除dm_svc.conf配置文件? (y/Y:是 n/N:否):y
正在删除所有数据库库服务
删除数据库服务DmAuditMonitorService
删除数据库服务DmInstanceMonitorService
删除数据库服务DmJobMonitorService
删除数据库服务DmAPService
删除数据库服务DmServiceDMSERVER
删除所有数据库库服务完成
正在删除数据库目录
删除bin目录
删除bin目录完成
删除bin2目录
删除bin2目录完成
删除include目录
删除include目录完成
删除desktop目录
删除desktop目录完成
删除doc目录
删除doc目录完成
删除drivers目录
删除drivers目录完成
删除jdk目录
删除jdk目录完成
删除jar目录
删除jar目录完成
删除samples目录
删除samples目录完成
删除script目录
删除script目录完成
删除tool目录
删除tool目录完成
删除web目录
删除web目录完成
删除uninstall目录
删除uninstall目录完成
删除license_en.txt文件
删除license_en.txt文件完成
删除license_zh.txt文件
删除license_zh.txt文件完成
删除uninstall.sh文件
删除uninstall.sh文件完成
删除数据库目录完成
使用root用户执行命令:
/home/dmdba/dmdbms/root_uninstaller.sh
dmdba@debian:~/dmdbms$
使用root用户执行清理命令
切换到root
su - root
/home/dmdba/dmdbms/root_uninstaller.sh
root@debian:/home/dmdba/dmdbms/script/root# /home/dmdba/dmdbms/root_uninstaller.sh
sh: 0: getcwd() failed: No such file or directory
删除DmAPService服务
Removed /etc/systemd/system/multi-user.target.wants/DmAPService.service.
删除DmServiceDMSERVER服务
Removed /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service.
删除/etc/dm_svc.conf文件
root@debian:/home/dmdba/dmdbms/script/root#
此卸载完毕
9、多实例管理
建立端口为5237的数据库实例
命令如下
切换到dmdba用户
su - dmdba
cd /home/dmdba/dmdbms/bin
dminit path=/home/dmdba/dm/data db_name=DAMENG_5237 instance_name=DMSERVER_5237 port_num=5237 CASE_SENSITIVE=0 CHARSET=1
dmdba@debian:~/dmdbms/bin$ dminit path=/home/dmdba/dm/data db_name=DAMENG_5237 instance_name=DMSERVER_5237 port_num=5237 CASE_SENSITIVE=0
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-01-03
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /home/dmdba/dm/data/DAMENG_5237/DAMENG_523701.log
log file path: /home/dmdba/dm/data/DAMENG_5237/DAMENG_523702.log
write to dir [/home/dmdba/dm/data/DAMENG_5237].
create dm database success. 2023-04-06 23:12:23
dmdba@debian:~/dmdbms/bin$
注册服务
切换到root用户
su - root
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dm/data/DAMENG_5237/dm.ini -p DMSERVER_5237
root@debian:/home/dmdba/dmdbms/script/root# ./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dm/data/DAMENG_5237/dm.ini -p DMSERVER_5237
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER_5237.service → /lib/systemd/system/DmServiceDMSERVER_5237.service.
创建服务(DmServiceDMSERVER_5237)完成
root@debian:/home/dmdba/dmdbms/script/root#
建立第二个实例前,data目录
root@debian:/home/dmdba/dm/data# ls -l
total 4
drwxr-xr-x 6 dmdba dinstall 4096 Apr 6 21:46 DAMENG
root@debian:/home/dmdba/dm/data#
建立第二个实例后,data目录
root@debian:/home/dmdba/dm/data# ls -l
total 8
drwxr-xr-x 6 dmdba dinstall 4096 Apr 6 21:46 DAMENG
drwxr-xr-x 5 dmdba dinstall 4096 Apr 6 23:12 DAMENG_5237
root@debian:/home/dmdba/dm/data#
数据库名对应data目录下的一个文件夹。
查看多实例
ps -elf|grep -v grep|grep dmserver
root@debian:/home/dmdba/dmdbms/script/root# ps -elf|grep -v grep|grep dmserver
0 S dmdba 790 1 0 80 0 - 1003086 - 19:18 ? 00:00:57 /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dm/data/DAMENG/dm.ini -noconsole
0 S dmdba 46960 1 24 80 0 - 806203 - 23:24 ? 00:00:06 /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dm/data/DAMENG_5237/dm.ini -noconsole
root@debian:/home/dmdba/dmdbms/script/root#
disql连接特定实例(不同端口区分不同数据库实例)
切换到dmdba用户
su - dmdba
cd /home/dmdba/dmdbms/bin
disql SYSDBA/SYSDBA@LOCALHOST:5237
dmdba@debian:~/dmdbms/bin$ disql SYSDBA/SYSDBA@LOCALHOST:5237
服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 5.103(ms)
disql V8
SQL> SELECT USER_NAME,CLNT_TYPE,TIME_ZONE,CLNT_IP,CLNT_VER FROM V$SESSIONS;
行号 USER_NAME CLNT_TYPE TIME_ZONE CLNT_IP CLNT_VER
---------- --------- --------- --------- --------- ---------
1 SYSDBA SQL3 +08:00 ::1:42982 8.1.2.192
已用时间: 4.888(毫秒). 执行号:58900.
SQL> select username,user_id,default_tablespace,profile from dba_users;
行号 username user_id default_tablespace PROFILE
---------- ---------- ----------- ------------------ ------------------------------------------
1 SYSAUDITOR 50331650 SYSTEM /home/dmdba/dm/data/DAMENG_5237/SYSTEM.DBF
2 SYSSSO 50331651 SYSTEM /home/dmdba/dm/data/DAMENG_5237/SYSTEM.DBF
3 SYSDBA 50331649 MAIN /home/dmdba/dm/data/DAMENG_5237/MAIN.DBF
4 SYS 50331648 SYSTEM /home/dmdba/dm/data/DAMENG_5237/SYSTEM.DBF
已用时间: 110.744(毫秒). 执行号:58901.
SQL> select name,create_time from v$database;
行号 name create_time
---------- ----------- -------------------
1 DAMENG_5237 2023-04-06 23:12:22
已用时间: 2.853(毫秒). 执行号:58902.
SQL>
10、windows DM管理工具
10.1、下载安装windows DM管理工具
产品下载 | 达梦数据库
选择X86 Win_64 下载
文件名:dm8_20230106_x86_win_64.zip
解压安装
选择客户端安装
10.1、下载安装windows DM管理工具
新建连接
输入数据库主机名(数据库服务器地址)
端口默认是5236
用户名SYSDBA 密码默认是SYSDBA
点确定进行连接
11、文档查看
11.1、在线文档
产品手册 | 达梦技术文档
11.2、安装程序中的本地文档
windows dm数据库系统安装目录下doc文件夹