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_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 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-20033 | 03134283968 小版本号,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文件夹