Docker 安装达梦 DM8 数据库实战指南
文章目录
- [Docker 安装达梦 DM8 数据库实战指南](#Docker 安装达梦 DM8 数据库实战指南)
-
-
- [一 安装环境](#一 安装环境)
- [二 下载 DM8 安装包](#二 下载 DM8 安装包)
- [三 导入镜像](#三 导入镜像)
- [四 启动容器](#四 启动容器)
-
- [1)docker run 启动](#1)docker run 启动)
- [2)docker compose 启动](#2)docker compose 启动)
- 3)名词解释
- [五 连接数据库](#五 连接数据库)
-
本文详细介绍了如何在 CentOS 7.9 环境下,通过 Docker 部署达梦 DM8 数据库的完整流程。首先,用户需要从官方渠道下载 DM8 Docker 镜像并导入容器镜像。接着,文章提供了使用 docker run
和 docker compose
启动容器的两种方式,并详细解释了容器启动相关参数及数据库初始化参数设置的含义。最后,通过连接容器并进入数据库执行 SQL 语句,验证数据库是否成功部署。该指南适合需要快速部署达梦数据库的开发者和运维人员。
预备课:
一 安装环境
操作系统 | 架构 |
---|---|
CentOS 7.9 |
X86-64 |
二 下载 DM8 安装包
DM8 Docker 镜像下载地址 提供了最新的安装包,仅供学习、测试和开发用途,并享有1年免费试用期。请注意,下载的文件名为 dm8_20240715_x86_rh6_rq_single.tar
,大小约为1.1GB,未来版本的文件名可能会有所不同。
三 导入镜像
shell
$ docker load < dm8_20240715_x86_rh6_rq_single.tar
# 或者
$ docker load -i dm8_20240715_x86_rh6_rq_single.tar
四 启动容器
1)docker run 启动
shell
$ docker run -d -p 30236:5236 --restart=always --name=dm8_test --privileged=true -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e PAGE_SIZE=16 -e EXTENT_SIZE=32 -e LOG_SIZE=1024 -e UNICODE_FLAG=1 -e INSTANCE_NAME=dm8_test -v /dm8/data:/opt/dmdbms/data dm8_single:dm8_dm8_20240715_rev232765_x86_rh6_64
2)docker compose 启动
yaml
version: '3'
services:
dm8_test:
image: dm8_single:dm8_dm8_20240715_rev232765_x86_rh6_64
container_name: dm8_test
restart: always
privileged: true
ports:
- 30236:5236
environment:
- TZ=Asia/Shanghai
- LD_LIBRARY_PATH=/opt/dmdbms/bin
- PAGE_SIZE=16
- EXTENT_SIZE=32
- LOG_SIZE=1024
- UNICODE_FLAG=1
- INSTANCE_NAME=dm8_test
volumes:
- ./dm8/data:/opt/dmdbms/data
3)名词解释
容器运行相关参数说明:
参数名 | 参数描述 |
---|---|
-d | -detach 的简写,在后台运行容器,并且打印容器 id。 |
-p | 指定容器端口映射,比如 -p 30236:5236 是将容器里数据库的 5236 端口映射到宿主机 30236 端口,外部就可以通过宿主机 ip 和 30236 端口访问容器里的数据库服务。 |
--restart | 指定容器的重启策略,默认为 always,表示在容器退出时总是重启容器。 |
--name | 指定容器的名称。 |
--privileged | 指定容器是否在特权模式下运行。 |
-v | 指定在容器创建的时候将宿主机目录挂载到容器内目录,默认为/home/mnt/disks |
使用 -e 命令指定数据库初始化参数时,需要注意的是目前只支持预设以下九个 DM 参数。
参数名 | 参数描述 | 备注 |
---|---|---|
PAGE_SIZE | 页大小,可选值 4/8/16/32,默认值:8 | 设置后不可修改 |
EXTENT_SIZE | 簇大小,可选值 16/32/64,默认值:16 | 设置后不可修改 |
CASE_SENSITIVE | 1:大小写敏感;0:大小写不敏感,默认值:1 | 设置后不可修改 |
UNICODE_FLAG | 字符集选项;0:GB18030;1:UTF-8;2:EUC-KR,默认值:0 | 设置后不可修改 |
INSTANCE_NAME | 初始化数据库实例名字,默认值:DAMENG | 可修改 |
SYSDBA_PWD | 初始化实例时设置 SYSDBA 的密码,默认值:SYSDBA001 | 可修改 |
BLANK_PAD_MODE | 空格填充模式,默认值:0 | 设置后不可修改 |
LOG_SIZE | 日志文件大小,单位为:M,默认值:256 | 可修改 |
BUFFER | 系统缓存大小,单位为:M,默认值:1000 | 可修改 |
注意
1 SYSDBA_PWD 预设的时候,密码长度为 9~48 个字符,docker 版本使用暂不支持特殊字符为密码。
2 -e 设置的时候 初始化参数必须使用大写,不可使用小写。
3 新版本 Docker 镜像中数据库默认用户名/密码为
SYSDBA/SYSDBA001
。
五 连接数据库
进入 DM8 容器连接数据库,通过以下命令进入容器
shell
$ sudo docker exec -it your容器 /bin/bash
进入数据库脚本目录
shell
$ cd /opt/dmdbms/bin
连接数据库
shell
$ ./disql SYSDBA/SYSDBA001
运行 SQL 测试
sql
select ID_CODE();
注意
1 如果使用 docker 容器里面的 disql,进入容器后,先执行 source /etc/profile 防止中文乱码。