Docker打DB2 9.7镜像采坑相关

概况:以centos:7.2.1511镜像为基础镜像,使用docker commit方式进行构建

步骤:

  1. 运行centos7.2.1511镜像(以特权模式运行,后续内核参数修改必需参数)

    docker run -it --privileged centos:7.2.1511 /bin/bash

2.拷贝db2安装包进镜像中

    docker cp v9.7_linuxx64_server.tar.gz 容器id:/usr/local

3.镜像内操作

  • 解压安装包

    tar -xzvf v9.7_linuxx64_server.tar.gz

  • 进入解压后目录server

    cd server

  • 检查安装环境

    ./db2prereqcheck

  • 环境缺失信息

    * WARNING:

    *    The 32 bit library file libstdc++.so.6 is not found on the system.

    *    32-bit applications may be affected.

    * ERROR:

    *    The required library file libaio.so.1 is not found on the system.

    *    Check the following web site for the up-to-date system requirements

    *    of IBM DB2 9.7

    * http://www.ibm.com/software/data/db2/udb/sysreqs.html

    * http://www.software.ibm.com/data/db2/linux/validate

  • 解决方法

    * yum install -y libstdc++

    * yum install -y libstdc++.so.6

    * yum install -y libaio

  • 安装db2

    ./db2_install

    要选择另一个目录用于安装吗?[yes/no]

    --输入no默认安装opt下,选择yes自己输入安装目录

    指定下列其中一个关键字以安装 DB2 产品

    --输入ESE

    ESE

    正在初始化 DB2 安装。……

      • 出错点,共48步,安装到第41步或第36步Hangup

          Task #41 start

          Description: Starting DB2 Fault Monitor

          Estimated time 10 second(s)

          Hangup

      • PS:若47步左右出现一个小error可以忽略,不影响
      • 解决方法(修改内核参数):
        • 带--privileged运行容器,然后修改内核参数

          docker run -t -i --net=host -v /db2disk:/db2disk --privileged centos_db2ese_v1.1 /bin/bash

          vi /etc/sysctl.conf

          kernel.shmmni = 65536

          kernel.shmmax = 274877906944

          kernel.shmall = 134217728

          kernel.sem = 250 1024000 32 65536

          kernel.msgmni = 262144

          kernel.msgmax = 65536

          kernel.msgmnb = 65536

          vm.dirty_background_ratio = 5

          vm.dirty_ratio= 10

          vm.overcommit_memory= 0

          vm.swappiness= 0 #如果是redhat,建议设置为5,

          否则很有可能在内存不足时OOM killer可能会杀掉DB2进程

          执行sysctl -p使参数在线生效

          执行ipcs -l查看操作系统内核参数设置

          ------ Messages Limits --------

          max queues system wide = 668

          max size of message (bytes) = 8192

          default max size of queue (bytes) = 16384

          ------ Shared Memory Limits --------

          max number of segments = 4096

          max seg size (kbytes) = 18014398509465599

          max total shared memory (kbytes) = 18014398442373116

          min seg size (bytes) = 1

          ------ Semaphore Limits --------

          max number of arrays = 128

          max semaphores per array = 250

          max semaphores system wide = 32000

          max ops per semop call = 32

          semaphore max value = 32767

    • 查看注册信息,若出现试用期则安装成功,若出现

        /opt/ibm/db2/V9.7/adm/db2licm -l

      • 安装 license
        • db2licm -l命令可以查看到db2的license信息。可以找一个永久的license添加到db2数据库即可,把db2ese_c.lic放到一目录下: 

            /opt/ibm/db2/V9.7/license/db2ese_c.lic,在/opt/ibm/db2/V9.7/adm/目录下执行:./db2licm -a /opt/ibm/db2/V9.7/license/db2ese_c.lic

  • 创建实例用户

    groupadd -g 901 db2iadm1

    groupadd -g 902 db2fadm1

    groupadd -g 903 dasadm1

    useradd -g db2iadm1 -u 801 -d /home/db2inst1 -m  db2inst1

    useradd -g db2fadm1 -u 802 -d /home/db2fenc1 -m  db2fenc1

    useradd -g dasadm1 -u 803 -d /home/dasadm1 -m  dasusr1

  • 为db2inst1创建密码

    passwd db2inst1

  • 创建实例

    [[email protected]]#cd /opt/ibm/db2/V9.7/instance

    [[email protected]]#./dascrt -u dasusr1 (创建DB2管理服务器)

    [[email protected]]#./db2icrt -u db2inst1 db2inst1 (创建DB2实例)

  • 启动数据库实例

    [[email protected] instance]# su - db2inst1

    [[email protected] ~]$ db2start

  • 创建一个用于连接的数据库

    [[email protected] ~]$ db2 create database KHYX_YS using codeset GBK territory CN

  • 设置端口

    查看db2是否开启tcp服务

    [[email protected] db2inst1]# db2set –all

    如果没有看到如下内容:DB2COMM=TCPIP,则需要对db2进行设置

    [[email protected] db2inst1]# db2set db2COMM=TCPIP

    查看是否配置db2 Tcp服务名称:

    [[email protected] db2inst1]# db2 get dbm cfg | grep -i SVCENAME

    如果SVCENAME 没有对应的值,则需要设置DB2的TCP服务名称或端口

    [[email protected] db2inst1]# db2 update dbm cfg using svcename db2AppName(自定义名称或端口号)

    查看/etc/services中是否已经将db2的tcp服务添加到系统服务中(端口号不需要这部)

    [[email protected] db2inst1]# cat /etc/services | grep db2

    如果没有找到任何内容或者没有db2AppName相关内容,则需要在services文件中加入db2AppName   50000/tcp,其中50000为 db2 tcp服务的端口号。使用vi     /etc/services命令进入编辑器添加内容,然后ESC键 :wq保存退出编辑器。

    重启db2服务,查看db2 tcp服务监听的端口是否已经启用

    [[email protected] ~]$ db2 force application all(强制停止数据库)

    [[email protected] ~]$ db2start

    [[email protected] ~]$ netstat -na | grep 50000

原文地址:https://www.cnblogs.com/brucekun/p/9129235.html

时间: 2024-11-13 10:29:10

Docker打DB2 9.7镜像采坑相关的相关文章

记一次虚拟机共享文件夹的采坑之旅

1.官网下载VMware,安装~~ 2.找一个linux镜像,创建虚拟机~~ 3.进入系统,安装gcc 报错 could not retrieve mirrorlist...... 解决:sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33 将ONBOOT改为yes,wq!保存退出     重新启动网络  service network restart 4.虚拟机设置->选项->共享文件夹->开启并添加一个共享文件夹 5.貌似一切都很顺利

Docker 实战—使用 Dockerfile 构建镜像

GitHub Page:http://blog.cloudli.top/posts/Docker实战-使用-Dockerfile-构建镜像/ Dockerfile 指令详解请访问:https://www.cnblogs.com/cloudfloating/p/11737447.html 使用 Alpine Linux 作为基础镜像 Alpine 是一个非常轻量的 Linux 镜像,他只有大约 5MB 的大小,基于它构建镜像,可以大大减少镜像的体积. Alpine 的 Docker Hub 页面:

phoenegap3.5 采坑

上周5晚上在家看Node.js视频的时候,老大来一条短信让研究下 phoengap打包一个web网站. 遂 陷入了phonegap的深渊中. phoengap很早开始使用 cli模式安装开发环境 ,借助node npm来管理 环境要求: JAVA Android SDK Ant Node.js 以上几个的下载地址就不提供. 主要是这中间一些坑,装好上面的环境 需要自己手动配置环境变量, 痛苦由此开始啊!!!! 多次操作修改环境变量 都没能成功.多次卸载,遇到各种BUG. 在修改环境变量的时候 往

Docker系列(一)---镜像

本系列实验环境均为:CentOS6.6 使用epel库安装docker [[email protected]~]# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm [[email protected]~]# yum install docker-io -y 启动docker并设为开机自启 [[email protected]~]# /etc/init.d/dockerstart [[e

使用docker构建、运行jenkins镜像

目录: 1.基于docker官方的jenkins镜像启动容器 2.使用源码构建jenkins镜像并运行容器 3.使用csphere产品对容器.镜像.主机进行管理 docker近两年很火,最近在听cSphere希云主办的docker培训, 之前也参加过docker相关的技术沙龙(如docker meetup). 同时也使用Jenkins近两年,所以尝试使用docker构建jenkins镜像.运行基于镜像的容器. 因为听希云的docker培训获得了一张200元的腾讯云代金券, 所以用代金券在腾讯云上

docker 实战---安装一个基础镜像 (一)

泡了几天官网,对docker有了一点了解.准备着手搭建一个公司的开发测试环境,包括java.python. 环境介绍 首先说明一下我的环境 2台物理服务器(后面简称主机) 主机A的配置如下: [[email protected] ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:p

docker 存出,载入镜像

docker save XXXXXX存出镜像,随意拷贝分享给他人,这个导出的是一个XXXXX.tar文件 载入镜像:docker load --input XXXXX.tar

Docker基础-使用Dockerfile创建镜像

1.基本结构 Dockerfile由一行行命令语句组成,并支持以#开头的注释行.例如: # This dockerfile uses the ubuntu image # VERSION 2 - EDITION 1 # Author: docker_user # Command format: Instruction [arguments / command ] .. # Base image to use, this nust be set as the first line FROM ubu

Docker系列(二)镜像管理

2.1 查看镜像 [[email protected] ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/hello-world latest 05a3bd381fc2 5 weeks ago 1.84 kB 选项说明:REPOSTITORY:表示镜像的仓库源TAG:镜像的标签IMAGE ID:镜像IDCREATED:镜像创建时间SIZE:镜像大小同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubunt