为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:kylin-v10
【CPU】:x86_64位
【问题描述】*:利用官网的DM8 docker镜像部署容器时,安装手册上的docker run 命令生产容器,没有任何问题,可以正常连接数据库。但是 我想让我本地已有的数据目录映射到容器里面,该怎么做啊?利用手册上的命令,本地会有 /data/dm8_01/DAMENG/ 这个目录,我停止容器,然后把这个目录下的内容全部删除掉,把现有的一个数据库目录里面的内容放到这里面,然后启动容器,容器可以正常启动,但是连接数据库时显示错误。
数据持久化只需要通过-v将外部任意存储管理的卷或者目录映射到内部数据的路径即可,这一点应该不存在问题,通讯失败可能是重新放入的数据路径下dm.ini的监听端口与自谦不同,或存在其他不一致的情况,具体可检查配置和docker
inspect信息及数据库日志
可以把外部的整个数据文件目录放进去。但是需要注意几点
1、数据库端口要和之前容器创建的时候指定的数据库端口一样。
2、外部数据库实例创建的时候,实例数据文件控制文件ini文件等路径要是/opt/dmdbms/data/DAMENG,直接将/opt/dmdbms/data/DAMENG 这个目录放到/data/dm8_01这个目录下面。
3、如果外部数据库的数据文件路径不是/opt/dmdbms/data/DAMENG,需要修改外部数据库的dm.ini文件和dm.ctl控制文件中所有相应的路径,改成/opt/dmdbms/data/DAMENG这个路径。
如果上面3点都没什么问题,就可以现有的一个数据库目录直接放到/data/dm8_01上面,然后启动dm8_01这个容器,应该是可以正常启动的。