一、DM数据库体系架构
1.DM逻辑结构概述
数据库
DM 数据库指的是磁盘上存放在 DM 数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及临时数据文件等。
实例
实例一般是由一组正在运行的 DM 后台进程/线程以及一个大型的共享内存组成。简单来说,实例就是操作 DM 数据库的一种手段,是用来访问数据库的内存结构以及后台进程的集
合。
DM 数据库存储在服务器的磁盘上,而 DM 实例则存储于服务器的内存中。通过运行 DM实例,可以操作 DM 数据库中的内容。在任何时候,一个实例只能与一个数据库进行关联(装载、打开或者挂起数据库)。在大多数情况下,一个数据库也只有一个实例对其进行操作。
但是在 DM 共享存储集群(DMDSC)中,多个实例可以同时装载并打开一个数据库(位于一组由多台服务器共享的物理磁盘上)。此时,我们可以同时从多台不同的计算机访问这个数据库。
2.DM物理结构概述
DM 数据库使用了磁盘上大量的物理存储结构来保存和管理用户数据。典型的物理存储结
构包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际
数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志
文件等
1)配置文件
配置文件以ini为扩展名,每创建一个DM数据库,就会自动生成dm.ini文件。
[root@localhost DAMENG]# ll *.ini
-rw-r--r--. 1 dmdba dinstall 59756 Sep 15 22:24 dm.ini
-rw-r--r--. 1 dmdba dinstall 481 Sep 15 14:27 sqllog.ini
2)控制文件
每个 DM 数据库都有一个名为 dm.ctl 的控制文件。它记录了数据库必要的初始信息,其中主要包含以下内容:
- 数据库名称;
- 数据库服务器模式;
- OGUID 唯一标识;
- 数据库服务器版本;
- 数据文件版本;
- 数据库的启动次数;
- 数据库最近一次启动时间;
- 表空间信息,包括表空间名,表空间物理文件路径等,记录了所有数据库中使用的
表空间,数组的方式保存起来; - 控制文件校验码,校验码由数据库服务器在每次修改控制文件后计算生成,保证控
制文件合法性,防止文件损坏及手工修改。
[root@localhost DAMENG]# ll *.ctl
-rw-r--r--. 1 dmdba dinstall 6656 Sep 15 21:35 dm.ctl
3)数据文件
数据文件以 DBF 为扩展名,它是数据库中最重要的文件类型,一个 DM 数据文件对应磁
盘上的一个物理文件或者达梦分布式数据库中的一个逻辑文件,数据文件是真实数据存储的
地方,每个数据库至少有一个与之相关的数据文件。
[root@localhost DAMENG]# ll *.DBF
-rw-r--r--. 1 dmdba dinstall 157286400 Sep 15 15:18 BOOKSHOP.DBF
-rw-r--r--. 1 dmdba dinstall 134217728 Sep 15 22:11 MAIN.DBF
-rw-r--r--. 1 dmdba dinstall 134217728 Sep 16 00:23 ROLL.DBF
-rw-r--r--. 1 dmdba dinstall 52428800 Sep 16 09:31 SYSTEM.DBF
-rw-r--r--. 1 dmdba dinstall 27262976 Sep 15 14:50 TEMP.DBF
-rw-r--r--. 1 dmdba dinstall 157286400 Sep 15 21:38 USERS.DBF
4)重做日志文件
重做日志文
件以 log 为扩展名。每个 DM 数据库实例必须至少有 2 个重做日志文件,默认两个日志文件
为 DAMENG01.log、DAMENG02.log,这两个文件循环使用。
[root@localhost DAMENG]# ll DAMENG*.log
-rw-r--r--. 1 dmdba dinstall 268435456 Sep 16 10:29 DAMENG01.log
-rw-r--r--. 1 dmdba dinstall 268435456 Sep 15 14:50 DAMENG02.log
5)归档日志文件
归档日志文件,就是在归档模式下,重做日志被连续写入到归档日志后,所生成了归档
日志文件。归档日志文件以归档时间命名,扩展名也是 log。
其余还有 逻辑日志文件、物理逻辑日志文件、备份文件、SQL日志文件、事件日志文件等,这边就不一一讲述了。
二、DM8命令行方式安装部署
根据不同的应用需求与配置,DM 提供了多种不同的产品系列:
1)标准版 Standard Edition
2)企业版 Enterprise Edition
3)安全版 Security Edition
DM软件包可以在官网下载: https://www.dameng.com/list_103.html
下面以Linux环境命令行安装方式为例:
1.环境检查
获取系统位数
getconf LONG_BIT
#查询操作系统 release 信息
lsb_release -a
#查询系统信息
cat /etc/issue
#查询系统名称
uname -a
操作系统限制:
建议用户检查当前安装用户的 ulimit 参数。
运行 ulimit -a 进行查询
参数使用限制:
1.data seg size
data seg size (kbytes, -d)
建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导
致数据库启动失败。
2. file size
file size(blocks, -f)
建议用户设置为 unlimited(无限制),此参数过小将导致数据库安装或初始化失败。
3. open files
open files(-n)
建议用户设置为 65536 以上或 unlimited(无限制)。
4.virtual memory
virtual memory (kbytes, -v)
建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导
致数据库启动失败。
如 果 用 户 需 要 为 当 前 安 装 用 户 更 改 ulimit 的 资 源 限 制 , 请 修 改 文 件
/etc/security/limits.conf。
[root@ ~]# vim /etc/security/limits.conf
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
创建用户授权
[root@ ~]# groupadd dinstall -g 2001
[root@ ~]# useradd -u 2001 -g dinstall -m -d /home/dmdba/dmdbms -s /bin/bash dmdba
[root@ ~]# passwd dmdba
[root@ ~]# <输入密码>
[root@ ~]# <再次输入密码>
[root@ ~]# mkdir /home/dmdba/dmdbms
[root@ ~]# chown -R dmdba:dinstall /home/dmdba/dmdbms
[root@ ~]# chmod -R 755 /home/dmdba/dmdbms
配置环境变量
export PATH=/home/dmdba/dmdbms/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin2
export JAVA_HOME=/home/dmdba/dmdbms/jdk
export PATH=$PATH:$JAVA_HOME/bin
将 DM 安装光盘放入光驱,然后加载(mount)光驱。一般可以通过执行下面的命令来
加载光驱:
mount /dev/cdrom /mnt/cdrom
这里假定光驱对应的文件为/dev/cdrom 且目标路径/mnt/cdrom 已存在。
加载(mount)光驱后,在/mnt/cdrom 目录下存在 DMInstall.bin 文件,
DMInstall.bin 文 件 就 是 DM 的 安 装 程 序 。 在 运 行 安 装 程 序 前 , 需 要 赋 予
DMInstall.bin 文件执行权限。具体命令如下所示:
chmod 755 ./DMInstall.bin
2.安装软件
命令行安装:
进入到/mnt/cdrom目录
./DMInstall.bin -i 执行安装程序
[dmdba@localhost mnt]$ ls
DM8 Install.pdf DMInstall.bin
[dmdba@localhost mnt]$ ./DMInstall.bin -i
Please select the installer's language (E/e:English C/c:Chinese) [E/e]:C #设置中英文
解压安装程序.........
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7170
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
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]: #测试环境可忽略填N
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
....
[21]: GTM+08=中国标准时间
....
请选择设置时区 [21]:21
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:4
1 服务器组件
2 客户端组件
2.1 DM管理工具
2.2 DM性能监视工具
2.3 DM数据迁移工具
2.4 DM控制台工具
2.5 DM审计分析工具
2.6 SQL交互式查询工具
3 驱动
4 用户手册
5 数据库服务
5.1 实时审计服务
5.2 作业服务
5.3 实例监控服务
5.4 辅助插件服务
请选择安装组件的序号 (使用空格间隔) [1 2 3 4 5]:1 2 3 4 5
所需空间: 1602M
请选择安装目录 [/home/dmdba/dmdbms]:
可用空间: 10G
是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1602M
可用空间: 10G
版本信息:
有效日期:
安装类型: 自定义
是否确认安装? (Y/y:是 N/n:否):y
配置文件/etc/dm_svc.conf已存在,是否进行替换? (Y/y,N/n) [Y/y]:y
2022-09-16 11:35:19
[INFO] 安装达梦数据库...
2022-09-16 11:35:19
[INFO] 安装 基础 模块...
2022-09-16 11:35:22
[INFO] 安装 服务器 模块...
2022-09-16 11:35:23
[INFO] 安装 客户端 模块...
2022-09-16 11:35:25
[INFO] 安装 驱动 模块...
2022-09-16 11:35:26
[INFO] 安装 手册 模块...
2022-09-16 11:35:27
[INFO] 安装 服务 模块...
2022-09-16 11:35:28
[INFO] 移动日志文件。
2022-09-16 11:35:28
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/home/dmdba/dmdbms/script/root/root_installer.sh
安装结束
切换到root用户,执行 /home/dmdba/dmdbms/script/root/root_installer.sh
```bash
[root@localhost ~]# /home/dmdba/dmdbms/script/root/root_installer.sh
移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录
修改服务器权限
3.初始化数据库
dminit工具介绍:
dminit 是 DM 数据库初始化工具。在安装 DM 的过程中,用户可以选择是否创建初始
数据库。如果当时没有创建,那么在安装完成之后,可以利用创建数据库工具 dminit 来创
建。
dminit参数详解可以参考官方文档:https://eco.dameng.com/document/dm/zh-cn/pm/dminit-parameters.html
我们这边使用dminit工具来初始化数据库
[dmdba@localhost dmdbms]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./dminit PATH=/home/dmdba/dmdbms charset=1 log_size=2048 case_sensitive=0 page_size=32
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-06-30
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /home/dmdba/dmdbms/DAMENG/DAMENG01.log
log file path: /home/dmdba/dmdbms/DAMENG/DAMENG02.log
write to dir [/home/dmdba/dmdbms/DAMENG].
create dm database success. 2022-09-16 11:46:16
此时在/home/dmdba/dmdbms 目录下会出现一个 DAMENG 文件夹,内容包含初始数据库 DAMENG 的相关文件和 DM 数据库启动所必须的配置文件 dm.ini。
4.注册数据库
参考官方文档:https://eco.dameng.com/document/dm/zh-cn/pm/dm8_linux-script-manual.html
[root@localhost ~]# cd /home/dmdba/dmdbms/script/root/
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/DAMENG/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@localhost root]# service DmServiceDMSERVER start
Redirecting to /bin/systemctl start DmServiceDMSERVER.service
[root@localhost root]# netstat -lntp |grep 5236
tcp6 0 0 :::5236 :::* LISTEN 95745/dmserver
5.登录数据库
接下去就可以使用DM管理工具连接数据库了
SYSDBA默认密码SYSDBA
查询数据库信息:
SELECT B.SVR_VERSION AS "数据库版本", C.DB_MAGIC AS "数据库MAGIC",A.NAME AS "数据库名",B.INSTANCE_NAME AS "实例名",B.STATUS$ AS "系统状态",B.MODE$ AS "模式",DECODE(A.ARCH_MODE,'Y','是','N','否') AS "是否归档",B.START_TIME AS "服务启动时间" FROM V$DATABASE A,V$INSTANCE B,V$RLOG C;
社区地址: https://eco.dameng.com