注册
DM8容器化运维:Docker部署DM8数据库及容器环境常见运维问题解决
培训园地/ 文章详情 /

DM8容器化运维:Docker部署DM8数据库及容器环境常见运维问题解决

张学亮 2022/12/01 4180 3 1

随着容器化的普及,各用户无论在开发环境或者生产环境,都已经大量采用了容器化的应用部署方式。有了容器技术的加持,devops之路将会更平坦、开阔。本篇文章主要以docker部署的方式,部署DM8数据库,并且侧重于解决在docker部署过程中遇到的一些疑难点,及遇到问题该如何解决的思路分享。

创建工作目录

为了降低阅读成本,建议读者均以此目录作为工作目录。

mkdir /opt/DM8 cd /opt/DM8

下载镜像

首先,前往达梦数据库官网下载Docker镜像文件,将文件下载至/opt/DM8目录。官网访问地址:
https://eco.dameng.com/download/
image.png

导入镜像

cd /opt/DM8 sudo docker load -i dm8_20220822_rev166351_x86_rh6_64_ctm.tar sudo docker images | grep dm8

成功导入后效果如下:
image.png

创建DM8容器实例

sudo docker run -d -p 5236:5236 --restart=always --name dm8_01 --privileged=true -e PAGE_SIZE=16 -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e INSTANCE_NAME=dm8_01 -v /opt/DM8/docker-data/dm8_01:/opt/dmdbms/data dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4

验证安装结果

sudo docker ps | grep dm8_01

sudo docker logs -f dm8_01

进入dm8容器

sudo docker exec -it dm8_01 bash
cd /opt/dmdbms/bin
./disql SYSDBA/SYSDBA001

常见容器运维问题

docker启动报错:can’t create unix socket /var/run/docker.sock: is a directory

原因:docker.sock不能创建

解决方式:

rm -rf /var/run/docker.sock

然后重新启动docker

DM8备份时718报错代码解决办法

该错误提示需要恢复归档日志

解决办法

  • 关闭数据库
  • 执行/opt/dmdbms/bin/dmrman命令
  • RMAN> repair archivelog database ‘/opt/dmdbms/DAMENG/dm.ini’ ;
    提示succefully表示修复成功,此时可以进行备份操作了。

报错:Job for docker.service failed. Failed to start Docker Application

原因:Selinux引起

解决方式:

/etc/sysconfig/selinux , 把 selinux 值改为disabled

重启docker解决

docker: Error response from daemon:xxx: no such file or directory.

原因:docker没有指定目录或文件

解决方式:

systemctl stop docker

rm -rf /var/lib/docker/*

systemctl start docker

重启run镜像启动容器

Error: Connection activation failed: No suitable device found for this connection

原因:网卡配置问题

解决方式:

重启网卡

Error starting daemon: error initializing graphdriver: driver not supported

使用overlay2存储驱动启动docker daemon报错

原因:daemon缺少配置

解决方式:

添加配置:

vim /etc/docker/daemon.json

{"storage-driver": "overlay2",

"storage-opts": ["overlay2.override_kernel_check=true"]}

Failed to start docker.service: Unit docker.service is masked.

未知原因:docker 被mask

解决方式:

systemctl unmask docker.service

systemctl unmask docker.socket

systemctl start docker.service

Failed to start docker.service: Unit is not loaded properly: Invalid argument.

未知原因:docker服务无法正常load

解决方式:

卸载docker, 删除docker.service

重新安装docker。

以上就是本篇文章的全部内容。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服