【赵渝强老师】在Docker中运行达梦数据库

简介: 本文介绍了在Docker容器中部署达梦数据库(DM 8)的具体步骤,包括创建文件夹、下载安装包、导入镜像、启动容器、登录数据库及查看状态等操作。同时,通过视频讲解辅助理解。文中还分析了将数据库服务容器化的潜在问题,如数据安全性、硬件资源争用、网络带宽占用和额外隔离带来的挑战,指出数据库服务在生产环境中可能不适合容器化的原因。

b299.png

Docker是一个客户端服务器(Client-Server)架构。Docker客户端和Docker守护进程交流,而Docker的守护进程是运作Docker的核心,起着非常重要的作用(如构建、运行和分发Docker容器等)。达梦官方提供了DM 8在Docker容器中进行部署的镜像文件,下面通过具体的步骤进行演示。


视频讲解如下:


(1)在根目录下创建 /dm8 文件夹,用来放置下载的 Docker 安装包。

mkdir /dm8
cd /dm8


(2)下载 DM Docker安装包。

wget -O dm8_docker.tar -c \
https://download.dameng.com/eco/dm8/dm8_docker.tar


(3)下载完成后,导入DM安装包。

docker import dm8_docker.tar dm8:v01


(4)使用docker images命令来查看导入的镜像。

docker images
# 输出的信息如下:
REPOSITORY  TAG     IMAGE ID      CREATED        SIZE
dm8           v01  c5b8632e84e8   3 seconds ago  2.5 GB


(5)启动DM容器。

docker run -itd -p 5237:5236 --name dm8_01 dm8:v01 /bin/bash /startDm.sh
# 输出的信息如下:
CONTAINER ID        IMAGE     ...... PORTS                      NAMES
f413eda461b2        dm8:v01   ...... 0.0.0.0:5237->5236/tcp   dm8_01
# 这里为了防止与宿主机的端口冲突,将容器内的5236端口映射到了宿主机的5237端口上。


(6)使用SQL命令工具登录DM数据库。

disql sysdba/SYSDBA@localhost:5237
# 用户sysdba的默认密码是SYSDBA。
# 输出的信息如下:
服务器[localhost:5237]:处于普通打开状态
登录使用时间 : 1.976(ms)
disql V8
SQL>


(7)查看当前用户和数据库实例的状态信息。

SQL> select user();
行号     USER()
---------- ------
1          SYSDBA
已用时间: 2.863(毫秒). 执行号:600.
SQL> select status$ from v$instance;
行号     status$
---------- -------
1          OPEN
已用时间: 3.772(毫秒). 执行号:601.


(8)停止DM数据库容器。

docker stop  dm8_01


这里需要注意的问题是:由于Docker的容器是一个无状态的服务,在实际生产中不适合将一个有状态的服务部署到Docker的容器中,例如数据库服务。这主要体现在以下几方面:


  • 数据的安全性

尽管Docker可以通过数据卷的方式将容器内的数据持久化存储到宿主机上,但任然不能保证不丢数据。如果容器崩溃并数据库未正确关闭,则可能会损坏数据。


  • 硬件资源的争用

通常在一台Docker的宿主机上往往会启动多个容器。如果将数据库的容器与其他应用的容器运行在同一个宿主机上,由于它们对硬件资源的要求是不同的,必然会造成资源的争用问题。


  • 网络带宽的占用

Docker的网络都是虚拟网络,通过宿主机上的docker0网桥进行转发。而数据库通常要求的网络带宽是比较高的。因此将数据库与其他应用都部署在同一个宿主机的容器中,网络带宽必然会成为数据库性能的瓶颈。


  • 数据额外的隔离

将数据库部署到容器中,毫无疑问增加了一层容器的隔离。这不利于数据库的水平扩展。  


最后还需要说明的一点是,使用Docker的目的就是在于易于构建新环境和易于重新部署应用系统。而在实际情况中数据库一旦部署完成,很少会进行数据库的升级或者重新部署。因此从这一方面看,数据库也不适合Docker及容器化。

目录
打赏
0
4
4
0
179
分享
相关文章
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
110 82
【赵渝强老师】达梦数据库的目录结构
本文介绍了达梦数据库(DM 8)安装成功后的目录结构查看方法,通过Linux的`tree`命令展示各目录功能,如`bin`存放可执行文件、`data`为数据库实例目录等。还提供了视频讲解及`data`目录下具体文件示例,帮助用户深入了解数据库文件组成与作用。
51 23
【赵渝强老师】达梦数据库的数据库对象
达梦数据库包含基本与复杂两大类数据库对象。基本对象如表、索引、视图、序列和同义词,通过单一DDL语句创建和管理。表是数据存储核心,支持多种数据类型;索引提升查询速度,常见类型包括聚集、唯一、函数等索引;视图提供虚表功能;序列生成有序整数;同义词简化对象访问。复杂对象包括存储过程、函数和触发器,需用DMSQL语言开发,适用于更复杂的业务逻辑处理。文中通过实例详细介绍了各类对象的创建与使用方法。
【赵渝强老师】达梦数据库的客户端工具
本文介绍了达梦数据库的多种工具及其使用方法,包括disql交互式查询工具、数据库配置助手DBCA、DM管理工具、DM服务查看器、DM控制台工具、DM数据迁移工具、DM性能监视工具以及DM审计分析工具。每种工具的功能和操作步骤均有详细说明,并配有相关图片和代码示例,帮助用户更好地理解和使用这些工具,提升数据库管理和维护效率。
【赵渝强老师】达梦数据库的归档模式
本文介绍了达梦数据库备份与恢复中重做日志文件的作用,重点讲解了归档模式的必要性及其配置方法。文章分析了非归档模式可能导致的数据丢失问题,并推荐使用归档模式以保障数据一致性和完整性。归档模式分为本地归档和远程归档:本地归档将重做日志存储在本地,而远程归档适用于集群环境,确保所有节点拥有完整日志。文中还详细展示了如何通过SQL命令开启归档模式,包括切换状态、设置路径及验证配置等步骤,并附有视频教程辅助理解。
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
198 42
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
57 19
【赵渝强老师】达梦数据库的产品系列
达梦数据库是达梦公司推出的新一代自研数据库,融合分布式、弹性计算与云计算优势,支持超大规模并发事务处理和HTAP混合业务。产品体系包括DM8、DMDSC、DM DataWatch、DMMPP和DMRWC,分别适用于通用关系型数据库、共享存储集群、数据守护集群、大规模数据分析及读写分离场景,满足不同需求并保障高可用性和安全性。
115 36
【赵渝强老师】达梦数据库MPP集群的架构
达梦数据库提供大规模并行处理(MPP)架构,以低成本实现高性能并行计算,满足海量数据存储和复杂查询需求。DM MPP采用完全对等无共享体系,消除主节点瓶颈,通过多节点并行执行提升性能。其执行流程包括主EP生成计划、分发任务、各EP并行处理及结果汇总返回。为确保高可用性,建议结合数据守护部署。