今天收到达梦培训中心,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等。
类别 版本 介质
操作系统 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
Docker可以离线安装,也可以在线安装,如果要在线安装需要准备一台可以上外网的机器,直接从镜像仓库拉取镜像安装。如果要离线安装就需要提前下载好docker离线安装包,并上传到服务器上。这里采用离线安装的方式进行,下次的博客我会采用在线安装方式,尽请留意。
Docker有rpm版本和源码版本,这里采用源码版本进行安装。
docker-24.0.6.tgz`上传至/opt目录
tar -zxvf docker-24.0.6.tgz`
cp -rp /opt/docker/* /usr/bin/
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
添加权限后启动
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
systemctl enable docker
systemctl status 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安装完成。
[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软件,应用或者数据库都还没有开始部署。
请到达梦官网下载DM8 Docker镜像安装包。
这个版本是X86_64位 for Linux版本。麒麟V10会报错。
拷贝安装包到 /opt 目录下,执行以下命令导入安装包:
docker load -i /opt/dm8_20230808_rev197096_x86_rh6_64_single.tar
结果显示如下:
导入完成后,可以使用docker images查看导入的镜像。结果显示如下:
docker images
TAG:云版本DM8版本号
IMAGE ID:导入镜像ID号
镜像导入后,使用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获得镜像名称
如果安装失败,手工删除再重建
docker remove -f 56d76d12f322
容器创建完成后,使用docker ps查看镜像的启动情况,结果显示如下:
ls -al /data/DAMENG/
启动完成后,可通过日志检查启动情况,命令如下:
docker logs -f DAMENG
或
docker logs -f 56d76d12f322
结果显示如下:
# docker stop DAMENG
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker start DAMENG
重启命令如下:
docker restart DAMENG
[root@dm8docker ~]# docker exec -it 56d76d12f322 bash
root@56d76d12f322:/# cd /opt/dmdbms/bin
root@56d76d12f322:/opt/dmdbms/bin#
这个版本把注册服务包拿掉了,不能注册,不能重启,只能在docker层面启停。
DM8 Docker镜像中数据库默认用户名/密码为 SYSDBA/SYSDBA001
如果使用 docker 容器里面的 disql,进入容器后,先执行 source /etc/profile 防止中文乱码。
[root@dm8docker ~]# docker exec -it 56d76d12f322 bash
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
# mount -o loop /soft/linux_x86_64/dm8_20240116_x86_rh7_64.iso /mnt
# cd /mnt
# ./DMInstall.bin -i
[root@dm8docker ~]# cd /dm8/bin
[root@dm8docker bin]# ./disql SYSDBA/SYSDBA001@127.0.0.1:25236
[root@dm8docker /]# cd /dm8/tool/
[root@dm8docker tool]# export DISPLAY=84.0.191.1:0.0
[root@dm8docker tool]# ./manager
今天就写到这里,后面会在docker环境做备份恢复测试、dm8 DataWatch、 dm8 RWC、 docker的dm8 DSC, 、k8s环境下的dm8等。
文章
阅读量
获赞