本机实验环境:centos7.9
参考文档:数据库安装 | 达梦云适配中心文档 (dameng.com)
https://eco.dameng.com/docs/zh-cn/start/install-dm-linux-prepare.html
[dmdba@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[dmdba@localhost ~]$ cat /proc/version
Linux version 3.10.0-1160.31.1.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Jun 10 13:32:12 UTC 2021
[dmdba@localhost ~]$ uname -a
Linux localhost.localdomain 3.10.0-1160.31.1.el7.x86_64 #1 SMP Thu Jun 10 13:32:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[dmdba@localhost ~]$ getconf LONG_BIT
64
[dmdba@localhost ~]$ rpm -qa|grep glibc
glibc-devel-2.17-324.el7_9.x86_64
glibc-2.17-324.el7_9.x86_64
glibc-headers-2.17-324.el7_9.x86_64
glibc-common-2.17-324.el7_9.x86_64
[dmdba@localhost ~]$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 78
model name : Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
stepping : 3
microcode : 0xd6
cpu MHz : 2496.001
cache size : 3072 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
bogomips : 4992.00
clflush size : 64
cache_alignment : 64
address sizes : 45 bits physical, 48 bits virtual
power management:
[dmdba@localhost ~]$ free -m
total used free shared buff/cache available
Mem: 7802 2290 4757 12 754 5264
Swap: 8064 0 8064
[dmdba@localhost ~]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 13M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda3 112G 23G 90G 21% /
/dev/sda1 297M 164M 134M 55% /boot
tmpfs 781M 0 781M 0% /run/user/1001
[root@localhost dmdba]# fdisk -l
磁盘 /dev/sda:128.8 GB, 128849018880 字节,251658240 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ce1fe
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 17133567 8258560 82 Linux swap / Solaris
/dev/sda3 17133568 251658239 117262336 83 Linux
[root@localhost dmdba]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere 192.168.122.0/24 ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.122.0/24 anywhere
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:bootpc
[root@localhost dmdba]# ifconfig
ens33: flags=4163
inet 192.168.216.129 netmask 255.255.255.0 broadcast 192.168.216.255
inet6 fe80::8929:ecab:1879:25b8 prefixlen 64 scopeid 0x20
ether 00:0c:29:19:76:d6 txqueuelen 1000 (Ethernet)
RX packets 35009 bytes 2863951 (2.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 56375 bytes 12526164 (11.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 64219 bytes 25158675 (23.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 64219 bytes 25158675 (23.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:ea:46:fd txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost dmdba]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
建议关闭selinux,但是这里不是必须:
创建用户所在的组,命令如下:
groupadd dinstall
创建用户,命令如下:
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
修改用户密码,命令如下:
passwd dmdba
修改文件打开最大数(重启服务器后永久生效)
使用 vi 编辑器打开 /etc/security/limits.conf 文件,命令如下:
vi /etc/security/limits.conf
在最后添加四条语句,需添加的语句如下:
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384
切换到 dmdba 用户,查看是否生效,命令如下:
su - dmdba
ulimit -a
设置参数临时生效
可使用 dmdba 用户执行如下命令,使设置临时生效:
ulimit -n 65536
挂载镜像
切换到 root 用户,将 DM 数据库的 iso 安装包保存在任意位置,例如 /opt 目录下,执行如下命令挂载镜像:
mount -o loop /opt/dm8_setup_rh7_64_ent_8.1.1.45_20191121.iso /mnt
新建安装目录
在根目录下创建 /dm8 文件夹,用来安装 DM 数据库。命令如下:
mkdir /dm8
修改安装目录权限
将新建的安装路径目录权限的用户修改为 dmdba,用户组修改为 dinstall。命令如下:
chown dmdba:dinstall -R /dm8/
给安装路径下的文件设置 755 权限。命令如下:
chmod -R 755 /dm8
切换至 dmdba 用户下,在 /mnt 目录下使用命令行安装数据库程序,依次执行以下命令安装 DM 数据库。
su - dmdba
cd /mnt/
./DMInstall.bin -i
按需求选择安装语言,默认为中文。本地安装选择【不输入 Key 文件】,选择【默认时区 21】。
选择【1-典型安装】,按已规划的安装目录 /dm8 完成数据库软件安装,不建议使用默认安装目录。
数据库安装大概 1~2 分钟,数据库安装完成后,显示如下界面。
数据库安装完成后,需要切换至 root 用户执行上图中的命令 /dm8/script/root/root_installer.sh
创建 DmAPService,否则会影响数据库备份。
切换到 root 用户进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入。命令如下:
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
编辑 .bash_profile,使其最终效果如下图所示:
cd /home/dmdba/
vim .bash_profile
切换至 dmdba 用户下,执行以下命令,使环境变量生效。
su - dmdba
source .bash_profile
在安装之前应检查下端口号避免端口已被占用。dm8通过端口号来区分同一台机器上的不同实例
[dmdba@localhost ~]$ netstat -ano|grep "5238"
dminit 命令可设置多种参数,可执行如下命令查看可配置参数。
./dminit help
以下命令设置页大小为 32 KB,簇大小为 32 KB,大小写敏感,字符集为 utf_8,数据库名为 DM8,实例名为 DB8server,端口为 5238。
[dmdba@localhost bin]$ ./dminit path=/dm8/data5 PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DM8 INSTANCE_NAME=DM8server PORT_NUM=5238
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2022-05-13
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /dm8/data5/DM8/DM801.log
log file path: /dm8/data5/DM8/DM802.log
write to dir [/dm8/data5/DM8].
create dm database success. 2021-07-29 15:06:24
注册服务需使用 root 用户进行注册。使用 root 用户进入数据库安装目录的 /script/root 下,如下所示:
[dmdba@localhost bin]$ su
密码:
[root@localhost bin]# cd /dm8/script/root/
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data5/DM8/dm.ini -p DM8SERVER
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDM8SERVER.service to /usr/lib/systemd/system/DmServiceDM8SERVER.service.
创建服务(DmServiceDM8SERVER)完成
用户可根据自己的环境更改 dm.ini 文件的路径以及服务名,如下所示:
./dm_service_installer.sh -h
如需为其他实例注册服务,需打开 dbca 工具,进行注册服务,如下所示:
cd /dm8/tool
./dbca.sh
服务注册成功后,启动数据库,如下所示:
systemctl start DmServiceDM8SERVER
停止数据库,如下所示:
systemctl stop DmServiceDM8SERVER
重启数据库,如下所示:
systemctl restart DmServiceDM8SERVER
查看数据库服务状态,如下所示:
systemctl status DmServiceDM8SERVER
以下是执行结果:
[root@localhost root]# systemctl status DmServiceDM8SERVER
● DmServiceDM8SERVER.service - Dameng Database Service(DmServiceDM8SERVER).
Loaded: loaded (/usr/lib/systemd/system/DmServiceDM8SERVER.service; enabled; vendor preset: disabled)
Active: inactive (dead)
[root@localhost root]# systemctl start DmServiceDM8SERVER
[root@localhost root]# systemctl status DmServiceDM8SERVER
● DmServiceDM8SERVER.service - Dameng Database Service(DmServiceDM8SERVER).
Loaded: loaded (/usr/lib/systemd/system/DmServiceDM8SERVER.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2021-07-29 15:44:10 CST; 14s ago
Process: 16344 ExecStart=/dm8/bin/DmServiceDM8SERVER start (code=exited, status=0/SUCCESS)
Main PID: 16368 (dmserver)
Tasks: 51
CGroup: /system.slice/DmServiceDM8SERVER.service
└─16368 /dm8/bin/dmserver /dm8/data5/DM8/dm.ini -noconsole
7月 29 15:43:55 localhost.localdomain systemd[1]: Starting Dameng Database Service(DmServiceDM8SERVER)....
7月 29 15:44:10 localhost.localdomain DmServiceDM8SERVER[16344]: [40B blob data]
7月 29 15:44:10 localhost.localdomain systemd[1]: Started Dameng Database Service(DmServiceDM8SERVER)..
可前台启动,进入 DM 安装目录下的 bin 目录下,命令如下:
./dmserver /dm8/data5/DM8/dm.ini
该启动方式为前台启动,若想关闭数据库,则输入 exit 即可。
也可进入 DM 安装目录下的 bin 目录下,启动/停止/重启数据库,如下所示:
./DmServiceDM8SERVER start/stop/restart
查看数据库状态,如下所示:
./DmServiceDM8SERVER status
使用disql连接数据库(disql在dm8安装路径的tool目录下):
以下是执行结果:
[dmdba@localhost tool]$ ./disql
disql V8
SQL> conn SYSDBA@localhost:5238
服务器[localhost:5238]:处于普通打开状态
登录使用时间 : 3.853(ms)
SQL> select 1001 from dual;
行号 1001
---------- -----------
1 1001
已用时间
连接串信息:
jdbc.driver=dm.jdbc.driver.DmDriver
jdbc.url=jdbc:dm://localhost:5238
开启联机归档:
alter database mount;
alter database add archivelog 'DEST = /dm8/arch,Type = local,FILE_SIZE = 1024, SPACE_limit = 2048';
alter database archivelog;
alter database open;
以mount方式启动数据库:
./dmserver /dm8/data5/DM8/dm.ini mount
数据库状态切换:
SQL> alter database mount;
操作已执行
已用时间: 367.347(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 758.215(毫秒). 执行号:0.
SQL>
查看已经注册的达梦数据库服务:
[dmdba@localhost tool]$ chkconfig --list |grep DmServiceDMSERVER
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
[dmdba@localhost tool]$ systemctl list-unit-files | grep DmService
DmService_EP01.service enabled
DmService_EP02.service enabled
DmServiceDM8.service enabled
DmServiceDM8SERVER.service enabled
DmServiceDMSERVER.service enabled
DmServiceHSDB.service enabled
[dmdba@localhost tool]$ systemctl list-dependencies | grep DmService
● ├─DmService_EP01.service
● ├─DmService_EP02.service
● ├─DmServiceDM8.service
● ├─DmServiceDM8SERVER.service
● ├─DmServiceDMSERVER.service
● ├─DmServiceHSDB.service
相关进程查看:
[dmdba@localhost ~]$ ps -ef| grep dmserver
dmdba 1229 1 0 12:34 ? 00:00:06 /dm8/bin/dmserver /dm8/data3/DM8/dm.ini -noconsole
dmdba 1233 1 0 12:34 ? 00:00:06 /dm8/bin/dmserver /dm8/data11/DMbak/dm.ini -noconsole
dmdba 1235 1 0 12:34 ? 00:00:06 /dm8/bin/dmserver /dm8/data5/DM8/dm.ini -noconsole
dmdba 1237 1 0 12:34 ? 00:00:06 /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini -noconsole
dmdba 1300 1 0 12:34 ? 00:00:19 /home/dmdba/dmhs/db/bin/dmserver /home/dmdba/dmhs/db/data/DAMENG/dm.ini -noconsole
dmdba 1428 1 0 12:34 ? 00:00:11 /home/dmdba/demplay/1/dmwatcher4_0/bin/dmserver path=/home/dmdba/demplay/1/dmwatcher4_0/EP01/DAMENG/dm.ini -noconsole mount
dmdba 1434 1 0 12:34 ? 00:00:14 /home/dmdba/demplay/1/dmwatcher4_0/bin/dmserver path=/home/dmdba/demplay/1/dmwatcher4_0/EP02/DAMENG/dm.ini -noconsole mount
dmdba 4925 3993 0 13:18 pts/1 00:00:00 grep --color=auto dmserver