【Docker】搭建达梦数据库(基于 X86 架构)

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发、订阅专栏!


专栏订阅入口

Linux 专栏 | Docker 专栏 | Kubernetes 专栏


往期精彩文章

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法(续)

【Docker】MySQL 源码构建 Docker 镜像(基于 ARM 64 架构)


目录

一、背景介绍

二、达梦介绍

二、搭建过程

1、部署环境

2、准备工作

3、运行容器

4、等待就绪

5、登录数据库

附录


一、背景介绍

近期,团队研发同学向笔者提出搭建达梦数据库以进行适配的需求,笔者完成调研后着手搭建了一套测试环境,本文详细介绍达梦数据库 DM8 的搭建步骤。


二、达梦介绍

达梦数据库是中国自主研发的数据库管理系统,由武汉达梦数据库股份有限公司开发和维护,支持多种操作系统和硬件平台,适用于不同规模和行业的需求。

达梦数据库的主要特点包括高性能、高可用性、跨平台支持、高可扩展性、低投入成本和简便易用性。它支持大数据应用,采用先进的存储引擎、索引技术和并行查询处理,以满足海量数据的联机分析处理(OLAP)需求。此外,达梦数据库还具备数据守护系统(主备架构),能够实现自动快速故障恢复,具有强大的容灾处理能力。

达梦数据库的产品线包括 DM7 和 DM8 等版本,其中 DM8 是新一代大型通用关系型数据库,全面支持 ANSI SQL 标准和主流编程语言接口/开发框架。DM8 支持行列融合存储技术,能够兼顾 OLAP 和 OLTP,满足 HTAP 混合应用场景,实现高性能事务处理和数据库平滑迁移。

【Docker】搭建达梦数据库(基于 X86 架构)_第1张图片


二、搭建过程
1、部署环境

X86_64 架构的服务器 1 台,并安装 Docker 19.03.14 版本。

2、准备工作
# 下载镜像
wget https://download.dameng.com/eco/dm8/dm8_20230808_rev197096_x86_rh6_64_single.tar

# 导入镜像
docker load -i dm8_20230808_rev197096_x86_rh6_64_single.tar

# 查看镜像
docker images | grep dm8

# 创建数据目录
mkdir /data/dm8

3、运行容器
docker run -d \
-p 5236:5236 \
--restart=always \
--name dm8 \
--privileged=true \
-e PAGE_SIZE=16 \
-e LD_LIBRARY_PATH=/opt/dmdbms/bin \
-e EXTENT_SIZE=32 \
-e BLANK_PAD_MODE=1 \
-e LOG_SIZE=1024 \
-e UNICODE_FLAG=1 \
-e LENGTH_IN_CHAR=1 \
-e INSTANCE_NAME=dm8 \
-v /data/dm8:/opt/dmdbms/data \
dm8_single:dm8_20230808_rev197096_x86_rh6_64

 页大小 (PAGE_SIZE)、簇大小 (EXTENT_SIZE)、大小写敏感 (CASE_SENSITIVE)、字符集 (UNICODE_FLAG) 、VARCHAR 类型以字符为单位 (LENGTH_IN_CHAR)、空格填充模式 (BLANK_PAD_MODE) 、页检查模式(PAGE CHECK) 等部分参数,一旦确定无法修改,在初始化实例时确认需求后谨慎设置!!

docker ps -a | grep dm8

4、等待就绪
docker logs -f dm8

# 显示如下内容时服务就绪
file dm.key not found, use default license!
License will expire in 14 day(s) on 2024-04-25
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /opt/dmdbms/data/DAMENG/DAMENG01.log

 log file path: /opt/dmdbms/data/DAMENG/DAMENG02.log

write to dir [/opt/dmdbms/data/DAMENG].
create dm database success. 2024-04-11 16:28:00
initdb V8
db version: 0x7000c
Init DM success!
Start DmAPService...
Starting DmAPService:                                      [ OK ]
/opt/dmdbms/conf/dm.ini does not exist, use default dm.ini
Start DMSERVER success!
Dmserver is running.
DM Database is not OK, please wait...
DM Database is OK
Finished soft link DM current dm_DMSERVER_202404.log to dm_DMSERVER.log
 * Starting periodic command scheduler cron
   ...done.
2024-04-11 16:28:20.450 [INFO] database P0000000047 T0000000000000000092  total 0 active crash trx, pseg_crash_trx_rollbacksys_only(0) begin ...
2024-04-11 16:28:20.450 [INFO] database P0000000047 T0000000000000000092  pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.
2024-04-11 16:28:20.450 [INFO] database P0000000047 T0000000000000000092  pseg_crash_trx_rollback end
2024-04-11 16:28:20.450 [INFO] database P0000000047 T0000000000000000092  hpc_clear_active_trx adjust n_crash_active_trx from 0 to 0.
2024-04-11 16:28:20.451 [INFO] database P0000000047 T0000000000000000047  backup control file /opt/dmdbms/data/DAMENG/dm.ctl to file /opt/dmdbms/data/DAMENG/dm_20240411162820_450967.ctl
2024-04-11 16:28:20.452 [INFO] database P0000000047 T0000000000000000047  backup control file /opt/dmdbms/data/DAMENG/dm.ctl to file /opt/dmdbms/data/DAMENG/ctl_bak/dm_20240411162820_451609.ctl succeed
2024-04-11 16:28:20.452 [INFO] database P0000000047 T0000000000000000047  local instance name is DMSERVER, mode is NORMAL, status is OPEN.
2024-04-11 16:28:20.452 [INFO] database P0000000047 T0000000000000000047  SYSTEM IS READY.
2024-04-11 16:28:20.452 [INFO] database P0000000047 T0000000000000000047  set g_dw_stat from UNDEFINED to NONE success, g_dw_recover_stop is 0
2024-04-11 16:28:21.450 [INFO] database P0000000047 T0000000000000000094  trx4_min_tid_collect set min_active_id_opt, min_active_id: 3643, first_tid: 3006
2024-04-11 16:30:06.671 [INFO] database P0000000047 T0000000000000000158  socket_err_should_retry errno:104

5、登录数据库
docker exec -it dm8 bash
./opt/dmdbms/bin/disql SYSDBA/SYSDBA001:5236

# 使用默认的用户名、密码,登录数据库后显示如下:
Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 2.315(ms)
disql V8
SQL>


附录

技术文档:快速上手 | 达梦技术文档

安装文档:Docker 安装 | 达梦技术文档

下载地址:Docker 安装包

你可能感兴趣的:(Docker,docker,容器,运维,数据库,达梦数据库)