在Linux环境以命令行方式部署DM8(达梦8)单机版

在Linux环境以命令行方式部署DM8(达梦8)单机版

本文目的是验证在linux环境以命令行方式部署DM8单机版。

本文以如下目录展开介绍:
1.部署环境介绍和数据库安装包挂载
2.数据库部署前准备
3.部署数据库
4.初始化数据库实例
5.注册数据库启停服务
6.启动停止数据库三种方式
7.使用disql登录DM8数据库

1.部署环境介绍和数据库安装包挂载

1.1 部署环境介绍

该部署测试Linux环境操作系统版本、磁盘、内存、CPU信息如下:

[root@owumvyu4iuuzaxxp-0001 ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@owumvyu4iuuzaxxp-0001 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 2.3G 38G 6% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 353M 7.5G 5% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
tmpfs 1.6G 0 1.6G 0% /run/user/0
[root@owumvyu4iuuzaxxp-0001 ~]# free -h
total used free shared buff/cache available
Mem: 15G 197M 13G 353M 1.4G 14G
Swap: 0B 0B 0B
[root@owumvyu4iuuzaxxp-0001 ~]# 
[root@owumvyu4iuuzaxxp-0001 ~]# cat /proc/cpuinfo |grep process
processor : 0
processor : 1

1.2 挂载DM8数据库安装包

从达梦数据库官网下载DM8数据库安装包,如果下载的是zip压缩格式,解压后是如下iso格式:

[root@owumvyu4iuuzaxxp-0001 ~]# ls -l dm8_20230207_x86_rh6_64.iso 
-rw-r--r-- 1 root root 1021220864 Jun 13 14:37 dm8_20230207_x86_rh6_64.iso
[root@owumvyu4iuuzaxxp-0001 ~]# 
[root@owumvyu4iuuzaxxp-0001 ~]# du -sm dm8_20230207_x86_rh6_64.iso 
974 dm8_20230207_x86_rh6_64.iso

挂载数据库安装包:

mount -o loop /root/dm8_20230207_x86_rh6_64.iso /mnt

2.数据库部署前准备

2.1 创建dmdba用户

注意:部署前必须创建dmdba用户,用户用于部署DM数据库,禁止使用root用户部署数据库。
创建用户所在组,命令如下:

[root@owumvyu4iuuzaxxp-0001 ~]# groupadd dinstall

创建dmdba用户并修改密码,命令如下:

[root@owumvyu4iuuzaxxp-0001 ~]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
[root@owumvyu4iuuzaxxp-0001 ~]# passwd dmdba
Changing password for user dmdba.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@owumvyu4iuuzaxxp-0001 ~]#

该部署环境设置dmdba密码是dmdba,仅在测试环境验使用。如果生产环境建议使用强密。

2.2 修改打开文件最大数

使用vi 编辑/etc/security/limits.conf文件,命令如下:

[root@owumvyu4iuuzaxxp-0001 ~]# vi /etc/security/limits.conf

在/etc/security/limits.conf文件最后添加以下内容:

dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384

切换到dmdba查看上面参数设置是否生效:

su - dmdba

注意:重启服务器后永久生效
在这里插入图片描述

2.3 创建数据库部署目录

注意:使用系统root用户创建数据库安装目录/dm8,并且将目录所有者改为dmdba,否则无法安装到该目录下。
创建/dm8目录,命令如下:

[root@owumvyu4iuuzaxxp-0001 ~]# mkdir /dm8

将部署目录用户修改为dmdba,用户组修改为dinstall ,命令如下:

[root@owumvyu4iuuzaxxp-0001 ~]# chown dmdba:dinstall -R /dm8

设置/dm8权限为755,命令如下:

[root@owumvyu4iuuzaxxp-0001 ~]# chmod -R 755 /dm8

3.部署数据库

3.1 命令行部署

在dmdba用户执行下面命令:

[root@owumvyu4iuuzaxxp-0001 ~]# su - dmdba 
Last login: Tue Jun 13 16:02:02 CST 2023 on pts/1
[dmdba@owumvyu4iuuzaxxp-0001 ~]$ cd /mnt/
[dmdba@owumvyu4iuuzaxxp-0001 mnt]$ ls
DM8 Install.pdf DMInstall.bin
[dmdba@owumvyu4iuuzaxxp-0001 mnt]$ ./DMInstall.bin -i
Please select the installer's language (E/e:English C/c:Chinese) [E/e]:c
解压安装程序......... 
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21

选择语言中文"c";
设置时区,选择默认的21时区;
选择典型安装;
选择部署目录/dm8;

安装小结:
如上所示

切换root用户执行root_installer.sh脚本:

在这里插入图片描述

配置环境变量:
切换到 root 用户进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入。命令如下:

[root@owumvyu4iuuzaxxp-0001 ~]# cd /home/dmdba/
[root@owumvyu4iuuzaxxp-0001 dmdba]# ls -al
total 16
drwx------ 2 dmdba dinstall 83 Jun 13 10:38 .
drwxr-xr-x. 3 root root 19 Jun 13 10:15 ..
-rw------- 1 dmdba dinstall 86 Jun 13 17:13 .bash_history
-rw-r--r-- 1 dmdba dinstall 18 Apr 1 2020 .bash_logout
-rw-r--r-- 1 dmdba dinstall 267 Jun 13 16:38 .bash_profile
-rw-r--r-- 1 dmdba dinstall 231 Apr 1 2020 .bashrc
[root@owumvyu4iuuzaxxp-0001 dmdba]# vi .bash_profile
[root@owumvyu4iuuzaxxp-0001 dmdba]# 
[root@owumvyu4iuuzaxxp-0001 dmdba]# cat .bash_profile 
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin"
export DM_HOME="/dm8"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
[root@owumvyu4iuuzaxxp-0001 dmdba]#. .bash_profile

4.初始化数据库实例

命令行初始化数据库实例,需要附加实例存放路径。此处以初始化实例到 /dm/data 目录下为例(执行初始化命令前,需要使用 root 用户授予 /dm/data 目录相应权限),创建目录命令如下:

[root@owumvyu4iuuzaxxp-0001 /]# mkdir -p /dm/data
[root@owumvyu4iuuzaxxp-0001 /]# chown dmdba:dinstall -R /dm/data
[root@owumvyu4iuuzaxxp-0001 /]# chmod -R 755 /dm/data

初始化实例命令如下:

[dmdba@owumvyu4iuuzaxxp-0001 ~]$ dminit path=/dm/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5237
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-02-06
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /dm/data/DMDB/DMDB01.log
log file path: /dm/data/DMDB/DMDB02.log
write to dir [/dm/data/DMDB].
create dm database success. 2023-06-14 12:38:02
[dmdba@owumvyu4iuuzaxxp-0001 ~]$

页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 这四个参数,一旦确定无法修改,部署要规划好并谨慎设置。

page_size 数据文件使用的页大小,可以为 4 KB、8 KB、16 KB 或 32 KB 之一,选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降,缺省使用 8 KB。
extent_size 指数据文件使用的簇大小,即每次分配新的段空间时连续的页数。只能是 16 页或 32 页或 64 页之一,缺省使用 16 页。
case_sensitive 标识符大小写敏感,默认值为 Y 。当大小写敏感时,小写的标识符应用双引号括起,否则被转换为大写;当大小写不敏感时,系统不自动转换标识符的大小写,在标识符比较时也不区分大小写,只能是 Y、y、N、n、1、0 之一。
charset 字符集选项。0 代表 GB18030;1 代表 UTF-8;2 代表韩文字符集 EUC-KR;取值 0、1 或 2 之一。默认值为 0。

5.注册数据库启停服务

5.1命令行注册服务

注册服务需使用 root 用户进行注册。使用 root 用户进入数据库部署目录/dm8的 /script/root 下,根据自己的环境更改 dm.ini 文件的路径以及服务名进行注册服务:

[root@owumvyu4iuuzaxxp-0001 dm8]# cd /dm8/script/root
[root@owumvyu4iuuzaxxp-0001 root]# sh dm_service_installer.sh -t dmserver -dm_ini /dm/data/DMDB/dm.ini -p DMSERVER
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
[root@owumvyu4iuuzaxxp-0001 root]#

6.启动停止数据库三种方式

6.1 启动停止方式一

以系统服务方式进行启停。
使用系统root用户启动服务:

[root@owumvyu4iuuzaxxp-0001 root]# pwd
/dm8/script/root
[root@owumvyu4iuuzaxxp-0001 root]# systemctl start DmServiceDMSERVER.service

查看启动数据库进程后状态:

[root@owumvyu4iuuzaxxp-0001 root]# ps -ef |grep dm 
dmdba 10501 1 0 Jun13 ? 00:00:01 /dm8/bin/dmap
dmdba 30943 1 14 13:15 ? 00:00:03 /dm8/bin/dmserver path=/dm/data/DMDB/dm.ini -noconsole
root 31035 19208 0 13:16 pts/0 00:00:00 grep --color=auto dm
[root@owumvyu4iuuzaxxp-0001 root]#

如果以服务方式停止数据库服务,执行下面命令:

[root@owumvyu4iuuzaxxp-0001 root]# systemctl stop DmServiceDMSERVER.service

6.2 启动停止方式二

用dmdba用户启动数据库服务,进入 DM 安装目录下的 bin 目录下,注意正确填写dm.ini实际路径,命令如下:

[dmdba@owumvyu4iuuzaxxp-0001 bin]$ pwd
/dm8/bin
[dmdba@owumvyu4iuuzaxxp-0001 bin]$ ./dmserver /dm/data/DM/dm.ini
file dm.key not found, use default license!
open ini file /dm/data/DM/dm.ini failed!
dmserver startup failed, code = -140 [Can not access INI file]
nsvr_ini_file_read failed, [code: -140]
[dmdba@owumvyu4iuuzaxxp-0001 bin]$ ./dmserver /dm/data/DMDB/dm.ini
file dm.key not found, use default license!
version info: develop
DM Database Server 64 V8 03134283968-20230206-181022-20033 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2024-02-06
file lsn: 37511
ndct db load finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct fill fast pool finished
pseg_set_gtv_trxid_low next_trxid in mem:[4008]
pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 to_release_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 to_release_pages, 0 mgr pages, 0 mgr recs!
next_trxid in mem:[5010]
next_trxid = 6012.
pseg recv finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
nsvr_process_before_open begin.
nsvr_process_before_open success.
SYSTEM IS READY.

另外开启系统会话查看数据库启动后进程状态:

[root@owumvyu4iuuzaxxp-0001 ~]# ps -ef |grep dm 
dmdba 603 32608 0 13:35 pts/0 00:00:00 ./dmserver /dm/data/DMDB/dm.ini
root 735 32676 0 13:36 pts/1 00:00:00 grep --color=auto dm
dmdba 10501 1 0 Jun13 ? 00:00:01 /dm8/bin/dmap
root 32607 19208 0 13:31 pts/0 00:00:00 su - dmdba
dmdba 32608 32607 0 13:31 pts/0 00:00:00 -bash

前台停止使用ctrl + c命令终止数据库服务:

^CServer is stopping...
listener closed and all sessions disconnected
adjust undo_retention & wakeup purge thread...full check point starting...
generate force checkpoint, rlog free space[536817152], used space[45568]
checkpoint begin, used_space[45568], free_space[536817152]...
checkpoint end, 0 pages flushed, used_space[44544], free_space[536818176].
full check point end.
shutdown audit subsystem...OK
shutdown schedule subsystem...OK
shutdown timer successfully.
pre-shutdown MAL subsystem...OK
shutdown worker threads subsystem...OK
shutdown logic log subsystem...OK
shutdown sequence cache subsystem...OK
wait for mtsk link worker to exit..OK
shutdown mpp session subsystem...OK
wait for rapply is all over... OK
rapply worker threads exit successfully.
pre ending task & worker threads...OK
shutdown dblink subsystem...OK
shutdown local parallel threads pool successfully.
shutdown pthd_pools...OK
shutdown session subsystem...shutdown aux session subsystem...OK
shutdown rollback segments purging subsystem...OK
shutdown transaction subsystem...OK
shutdown locking subsystem...OK
shutdown dbms_lock subsystem...OK
ending tsk and worker threads...OK
ckpt2_exec_immediately begin.
checkpoint begin, used_space[44544], free_space[536818176]...
checkpoint end, 0 pages flushed, used_space[6656], free_space[536856064].
checkpoint begin, used_space[6656], free_space[536856064]...
checkpoint end, 0 pages flushed, used_space[0], free_space[536862720].
checkpoint begin, used_space[0], free_space[536862720]...
checkpoint end, 0 pages flushed, used_space[0], free_space[536862720].
shutdown archive subsystem...OK
shutdown redo log subsystem...OK
shutdown MAL subsystem...OK
shutdown message compress subsystem successfully.
shutdown task subsystem...OK
shutdown trace subsystem...OK
shutdown svr_log subsystem...OK
shutdown plan cache subsystem...OK
shutdown database dictionary subsystem...OK
shutdown file subsystem...OK
shutdown mac cache subsystem...OK
shutdown dynamic login cache subsystem...OK
shutdown ifun/bifun/sfun/afun cache subsystem...OK
shutdown crypt subsystem...OK
shutdown pipe subsystem...OK
shutdown compress component...OK
shutdown slave redo subsystem...OK
shutdown kernel buffer subsystem...OK
shutdown SQL capture subsystem...OK
shutdown control file system...OK
shutdown dtype subsystem...OK
shutdown huge buffer and memory pools...OK
close lsnr socket

6.3 启动停止方式三

使用dmdba用户进行,进入 DM 安装目录下的 bin 目录下,执行下面命令:

[dmdba@owumvyu4iuuzaxxp-0001 bin]$ pwd
/dm8/bin
[dmdba@owumvyu4iuuzaxxp-0001 bin]$ DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
[dmdba@owumvyu4iuuzaxxp-0001 bin]$ 
[dmdba@owumvyu4iuuzaxxp-0001 bin]$ DmServiceDMSERVER status
DmServiceDMSERVER (pid 2002) is running.

开启另外系统会话查看数据库进程状态:

[root@owumvyu4iuuzaxxp-0001 ~]# ps -ef |grep dm 
dmdba 2002 1 0 13:48 pts/0 00:00:00 /dm8/bin/dmserver path=/dm/data/DMDB/dm.ini -noconsole
root 2472 32676 0 13:51 pts/1 00:00:00 grep --color=auto dm
dmdba 10501 1 0 Jun13 ? 00:00:01 /dm8/bin/dmap
root 32607 19208 0 13:31 pts/0 00:00:00 su - dmdba
dmdba 32608 32607 0 13:31 pts/0 00:00:00 -bash
[root@owumvyu4iuuzaxxp-0001 ~]#

停止数据库服务:

[dmdba@owumvyu4iuuzaxxp-0001 bin]$ DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
[dmdba@owumvyu4iuuzaxxp-0001 bin]$ DmServiceDMSERVER status
DmServiceDMSERVER is stopped

7.使用disql登录数据库

使用disql连接到数据库,默认的用户和密码是SYSDBA/SYSDBA,注意ip和端口,命令如下:

[dmdba@owumvyu4iuuzaxxp-0001 DMDB]$ disql SYSDBA/SYSDBA@127.0.0.1:5237
服务器[127.0.0.1:5237]:处于普通打开状态
登录使用时间 : 2.343(ms)
disql V8
SQL> 
SQL> SET LINESHOW ON
SQL> select status$ from v$database;
行号 STATUS$ 
---------- -----------
1 4
已用时间: 2.352(毫秒). 执行号:500.
SQL>

总结:

本文详细介绍DM8在linux环境以命令行方式进行单机版部署。依次按照文章开头介绍的目录进行环境介绍和数据库安装包挂载、部署前准备、部署、初始化数据库实例、注册数据库启停服务、介绍启动停止数据库三种方式和使用disql登录数据库验证。让大家对DM8在linux环境单机版架构部署有个直观的感受,希望在大家学习DM8在linux以命令行方式部署时能提供参考和有所帮助。

关于达梦数据库更多学习内容,欢迎访问达梦社区:
https://eco.dameng.com

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值