最近公司要求对老项目进行维护,需要安装达梦数据库,我采用了centos7.8的docker进行安装,这里做个记录。
一、docker的安装查看当前centos系统内核版本,高于3.10才能安装docker #uname -r 下载和安装docker #yum -y install docker
安装完成后,查看docker版本 #docker version 启动docker服务 #systemctl start docker
设置docker开机启动 #systemctl enable docker
查看docker运行状态 #systemctl status docker
二、新建带有端口映射的容器,并将端口开通好 1.新建容器下载一个centos7.8的镜像 #docker pull centos:7.8.2003
查看docker目前所有的镜像,记住centos7.8镜像的id开头为afb6,后面会用到 #docker images 新建容器dm_container,并附带端口映射(主机的55236端口映射到容器的5236端口),并赋予容器systemctl权限(避免无法设置防火墙),这里使用id为afb6的镜像 #docker run -tid -p 55236:5236 -p 55237:5237 --privileged --name dm_container afb6 /usr/sbin/init
2.打通端口
如果要外部能直接访问容器中的数据库,必须先打通端口,不然最后安装完了数据库也是白搭=。= 达梦的数据库默认端口为5236,主机中设置55236,映射到容器中的5236端口
首先开通主机的55236端口 #firewall-cmd --permanent --zone=public --add-port=55236/tcp
重启防火墙,使开启的端口生效 #firewall-cmd --reload
查看55236端口是否已开通 #firewall-cmd --zone=public --query-port=55236/tcp
进入容器 #docker exec -it dm_container bash
给容器安装防火墙 #yum install firewalld
启动防火墙 #systemctl start firewalld
开通容器的5236端口 #firewall-cmd --permanent --zone=public --add-port=5236/tcp
重启防火墙 #firewall-cmd --reload
查看5236端口是否已开通 #firewall-cmd --zone=public --query-port=5236/tcp
设置防火墙开机自启动 #systemctl enable firewalld
查看防火墙状态 #systemctl status firewalld
我使用的是达梦的DM8开发版(Linux-rh7-64位),可以在官网下载。 官网下载的为iso文件,我是采取直接解压出bin文件进行安装的。 达梦数据库建议新建账户进行安装,由于我在docker中安装,这里直接采用root账户安装。
1.安装前准备
在官网下载iso文件,并解压,得到DMInstall.bin文件,将其传输到centos主机中(位置/root/DMInstall.bin)
在主机中输入下列命令,将/root/DMInstall.bin文件复制到容器根目录 #docker cp /root/DMInstall.bin dm_container:/root/DMInstall.bin
查看.data seg size、file size、open files、virtual memory大小足够即可(1048576或unlimited肯定没问题,可参考达梦安装手册) #ulimit -a
查看内存使用 #free
在我安装过程中出现了/tmp文件夹空间不足的问题(提示“无法写入”),所以这里提前将/tmp的空间扩充
先查看扩充之前的容量 #df -h /tmp
再进行扩充 #umount /tmp #mount -t tmpfs -o size=2147483648,mode=1777 overflow /tmp
再次查看/tmp的容量,已变为2G #df -h /tmp
2.进行安装在DMInstall.bin所在的目录下,先对安装文件赋予权限,否则无法执行安装 #chmod 755 ./DMInstall.bin
执行安装,这里我采用的是命令行安装(注意/前面有个点) #./DMInstall.bin -i
key、安装路径等可以按自己需要进行输入,这里我采取 key选择n,选择时区21中国标准时间,安装选择1典型安装,目录直接默认安装路径(root用户为/opt/dmdbms)
安装过程中如果出现 Error occurred during initialization of VM Unable to load native library: libnsl.so.1: cannot open shared object file: No such file or directory 的报错,就需要执行下面命令,安装libnsl库 #yum install libnsl*
全部选择好后并进行安装后,会提示安装成功。
四、安装实例进入达梦数据库安装目录bin文件夹 #cd /opt/dmdbms/bin
查看初始化各参数中文说明 #./dminit help
执行./dminit(不带参数执行这个命令,系统会引导填写参数) #./dminit 这里注意安装目录、日志目录都建议写成跟达梦数据库安装目录一致(如/opt/dmdbms),否则会报错,笔者就是这里卡了半天。
其他各参数根据自己需要填写,如果是oracle迁移到达梦,string case sensitive可以选择YES。
五、启动服务进入达梦安装目录的script/root文件夹 #cd /opt/dmdbms/script/root
注册服务 #./dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/test/dm.ini -p DMSERVER
启动服务 #systemctl start DmServiceDMSERVER
进入bin目录 #cd /opt/dmdbms/bin
使用达梦客户端disql连接数据库(达梦数据库用户SYSDBA的默认密码也是SYSDBA) #./disql SYSDBA/SYSDBA@localhost:5236
六、测试连通windows测试端口连通,在cmd中输入命令(x为ip号) telnet x.x.x.x 55236
达梦有windows端的客户端manager.exe可以使用,在windows安装包的tool文件夹中可以找到,填写ip、端口、用户名、密码就可以进行连接