达梦数据库管理系统是武汉达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统目前最新的版本是8.0版本,简称DM8。
DM8是达梦公司在总结DM系列产品研发与应用经验的基础上,坚持开放创新、简洁实用的理念,推出的新一代自研数据库。
DM8吸收借鉴当前先进新技术思想与主流数据库产品的优点,融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,实现更精细化的资源利用、更低成本的投入。一个数据库,满足用户多种需求,让用户能更加专注于业务发展。
产品下载 | 达梦数据库,选择X86,CentOS7
本次使用的系统版本是CentOS Linux release 7.6.1810 (Core)
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@localhost soft]# ls
dm8_20231116_x86_rh6_64.zip
[root@localhost ~]# groupadd dinstall
[root@localhost ~]# useradd -s /bin/bash -m -d /home/dmdba -g dinstall dmdba
[root@blocalhost ~]# passwd dmdba //这里需要设置一个密码,可以设置为 12345678
[root@localhost soft]# vi /etc/selinux/config
SELINUX=disabled
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
[root@blocalhost ~]# vi /etc/security/limits.conf
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 16384
dmdba hard stack 32768
用dmdba用户登录系统,查看ulimit参数是否生效: ulimit -a(注意:要切换到dmdba用户进行查看)
[root@localhost soft]# su dmdba
[dmdba@localhost soft]$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31078
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@localhost ~]# su - root
[root@localhost ~]# mkdir -p /data/{dmdata,dmarch,logcommit,dmbak}
[root@localhost ~]# chown -R dmdba:dinstall /data/{dmdata,dmarch,logcommit,dmbak}
[root@localhost ~]# cd /opt/soft
[root@localhost soft]#unzip dm8_20220701_x86_rh6_64_ent.zip
//如果这里报错没有找到unzip,需要用yum install unzip 如果是离线环境可是去现在一个二进制的包文件进行安装
[root@localhost soft]# ll
total 1691232
-rw-r--r-- 1 root root 874342400 Nov 22 14:19 dm8_20231116_x86_rh6_64.iso
-rw-r--r-- 1 root root 100 Nov 22 14:19 dm8_20231116_x86_rh6_64.iso_SHA256.txt
-rw-r--r-- 1 root root 857471599 Dec 27 16:02 dm8_20231116_x86_rh6_64.zip
挂载iso文件,这样就能像访问目录一样对iso镜像文件进行访问了
[root@localhost soft]# mkdir -p /mnt/cdrom
[root@localhost soft]# mount -o loop /opt/soft/dm8_20231116_x86_rh6_64.iso /mnt/cdrom
mount: /dev/loop0 is write-protected, mounting read-only
[root@localhost soft]# su - dmdba
[dmdba@localhost ~]$ cd /mnt/cdrom
[dmdba@localhost cdrom]$ ./DMInstall.bin -i
开始安装,语言选择中文,Key文件先不输入(没有key文件,默认使用一年后到期)
设置时区,选择:[21]: GTM+08=中国标准时间 ,这也是默认的选项。
Installer Language:
[1]: 简体中文
[2]: English
Please select the installer's language [2]:1
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
[10]: (GTM-03:00) 巴西利亚
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亚速尔群岛
[13]: (GTM) 格林威治标准时间
[14]: (GTM+01:00) 萨拉热窝
[15]: (GTM+02:00) 开罗
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯兰堡
[19]: (GTM+06:00) 达卡
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [21]:21
下面的地址为 /home/dmdba/dmdbms
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1740M
请选择安装目录 [/home/dmdba/dmdbms]:
可用空间: 89G
是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1740M
可用空间: 89G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2023-12-28 04:32:54
[INFO] 安装达梦数据库...
2023-12-28 04:32:54
[INFO] 安装 基础 模块...
2023-12-28 04:32:57
[INFO] 安装 服务器 模块...
2023-12-28 04:32:57
[INFO] 安装 客户端 模块...
2023-12-28 04:32:58
[INFO] 安装 驱动 模块...
2023-12-28 04:32:58
[INFO] 安装 手册 模块...
2023-12-28 04:32:58
[INFO] 安装 服务 模块...
2023-12-28 04:32:58
[INFO] 移动日志文件。
2023-12-28 04:32:59
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/home/dmdba/dmdbms/script/root/root_installer.sh
安装结束
安装结束后,提示用root用户执行脚本
切换root用户
[dmdba@localhost cdrom]$ su - root
[root@localhost ~]# /home/dmdba/dmdbms/script/root/root_installer.sh
移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
su - dmdba
[dmdba@localhost bin]$ pwd
/home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./dminit PATH=/data/dmdata EXTENT_SIZE=32 PAGE_SIZE=16 CASE_SENSITIVE=n SYSDBA_PWD=sysdba123 DB_NAME=dmtest INSTANCE_NAME=dmtest PORT_NUM=5236
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-11-09
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /data/dmdata/dmtest/dmtest01.log
log file path: /data/dmdata/dmtest/dmtest02.log
write to dir [/data/dmdata/dmtest].
create dm database success. 2023-12-28 19:21:29
su - root
[root@localhost root]# pwd
/home/dmdba/dmdbms/script/root
[root@localhost root]# ./dm_service_installer.sh -t dmserver -p TEST -dm_ini /data/dmdata/dmtest/dm.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceTEST.service to /usr/lib/systemd/system/DmServiceTEST.service.
创建服务(DmServiceTEST)完成
[root@localhost root]# systemctl start DmServiceTEST
[root@localhost root]# systemctl status DmServiceTEST #查看状态
● DmServiceTEST.service - DM Instance Service(DmServiceTEST).
Loaded: loaded (/usr/lib/systemd/system/DmServiceTEST.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-12-28 19:28:33 CST; 10s ago
Process: 67672 ExecStart=/home/dmdba/dmdbms/bin/DmServiceTEST start (code=exited, status=0/SUCCESS)
Main PID: 67695 (dmserver)
Tasks: 83
CGroup: /system.slice/DmServiceTEST.service
└─67695 /home/dmdba/dmdbms/bin/dmserver path=/data/dmdata/dmtest/dm.ini -noconsole
Dec 28 19:28:18 localhost.localdomain systemd[1]: Starting DM Instance Service(DmServiceTEST)....
Dec 28 19:28:33 localhost.localdomain DmServiceTEST[67672]: [35B blob data]
Dec 28 19:28:33 localhost.localdomain systemd[1]: Started DM Instance Service(DmServiceTEST)..
[root@localhost root]#
或安装bin目录下进行启动
# ./DmServiceTEST start
达梦数据库提供了命令行客户端工具disql(类似oracle的sqlplus),用于连接数据库。
disql工具在安装目录的bin目录下,可以把bin目录添加到环境变量PATH中,dmdba用户下查看配置文件
[root@localhost root]# su - dmdba
[dmdba@localhost ~]$ vi ~/.bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin"
export DM_HOME="/home/dmdba/dmdbms"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
export PATH
[dmdba@localhost ~]$ source ~/.bash_profile
这样我们在任何地方都可以使用命令登录数据库了
[dmdba@localhost ~]$ disql SYSDBA/SYSDBA123
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.518(ms)
disql V8
SQL>
切换root用户使用软连接
[dmdba@localhost ~]$ su root
[root@localhost ~]# vi ~/.bash_profile
把下列数据插入到指定的位置即可
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin"
export DM_HOME="/home/dmdba/dmdbms"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
create tablespace aaa datafile '/data/dmdata/dmtest/AAA.DBF' size 128 autoextend on next 4 maxsize 1024;
create user "dameng" identified by "dameng123" default tablespace "aaa" default index tablespace "aaa";
grant "PUBLIC","RESOURCE","VTI" to "dameng";
grant SELECT on "DMHR"."CITY" to "dameng";
alter user "dameng" limit failed_login_attemps unlimited, password_lock_time unlimited, password_grace_time unlimited;
select * from dba_users;
CALL SP_TABLEDEF('DAMENG', 't1'); 查看建表语句
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/data/dmarch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=102400';
ALTER DATABASE OPEN;
SQL 日志内容包含系统各会话执行的 SQL 语句、参数信息、错误信息等。
SQL 跟踪日志主要用于分析错误和分析性能问题,基于跟踪日志可以对系统运行状态有一个分析,比如,可以挑出系统现在执行速度较慢的 SQL 语句,进而对其进行优化。
打开 SQL 日志会对系统的性能会有较大影响,一般用于查错和调优的时候才会打开,默认情况下系统是关闭 SQL 跟踪日志的。若需要 SQL 跟踪日志但对日志的实时性没有严格的要求,又希望系统有较高的效率,可以设置 sqllog.ini 参数 SQL_TRACE_MASK 和 MIN_EXEC_TIME 只记录关注的相关记录,减少日志总量;设置 sqllog.ini 参数 ASYNC_FLUSH 打开 SQL 日志异步刷盘功能,以提高系统性能。
创建 SQL 日志存放目录
su - dmdba
mkdir -p /data/logcommit
select * from v$parameter where name like 'SVR_LOG%';
修改实例路径下 sqllog.ini 文件如下:设置 sql 日志为异步,按照文件大小进行切换,每个 1024M,20 个文件循环写。
cd /data/dmdata/dmtest
vi sqllog.ini
BUF_TOTAL_SIZE = 10240 #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE = 1024 #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT = 6 #SQLs Log buffer keeped count(1~100)
[SLOG_ALL]
FILE_PATH = /data/logcommit #sql 日志生成路径
PART_STOR = 0
SWITCH_MODE = 2
SWITCH_LIMIT = 1024 #每个日志文件 1024M
ASYNC_FLUSH = 1
FILE_NUM = 20 #循环收集 20 个可以根据实际情况做调整
ITEMS = 0
SQL_TRACE_MASK = 1
MIN_EXEC_TIME = 0
USER_MODE = 0
USERS =
执行调用存储过程生效配置文件,并开启 SQLLOG 日志。
SP_REFRESH_SVR_LOG_CONFIG();
sp_set_para_value(1,'SVR_LOG',1);
--检查 SVR_LOG 参数。
select * from v$parameter where name like ‘SVR_LOG’;