前言
对于常年占据国产数据库排行榜前三的 达梦 数据库,早已 “垂涎a已久” (¯﹃¯)!
要想学习一门数据库技术,第一步当然是要安装数据库,然后才能学习使用它,顺便记录下作者的安装初体验!❤️
💬 介绍
达梦数据库管理系统(以下简称DM)是基于客户/服务器方式的数据库管理系统,可以安装在多种计算机操作系统平台上,典型的操作系统有:
- Windows(Windows2000/2003/XP/Vista/7/8/10/Server等)
- Linux
- HP-UNIX
- Solaris
- FreeBSD
- AIX
对于不同的系统平台,有不同的安装步骤。
根据不同的应用需求与配置,DM提供了多种不同的产品系列:
- 标准版Standard Edition
- 企业版Enterprise Edition
- 安全版Security Edition
相较于 Oracle 的全英文官方文档来说,达梦的官方文档就显得亲切多了,一眼看去就很喜欢!❤️
作为一款热门的国产数据库,对于平台的支持必然是广泛的。下面👇🏻列出一些安装部署基础要求:
名称 | 要求 |
CPU |
Intel Pentium4(建议Pentium 41.6G以上)处理器 |
内存 |
256M(建议512M以上) |
硬盘 |
5G以上可用空间 |
网卡 |
10M以上支持TCP/IP协议的网卡 |
操作系统 |
Windows(简体中文服务器版sp2以上)/Linux(glibc2.3以上,内核2.6,已安装KDE/GNOME桌面环境,建议预先安装UnixODBC组件) |
💦 安装介质下载
🔥 达梦8安装包
达梦官方提供的最新版本为DM8,可以直接下载:
达梦8的数据库安装介质下载地址:https://eco.dameng.com/download
💥 Centos7 box
Linux操作系统我选择的是 centos7,打算使用 vagrant 进行安装:
centos7 box镜像下载地址:https://app.vagrantup.com/luciferliu/boxes/centos7.9
至此,安装介质都准备好了!
🏆 Linux 下 DM 的安装
操作系统 |
CPU |
数据库 |
CentOS7 |
x86_64 架构 |
dm8_20210630_x86_rh6_64_ent |
🍭 Centos7 环境安装
vagrant 启动 centos7
进入自定义目录启动主机:
mkdir -p /Volumes/DBA/dm8 cd /Volumes/DBA/dm8 ## vagrant 初始化 vagrant init luciferliu/centos7.9 ## vagrant 创建并启动主机 vagrant up
如上图所示,Centos7.9 的主机就已经启动了,下面我们连接并且上传 DM8 安装包。
上传安装介质
将 DM8 安装包拷贝到当前 /Volumes/DBA/dm8 目录下,使用 vagrant ssh 连接主机:
## 拷贝 DM 安装包 cd /Volumes/DBA/dm8 cp /Users/lpc/Downloads/dm8_20210630_x86_rh6_64_ent.zip .
初始化配置
## 连接主机 vagrant ssh ## 修改 root 用户密码,密码为 dm echo dm | sudo passwd --stdin root ## 切换至 root 用户 su - root ## 修改主机名 hostnamectl set-hostname dm8 && exec bash ## 配置时区 timedatectl set-timezone Asia/Shanghai ## 配置系统中文 echo 'export LANG=zh_CN.UTF-8' >> /etc/profile ## 创建 DM 软件包目录 mkdir /soft ## 拷贝 DM 安装包至软件包目录 cp /vagrant/dm8_20210630_x86_rh6_64_ent.zip /soft ## 安装 unzip 和 lsb_release yum install -y unzip lsb* ## 解压 DM 安装包 cd /soft unzip dm8_20210630_x86_rh6_64_ent.zip
如上图所示,DM8 安装包已解压至至主机 /soft 目录下。
🍰 安装前准备
用户在安装DM之前需要检查或修改操作系统的配置,以保证 DM 正确安装和运行。
检查Linux(Unix)系统信息
## 获取系统位数 getconf LONG_BIT ## 查询操作系统release信息 lsb_release -a ## 查询系统信息 cat /etc/issue ## 查询系统名称 uname -a
创建安装用户
为了减少对操作系统的影响,用户不应该以root系统用户来安装和运行DM。用户可以在安装之前为DM创建一个专用的系统用户。
## 创建 dinstall 组 groupadd -g 12349 dinstall ## 创建 dmdba 用户 useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba ## 修改 dmdba 用户密码 echo dmdba | passwd --stdin dmdba
创建安装目录及授权
mkdir /dm mkdir -p /dm{arch,bak,data} chown -R dmdba.dinstall /dm /soft /dmdata /dmarch /dmbak chmod -R 775 /dm{arch,bak,data} /dm
关闭防火墙和Selinux
## 关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service ## 关闭selinux setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
关闭透明大页和numa
Linux6:
cat >>/etc/rc.d/rc.local <<EOF if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
Linux7:
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub grub2-mkconfig -o /boot/grub2/grub.cfg
配置系统参数
cat <<EOF >>/etc/sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 #kernel.shmall = 2097152 #kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 vm.swappiness = 0 vm.dirty_background_ratio = 3 vm.dirty_ratio = 80 vm.dirty_expire_centisecs = 500 vm.dirty_writeback_centisecs = 100 EOF ## 激活参数配置 sysctl -p
配置操作系统限制
在Linux(Unix)系统中,因为ulimit命令的存在,会对程序使用操作系统资源进行限制。为了使DM能够正常运行,建议用户检查当前安装用户的ulimit参数。
## 配置pam.d cat <<EOF >>/etc/pam.d/login session required pam_limits.so session required /lib64/security/pam_limits.so EOF ## 查看 pam.d cat /etc/pam.d/login | grep -v "^$" | grep -v "^#" ## 查看操作系统资源限制 ulimit -a ## 解除 nice,as fsize,nproc,nofile,core,data 限制 cat <<EOF>>/etc/security/limits.conf dmdba - nice 0 dmdba - as unlimited dmdba - fsize unlimited dmdba - nproc 131072 dmdba - nofile 131072 dmdba - core unlimited dmdba - data unlimited root - nice 0 root - as unlimited root - fsize unlimited root - nproc 131072 root - nofile 131072 root - core unlimited root - data unlimited EOF ## 检查配置文件 cat /etc/security/limits.conf | grep -v "^$" | grep -v "^#" ## 查看 dmdba 用户的资源限制 su - dmdba -c "ulimit -a"
检查系统内存
为了保证DM的正确安装和运行,要尽量保证操作系统至少1GB的可用内存(RAM)。如果可用内存过少,可能导致DM安装或启动失败。
## 获取内存总大小 grep MemTotal /proc/meminfo ## 获取交换分区大小 grep SwapTotal /proc/meminfo ## 获取内存使用详情 free -m
检查存储空间
DM完全安装需要1GB的存储空间,用户需要提前规划好安装目录,预留足够的存储空间。用户在DM安装前也应该为数据库实例预留足够的存储空间,规划好数据路径和备份路径。
## 查询目录 /dm 可用空间 df -h /dm ## /tmp目录保证1GB的存储空间 df -h /tmp
配置环境变量
## 配置 dmdba 环境变量 cat <<EOF>>/home/dmdba/.bash_profile umask 022 export TMP=/tmp export TMPDIR=\$TMP export DM_HOME="/dm" export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH:\$DM_HOME/bin" export PATH=/usr/sbin:\$PATH export PATH=\$DM_HOME/bin:\$PATH export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ ' alias ds='disql sysdba' EOF ## 查看环境变量 cat /home/dmdba/.bash_profile | grep -v "^$" | grep -v "^#"
🍯 安装 DM8 数据库
安装同时支持图形化安装,命令行安装,静默安装三种方式。由于我没有安装图形化界面,因此使用 命令行安装 方式进行安装。
用户应登录或切换到安装系统用户,进行以下安装步骤的操作(注:不建议使用root系统用户进行安装)。
挂载 DM ISO 镜像
官网下载的 DM8 安装包解压下来是一个 ISO 镜像文件,因此需要挂载取出安装文件,才能开始安装。
## 挂载 DM iso 镜像文件 cd /soft/dm8_20210630_x86_rh6_64_ent mount -o loop dm8_20210630_x86_rh6_64_ent_8.1.2.18_pack7.iso /opt ## 拷贝安装文件至 /soft cp /opt/DM* /soft ## 取消挂载 umount /opt ## 目录授权 chown -R dmdba:dinstall /soft chmod -R 775 /soft ll /soft
命令行安装
1、执行安装命令:
## 切换至 dmdba 用户 su - dmdba cd /soft/ ## 执行命令行安装 ./DMInstall.bin -i
2、按需求选择安装语言,默认为中文。本地安装选择【不输入 Key 文件】,选择【默认时区 21】。
3、选择【1-典型安装】,按已规划的安装目录 /dm 完成数据库软件安装,不建议使用默认安装目录。
4、root 用户执行 root 脚本:
su - root /dm/script/root/root_installer.sh
命令行配置实例
使用 dmdba 用户配置实例,使用 dminit 命令初始化实例。
su - dmdba ## 使用默认参数初始化实例,需要附加实例存放路径 /dmdata dminit path=/dmdata
📢 注意:dminit 命令可设置多种参数,可执行如下命令查看可配置参数。
需要注意的是 页大小 (PAGE_SIZE)、簇大小 (EXTENT_SIZE)、大小写敏感 (CASE_SENSITIVE)、字符集 (CHARSET/UNICODE_FLAG)、VARCHAR类型长度(LENGTH_IN_CHAR) 这几个参数,一旦确定无法修改,需谨慎设置。
- EXTENT_SIZE 数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页,缺省使用 16 页。指数据文件使用的簇大小,即每次分配新的段空间时连续的页数。
- PAGE_SIZE 数据页大小(8),可选值:4, 8, 16, 32,单位:K,选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降,缺省使用 8 KB。
- CASE_SENSITIVE 大小敏感(Y),可选值:Y/N,1/0,默认值为 Y 。当大小写敏感时,小写的标识符应用双引号括起,否则被转换为大写;当大小写不敏感时,系统不自动转换标识符的大小写,在标识符比较时也不区分大小写,只能是 Y、y、N、n、1、0 之一。
- CHARSET/UNICODE_FLAG 字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR];1 代表 UTF-8;2 代表韩文字符集 EUC-KR;取值 0、1 或 2 之一。默认值为 0。
- LENGTH_IN_CHAR VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0。
以下命令设置页大小为 32 KB,簇大小为 32 KB,大小写敏感,字符集为 utf_8,数据库名为 DMDB,实例名为 LUCIFER,端口为 5237。
dminit path=/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMDB INSTANCE_NAME=LUCIFER