ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Centos7 Docker 安装达梦8 并设置持久化

2021-03-10 11:59:41  阅读:931  来源: 互联网

标签:opt dmdbms 5236 Centos7 Docker data docker 达梦


一、下载达梦

链接:https://pan.baidu.com/s/1H3m6Om4jQf2-4pxK4mvs1w

提取码:2zj6

二、开始安装

把下载好的镜像移动进入服务器,然后执行挂载命令

cd /opt/install
mount dm8_20200907_x86_rh7_64_ent_8.1.1.126.iso /mnt/
#把挂载的文件复制到指定目录、

三、docker安装

1.运行centos7镜像

达梦数据库默认端口是5236,所以运行执行映射端口5236:5236

docker run -v /opt/data/dm:/opt/dmdbms/data -v /sys/fs/cgroup:/sys/fs/cgroup -it -p 5236:5236 -d --restart always --privileged=true --name centos7-dm8 centos:centos7 /usr/sbin/init

2.拷贝达梦数据库到容器中

从宿主机的刚刚第二步复制DMInstall.bin文件到容器中的/usr/local中

docker cp /mnt/DMInstall.bin  centos7-dm8:/usr/local

3.进入容器配置安装

docker exec -it centos7-dm8 /bin/bash

1.开始安装

cd /usr/local
chmod 777 DMInstall.bin

2.创建setup.xml安装配置文件

vi setup.xml

<?xml version="1.0"?>
<DATABASE>
    <!-- 安装数据库的语言配置,安装中文版配置ZH,英文版配置EN,不区分大小写。不允许为空。 -->
    <LANGUAGE>en</LANGUAGE>
    <!-- 安装程序的时区配置,默认值为+08:00,范围:­12:59 ~ +14:00 -->
    <TIME_ZONE>+08:00</TIME_ZONE>
    <!-- key 文件路径 -->
    <KEY></KEY>
    <!-- 安装程序组件类型,取值0、1、2,0 表示安装全部,1 表示安装服务器,2 表示安装客户端 。默认为0。 -->
    <INSTALL_TYPE>0</INSTALL_TYPE>
    <!--安装路径,不允许为空。 -->
    <INSTALL_PATH>/opt/dmdbms</INSTALL_PATH>
    <!--是否初始化库,取值Y/N、y/n,不允许为空。 -->
    <INIT_DB>Y</INIT_DB>
    <!-- 数据库实例参数 -->
    <DB_PARAMS>
        <!-- 初始数据库存放的路径,不允许为空 -->
        <PATH>/opt/dmdbms/data</PATH>
        <!-- 初始化数据库名字,默认是DM1,不超过128 个字符 -->
        <DB_NAME>DM1</DB_NAME>
        <!-- 初始化数据库实例名字,默认是DMSERVER,不超过128 个字符 -->
        <INSTANCE_NAME>DM1SERVER</INSTANCE_NAME>
        <!-- 初始化时设置dm.ini中的PORT_NUM,默认5236,取值范围:1024~65534 -->
        <PORT_NUM>5236</PORT_NUM>
        <!-- 初始数据库控制文件的路径,文件路径长度最大为256 -->
        <CTL_PATHS>
            <CTL_PATH>/opt/dmdbms/data/DM1/dm.ctl</CTL_PATH>
        </CTL_PATHS>
        <!-- 初始数据库日志文件的路径,文件路径长度最大为256 -->
        <LOG_PATHS>
            <LOG_PATH>/opt/dmdbms/data/DM1/DM101.log</LOG_PATH>
            <LOG_PATH>/opt/dmdbms/data/DM1/DM102.log</LOG_PATH>
        </LOG_PATHS>
        <!-- 数据文件使用的簇大小,只能是16页或32页之一,缺省使用16页 -->
        <EXTENT_SIZE>16</EXTENT_SIZE>
        <!-- 数据文件使用的页大小,缺省使用8K,只能是4K、8K、16K 或32K 之一 -->
        <PAGE_SIZE>8</PAGE_SIZE>
        <!-- 日志文件使用的簇大小,默认是512,取值范围64和2048之间的整数 -->
        <LOG_SIZE>512</LOG_SIZE>
        <!-- 标识符大小写敏感,默认值为 Y。 只能是’Y’, ’y’, ’N’, ’n’, ’1’, ’0’之一 -->
        <CASE_SENSITIVE>N</CASE_SENSITIVE>
        <!-- 字符集选项 ,默认值为 0。0 代表GB18030,1 代表UTF ­8,2 代表韩文字符集EUC-KR -->
        <CHARSET>1</CHARSET>
        <!-- 设置为1 时,所有 VARCHAR 类型对象的长度以字符为单位,否则以字节为单位。默认值为0。 -->
        <LENGTH_IN_CHAR>1</LENGTH_IN_CHAR>
        <!-- 字符类型在计算HASH值时所采用的HASH算法类别。0:原始 HASH算法;1:改进的 HASH算法。默认值为1。 -->
        <USE_NEW_HASH>1</USE_NEW_HASH>
        <!-- 初始化时设置SYSDBA的密码,默认为SYSDBA,长度在6 到48个字符之间 -->
        <SYSDBA_PWD></SYSDBA_PWD>
        <!-- 初始化时设置SYSAUDITOR的密码,默认为SYSAUDITOR,长度在 6 到48个字符之间 -->
        <SYSAUDITOR_PWD></SYSAUDITOR_PWD>
        <!-- 初始化时设置SYSSSO的密码,默认为 SYSSSO,长度在6 到48个字符之间,仅在安全版本下可见和可设置 -->
        <SYSSSO_PWD></SYSSSO_PWD>
        <!-- 初始化时设置SYSDBO的密码,默认为 SYSdbO,长度在6 到48个字符之间,仅在安全版本下可见和可设置 -->
        <SYSDBO_PWD></SYSDBO_PWD>
        <!-- 初始化时区,默认是东八区。格式为:正负号小时:分钟,范围:­12:59 ~ +14:00 -->
        <TIME_ZONE>+08:00</TIME_ZONE>
        <!-- 是否启用页面内容校验,0:不启用;1:简单校验;2:严格校验(使用CRC16 算法生成校验码)。默认0 -->
        <PAGE_CHECK>0</PAGE_CHECK>
        <!-- 设置默认加密算法,不超过128 个字符 -->
        <EXTERNAL_CIPHER_NAME></EXTERNAL_CIPHER_NAME>
        <!-- 设置默认HASH算法,不超过128 个字符 -->
        <EXTERNAL_HASH_NAME></EXTERNAL_HASH_NAME>
        <!-- 设置根密钥加密引擎,不超过128 个字符 -->
        <EXTERNAL_CRYPTO_NAME></EXTERNAL_CRYPTO_NAME>
        <!-- 服务器主密钥,用于加密数据库主密钥,最长为32个字节 -->
        <SVR_KEY></SVR_KEY>
        <!-- 数据库主密钥,用于加密库内密钥,如用户加密密钥、列加密密钥,最长为32个字节 -->
        <DB_KEY></DB_KEY>
        <!-- 全库加密密钥 ,最长为32个字节 -->
        <ENCRYPT_PWD></ENCRYPT_PWD>
        <!-- 全库加密密钥使用的算法名。算法可以是DM内部支持的加密算法,或者是第三方的加密算法。默认使用"AES256_ECB"算法加密 ,最长为128 个字节 -->
        <ENCRYPT_NAME></ENCRYPT_NAME>
        <!-- 指定日志文件是否加密。默认值 N。取值Y/N,y/n,1/0 -->
        <RLOG_ENC_FLAG>N</RLOG_ENC_FLAG>
        <!-- 用于加密服务器根密钥,最长为48个字节 -->
        <USBKEY_PIN></USBKEY_PIN>
        <!-- 设置空格填充模式,取值0 或1,默认为0 -->
        <BLANK_PAD_MODE>0</BLANK_PAD_MODE>
        <!-- 指定system.dbf文件的镜像路径,默认为空 -->
        <SYSTEM_MIRROR_PATH></SYSTEM_MIRROR_PATH>
        <!-- 指定main.dbf文件的镜像路径,默认为空 -->
        <MAIN_MIRROR_PATH></MAIN_MIRROR_PATH>
        <!-- 指定roll.dbf文件的镜像路径,默认为空 -->
        <ROLL_MIRROR_PATH></ROLL_MIRROR_PATH>
        <!-- 是否是四权分立,默认值为 0(不使用)。仅在安全版本下可见和可设置。只能是0或1 -->
        <PRIV_FLAG>0</PRIV_FLAG>
    </DB_PARAMS>
    <!--是否创建数据库实例的服务,值 Y/N y/n ,不允许为空,不初始化数据库将忽略此节点。非root用户不能创建数据库服务。 -->
    <CREATE_DB_SERVICE>Y</CREATE_DB_SERVICE>
    <!--是否启动数据库,值 Y/N y/n,不允许为空,不创建数据库服务将忽略此节点。 -->
    <STARTUP_DB_SERVICE>Y</STARTUP_DB_SERVICE>
</DATABASE>

2.开始安装

./DMInstall.bin -q /usr/local/setup.xml

四、测试服务

进入bin目录
cd /opt/dmdbms/bin

使用达梦客户端disql连接数据库(达梦数据库用户SYSDBA的默认密码也是SYSDBA)
./disql SYSDBA/SYSDBA@localhost:5236

五、设置持久化

1.复制数据文件到宿主机

docker cp centos7-dm8:/opt/dmdbms/data/ /opt/data/dm/

注意,执行复制前,避免出现多一个层级目录,请先确保主机/opt/data不存在dm目录

2.给已运行的容器添加文件映射

1.停止docker

systemctl stop docker

2.去到/var/lib/docker/containers/容器ID 目录,编辑config.v2.json

在json里面,找到MountPoints

添加上以下内容

{
    "/opt/dmdbms/data": {
        "Source": "/opt/data/dm",
        "Destination": "/opt/dmdbms/data",
        "RW": true,
        "Name": "",
        "Driver": "",
        "Type": "bind",
        "Propagation": "rprivate",
        "Spec": {
            "Type": "bind",
            "Source": "/opt/data/dm",
            "Target": "/opt/dmdbms/data"
        },
        "SkipMountpointCreation": false
    }

3.启动docker

systemctl start docker

4.进入容器,修改持久化目录权限

chown -R dmdba:dinstall /opt/dmdbms/data

5.重新启动达梦数据库

systemctl start DmServiceDM1SERVER

标签:opt,dmdbms,5236,Centos7,Docker,data,docker,达梦
来源: https://blog.csdn.net/qq_38321902/article/details/114631811

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有