linux安装达梦数据库v8

  • 操作系统、数据库
  • 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.2、使用windows DM管理工具连接数据库
  • 11、文档查看
    • 11.1、在线文档
    • 11.2、安装程序中的本地文档

操作系统、数据库

操作系统:Debian 10
数据库:达梦数据库v8

1、下载达梦数据库

官方下载链接:https://eco.dameng.com/download/
官方安装文档:https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html

文件名: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 65537dmdba soft nofile 65537dmdba hard stack 32768dmdba 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 - dmdbasource .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_CHARVARCHAR类型长度是否以字符为单位(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_PATHSYSTEM数据文件镜像路径
MAIN_MIRROR_PATHMAIN数据文件镜像
ROLL_MIRROR_PATH回滚文件镜像路径
MAL_FLAG初始化时设置dm.ini中的MAL_INI(0)
ARCH_FLAG初始化时设置dm.ini中的ARCH_INI(0)
MPP_FLAGMpp系统内的库初始化时设置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_STORAGECHAR是否按定长存储(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 agoProcess: 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 -noconsoleApr 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 V8SQL> helpHELP----显示打印信息,键入HELP或者 " /> quitdmdba@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 是大版本号。
DB Version: 0x7000c
03134283968-20230103-178822-2003303134283968 小版本号,20230103 版本编译时间;178822 代码SVN号;20033 分支代码号;后面如还有字段ENT是版本:ENT 版本标识,ENT表示企业版,还有STD标准版,SEC安全版。(其他标识为非通用的定制版)

8、卸载数据库

切换到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/)" />su - root
/home/dmdba/dmdbms/root_uninstaller.sh
root@debian:/home/dmdba/dmdbms/script/root# /home/dmdba/dmdbms/root_uninstaller.shsh: 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=0initdb V8db version: 0x7000cfile dm.key not found, use default license!License will expire on 2024-01-03Normal of FASTNormal of DEFAULTNormal of RECYCLENormal of KEEPNormal 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.logwrite to dir [/home/dmdba/dm/data/DAMENG_5237].create dm database success. 2023-04-06 23:12:23dmdba@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_5237Created 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 -ltotal 4drwxr-xr-x 6 dmdba dinstall 4096 Apr6 21:46 DAMENGroot@debian:/home/dmdba/dm/data# 

建立第二个实例后,data目录

root@debian:/home/dmdba/dm/data# ls -ltotal 8drwxr-xr-x 6 dmdba dinstall 4096 Apr6 21:46 DAMENGdrwxr-xr-x 5 dmdba dinstall 4096 Apr6 23:12 DAMENG_5237root@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 dmserver0 S dmdba 7901080 0 - 1003086 -19:18 ?00:00:57 /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dm/data/DAMENG/dm.ini -noconsole0 S dmdba 469601 2480 0 - 806203 - 23:24 ?00:00:06 /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dm/data/DAMENG_5237/dm.ini -noconsoleroot@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 V8SQL> SELECT USER_NAME,CLNT_TYPE,TIME_ZONE,CLNT_IP,CLNT_VER FROM V$SESSIONS;行号 USER_NAME CLNT_TYPE TIME_ZONE CLNT_IP CLNT_VER ---------- --------- --------- --------- --------- ---------1SYSDBASQL3+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 ---------- ---------- ----------- ------------------ ------------------------------------------1SYSAUDITOR 50331650SYSTEM /home/dmdba/dm/data/DAMENG_5237/SYSTEM.DBF2SYSSSO 50331651SYSTEM /home/dmdba/dm/data/DAMENG_5237/SYSTEM.DBF3SYSDBA 50331649MAIN /home/dmdba/dm/data/DAMENG_5237/MAIN.DBF4SYS50331648SYSTEM /home/dmdba/dm/data/DAMENG_5237/SYSTEM.DBF已用时间: 110.744(毫秒). 执行号:58901.SQL> select name,create_time from v$database;行号 namecreate_time---------- ----------- -------------------1DAMENG_5237 2023-04-06 23:12:22已用时间: 2.853(毫秒). 执行号:58902.SQL> 

10、windows DM管理工具

10.1、下载安装windows DM管理工具

https://eco.dameng.com/download/

选择X86 Win_64 下载

文件名:dm8_20230106_x86_win_64.zip


解压安装

选择客户端安装

10.2、使用windows DM管理工具连接数据库

新建连接

输入数据库主机名(数据库服务器地址)
端口默认是5236
用户名SYSDBA 密码默认是SYSDBA
点确定进行连接

11、文档查看

11.1、在线文档

https://eco.dameng.com/document/dm/zh-cn/pm/

11.2、安装程序中的本地文档

windows dm数据库系统安装目录下doc文件夹