注册
DM8 Docker云环境部署(含Docker安装)
技术分享/ 文章详情 /

DM8 Docker云环境部署(含Docker安装)

一秋哥 2024/02/04 1977 0 0

1DM8 Docker云环境部署

1.1前言

今天收到达梦培训中心,DM8-DCA认证考试结果通知,看到领取证书说明,需要一个月内提交一份精品博文一篇,看了一下达梦在线服务平台中的博客,感觉再提交一些重复的就没什么意义(之前做过大量的DataWatch、RWC、主备集群+异步库、DPC集群、DSC共享存储集群等搭建和测试),想来想去准备找一个亮点,博客上没有的,基于docker安装dm8单机版。初次先学习docker如何安装,如何在docker上安装DM8,docker环境连接DM8,docker环境如何启停数据库。后面如果有时间,我会再写docker的dm8 DataWatch, docker的dm8 RWC, docker的dm8 DSC, k8s环境下的dm8等。

1.2环境说明

类别 版本 介质
操作系统 Centos7.9 CentOS-7.9-x86_64-DVD.iso
Docker 24.0.6 docker-24.0.6.tgz
Dm8 Docker DM8开发版 dm8_20230808_rev197096_x86_rh6_64_single.tar

1.3Docker安装(离线安装)

Docker可以离线安装,也可以在线安装,如果要在线安装需要准备一台可以上外网的机器,直接从镜像仓库拉取镜像安装。如果要离线安装就需要提前下载好docker离线安装包,并上传到服务器上。这里采用离线安装的方式进行,下次的博客我会采用在线安装方式,尽请留意。
Docker有rpm版本和源码版本,这里采用源码版本进行安装。

1.3.1上传并解压docker

docker-24.0.6.tgz`上传至/opt目录
tar -zxvf docker-24.0.6.tgz`

1.3.2 文件移到/usr/bin

cp -rp /opt/docker/* /usr/bin/

1.3.3注册docker为系统服务

vi /etc/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=docker官网下载 After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process # restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target

1.3.4添加权限

添加权限后启动

chmod +x /etc/systemd/system/docker.service

1.3.5重新加载配置文件

systemctl daemon-reload

1.3.6Docker启动

systemctl start docker systemctl enable docker

1.3.7查看docker状态

systemctl status docker

image.png

1.3.8查看docker版本

# docker version Client: Version: 24.0.6 API version: 1.43 Go version: go1.20.7 Git commit: ed223bc Built: Mon Sep 4 12:30:51 2023 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 24.0.6 API version: 1.43 (minimum version 1.12) Go version: go1.20.7 Git commit: 1a79695 Built: Mon Sep 4 12:32:17 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: v1.7.3 GitCommit: 7880925980b188f4c97b462f709d0db8e8962aff runc: Version: 1.1.9 GitCommit: v1.1.9-0-gccaecfc docker-init: Version: 0.19.0 GitCommit: de40ad0

到此docker安装完成。

1.3.9Docker简单查询

[root@dm8docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE [root@dm8docker ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

docker images:本地镜像
docker ps:活动的docker(正在运行的)
这里没有任何东西,因为只安装了docker软件,应用或者数据库都还没有开始部署。

1.4DM8云版本安装

1.4.1下载DM8 Docker镜像

请到达梦官网下载DM8 Docker镜像安装包。
image.png
这个版本是X86_64位 for Linux版本。麒麟V10会报错。

1.4.2导入安装包

拷贝安装包到 /opt 目录下,执行以下命令导入安装包:

docker load -i /opt/dm8_20230808_rev197096_x86_rh6_64_single.tar

结果显示如下:
image.png

1.4.3查看DM8镜像

导入完成后,可以使用docker images查看导入的镜像。结果显示如下:

docker images

image.png
TAG:云版本DM8版本号
IMAGE ID:导入镜像ID号

1.4.4创建容器

镜像导入后,使用docker run启动容器,启动命令如下:
--简单:

docker run -d -p 25236:5236  --name DAMENG  -e INSTANCE_NAME=DMSERVER -e LD_LIBRARY_PATH=/opt/dmdbms/bin  -v /data:/dm8/dmdbms/data   ab98e2f4a568

参数说明:
-p 25236:5236 #将docker内DM8的5236端口映射到外面25236
--name DAMENG #数据库名
INSTANCE_NAME=DMSERVER #数据库实例
LD_LIBRARY_PATH=/opt/dmdbms/bin #docker内DM8安装路径
ab98e2f4a568 #镜像ID
/data:/dm8/dmdbms/data #将镜像内/dm8/dmdbms/data映射到外面/data目录
--复杂:

docker run -d -p 25236:5236 --restart=always --name DAMENG --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=DMSERVER -v /data:/opt/dmdbms/data ab98e2f4a568

或者

docker run -d -p 25236:5236 --restart=always --name DAMENG --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=DMSERVER -v /data:/opt/dmdbms/data dm8_single:dm8_20230808_rev197096_x86_rh6_64

说明:
ab98e2f4a568:查看docker images获得镜像ID号
dm8_single:dm8_20230808_rev197096_x86_rh6_64:查看docker images获得镜像名称

1.4.5删除容器

如果安装失败,手工删除再重建

docker remove -f 56d76d12f322

1.4.6查看镜像启动情况

容器创建完成后,使用docker ps查看镜像的启动情况,结果显示如下:
image.png

1.4.7查看镜像DM8进程情况

image.png

1.4.8查看持久化目录

ls -al /data/DAMENG/

image.png

1.4.9查看日志情况

启动完成后,可通过日志检查启动情况,命令如下:

docker logs -f DAMENG

docker logs -f 56d76d12f322

结果显示如下:
image.png

1.5DM8启/停数据库

1.5.1docker停止数据库

# docker stop DAMENG # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

1.5.2docker启动数据库

docker start DAMENG

重启命令如下:

docker restart DAMENG

1.5.3进入容器停数据库

[root@dm8docker ~]# docker exec -it 56d76d12f322 bash root@56d76d12f322:/# cd /opt/dmdbms/bin root@56d76d12f322:/opt/dmdbms/bin#

这个版本把注册服务包拿掉了,不能注册,不能重启,只能在docker层面启停。

1.6进入容器文件系统

DM8 Docker镜像中数据库默认用户名/密码为 SYSDBA/SYSDBA001
如果使用 docker 容器里面的 disql,进入容器后,先执行 source /etc/profile 防止中文乱码。

[root@dm8docker ~]# docker exec -it 56d76d12f322 bash

1.7容器登录DM8数据库

root@56d76d12f322:/# source /etc/profile root@56d76d12f322:/# cd /opt/dmdbms/bin root@56d76d12f322:/opt/dmdbms/bin# ./disql SYSDBA/SYSDBA001 Server[LOCALHOST:5236]:mode is normal, state is open login used time : 4.950(ms) disql V8 SQL> select status$ from v$instance; LINEID STATUS$ ---------- ------- 1 OPEN used time: 2.271(ms). Execute id is 600. SQL> select name from v$database; LINEID NAME ---------- ------ 1 DAMENG used time: 1.119(ms). Execute id is 601. SQL> select instance_name from v$instance; LINEID INSTANCE_NAME ---------- ------------- 1 DMSERVER

image.png

1.8 安装宿主机DM8客户端

# mount -o loop /soft/linux_x86_64/dm8_20240116_x86_rh7_64.iso /mnt # cd /mnt # ./DMInstall.bin -i

image.png

1.9 宿主机登录容器DM8

[root@dm8docker ~]# cd /dm8/bin [root@dm8docker bin]# ./disql SYSDBA/SYSDBA001@127.0.0.1:25236

image.png

1.10 宿主机使用管理工具

[root@dm8docker /]# cd /dm8/tool/ [root@dm8docker tool]# export DISPLAY=84.0.191.1:0.0 [root@dm8docker tool]# ./manager

image.png
image.png
今天就写到这里,后面会在docker环境做备份恢复测试、dm8 DataWatch、 dm8 RWC、 docker的dm8 DSC, 、k8s环境下的dm8等。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服