一.简介
达梦数据库管理系统DM8是一款国产数据库,有标准版、企业版、安全版,支持多种部署方式,如 X86 平台、信创平台和 Docker 镜像版本, 安装包下载地址,可单机部署,可集群部署,如常见实时主备和读写分离集群。
二.安装前准备
0.资源和目录规划
DM8可在centos、redhat、银河麒麟v10、华为欧拉等X86操作系统安装,本次使用centos7.6操作系统,安装操作系统资源信息如下:
资源 2C 8G 100G+500G | centos7.6 | 192.168.77.168 master |
安装前必须创建dmdba用户,禁止使用root用户安装数据库,默认安装在 /home/dmdba 文件。
1.安装前准备 参考官方文档
#master配置hosts
cat >>/etc/hosts<<'EOF'
192.168.77.168 master
EOF
#配置环境变量
cat >>~/.bash_profile<<'EOF'
export LANG=en_US.UTF8
EOF
#增加数据盘,LVM创建并挂载
pvcreate /dev/sdb
vgcreate datavg /dev/sdb
lvcreate -n datalv -L 500000M datavg
mkfs.xfs /dev/datavg/datalv
#xfs ext4的挂载参数defaults,noatime,nodiratime,nobarrier或defaults 0 0
mkdir -p /dmdata
mount /dev/datavg/datalv /dmdata
cat >>/etc/fstab<<'EOF'
/dev/datavg/datalv /dmdata xfs defaults,noatime,nodiratime,nobarrier
EOF
mount -a
#优化部分
#关闭SELINUX和防护墙
systemctl disable firewalld
systemctl stop firewalld
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
#修改系统资源限制参数
cat >>/etc/security/limits.conf<<'EOF'
dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
EOF
echo "* - nproc 65535" > /etc/security/limits.d/90-nproc.conf
#修改内核参数
cat >>/etc/sysctl.conf<<'EOF'
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
vm.min_free_kbytes=512000
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
vm.overcommit_memory=0
vm.swappiness=1
EOF
sysctl -p
#控制资源分配限制
echo "session required pam_limits.so" >> /etc/pam.d/login
#关闭内存大页和numa
sed -i '/^GRUB_CMDLINE_LINUX/d' /etc/default/grub
cat >> /etc/default/grub<<'EOF'
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off transparent_hugepage=never elevator=deadline"
EOF
grub2-mkconfig -o /etc/grub2.cfg
#IO调度算法
#sas盘deadline;ssd盘NOOP
echo 'deadline' > /sys/block/sda/queue/scheduler
#设置时区
timedatectl set-timezone Asia/Shanghai
#使用系统镜像包 配置yum源
mount /dev/cdrom /mnt
cd /etc/yum.repos.d/
gzip CentOS-*
cat >centos.repo<<'EOF'
[centos7]
name=centos7
baseurl=file:///mnt
gpgcheck=0
enable=1
EOF
#安装依赖
yum install glib* vnc* -y
#创建用户 root用户执行
#创建用户和组
groupadd dinstall -g 2000
useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2000 dmdba
echo 123456 | passwd --stdin dmdba
#出现-bash-4.2$可执行
#cp /etc/skel/.bash* /home/dmdba/
#目录授权
#创建目录并授权
mkdir -p /dmdata/dbms/dm8
mkdir -p /dmdata/data
mkdir -p /dmdata/arch
mkdir -p /dmdata/dmbak
chown -R dmdba:dinstall /dmdata/dbms/dm8
chown -R dmdba:dinstall /dmdata/data
chown -R dmdba:dinstall /dmdata/arch
chown -R dmdba:dinstall /dmdata/dmbak
chmod -R 755 /dmdata/dbms/dm8
chmod -R 755 /dmdata/data
chmod -R 755 /dmdata/arch
chmod -R 755 /dmdata/dmbak
#切换到dmdba用户
su - dmdba
#配置环境变量
cat >> ~/.bash_profile<<'EOF'
export LANG=zh_CN.UTF8
export DM_INSTALL_TMPDIR="/tmp"
export DM_HOME="/dmdata/dbms/dm8"
export PATH=$DM_HOME/bin:$PATH:$HOME/bin
EOF
source ~/.bash_profile
exit
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
- 101.
- 102.
- 103.
- 104.
- 105.
- 106.
- 107.
- 108.
- 109.
- 110.
- 111.
- 112.
- 113.
- 114.
- 115.
- 116.
- 117.
- 118.
- 119.
- 120.
- 121.
- 122.
- 123.
- 124.
- 125.
- 126.
- 127.
- 128.
- 129.
- 130.
- 131.
- 132.
- 133.
- 134.
- 135.
- 136.
三.DM8单机版安装
0.安装包下载,到官网下载。
1.这里使用的是虚拟机,所以先卸载掉镜像盘
2.静默安装
注意:数据库用户的密码不能带@ 正常数据库连接 disql SYSDBA/Alibaby@007@192.168.77.168:5236,会把@后面的当成IP,连接数据库会报错[-70028]:创建SOCKET连接失败.
#静默安装脚本 数据库和实例自定义为ALIDB,sysdba口令Alibaby007
su - dmdba
cd /home/dmdba
cat >auto_install.xml<<'EOF'
<?xml version="1.0"?>
<DATABASE>
<!--安装数据库的语言配置,安装中文版配置 ZH,英文版配置 EN,不区分大小写。不允许为空。-->
<LANGUAGE>zh</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>/dmdata/dbms/dm8</INSTALL_PATH>
<!--是否初始化库,取值 Y/N、y/n,不允许为空。-->
<INIT_DB>y</INIT_DB>
<!--数据库实例参数-->
<DB_PARAMS>
<!--初始数据库存放的路径,不允许为空-->
<PATH>/dmdata/data</PATH>
<!--初始化数据库名字,默认是 DAMENG,不超过 128 个字符-->
<DB_NAME>ALIDB</DB_NAME>
<!--初始化数据库实例名字,默认是 DMSERVER,不超过 128 个字符-->
<INSTANCE_NAME>ALIDB</INSTANCE_NAME>
<!--初始化时设置 dm.ini 中的 PORT_NUM,默认 5236,取值范围:1024~65534 -->
<PORT_NUM>5236</PORT_NUM>
<!--初始数据库控制文件的路径,文件路径长度最大为 256 -->
<CTL_PATH></CTL_PATH>
<!--初始数据库日志文件的路径,文件路径长度最大为 256 -->
<LOG_PATHS>
<LOG_PATH>
</LOG_PATH>
</LOG_PATHS>
<!--数据文件使用的簇大小,只能是 16 页或 32 页之一,缺省使用 16 页-->
<EXTENT_SIZE>16</EXTENT_SIZE>
<!--数据文件使用的页大小,缺省使用 8K,只能是 4K、8K、16K 或 32K之一-->
<PAGE_SIZE>8</PAGE_SIZE>
<!--日志文件使用的簇大小,默认是 256,取值范围 64 和 2048 之间的整数-->
<LOG_SIZE>256</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></LENGTH_IN_CHAR>
<!--字符类型在计算HASH值时所采用的HASH算法类别。0:原始HASH算法;1:改进的 HASH 算法。默认值为 1。-->
<USE_NEW_HASH>1</USE_NEW_HASH>
<!--初始化时设置 SYSDBA 的密码,默认为 SYSDBA,长度在 9 到 48个字符之间-->
<SYSDBA_PWD>Alibaby007</SYSDBA_PWD>
<!--初始化时设置 SYSAUDITOR 的密码,默认为 SYSAUDITOR,长度在 9 到 48 个字符之间-->
<SYSAUDITOR_PWD>Alibaby007</SYSAUDITOR_PWD>
<!--初始化时设置 SYSSSO 的密码,默认为 SYSSSO,长度在 9 到 48个字符之间,仅在安全版本下可见和可设置-->
<SYSSSO_PWD>Alibaby007</SYSSSO_PWD>
<!--初始化时设置 SYSDBO 的密码,默认为 SYSDBO,长度在 9 到 48个字符之间,仅在安全版本下可见和可设置-->
<SYSDBO_PWD>Alibaby007</SYSDBO_PWD>
<!--是否启用页面内容校验,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>
<!--全库加密密钥使用的算法名。算法可以是 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>
<!--指定初始化过程中生成的日志文件所在路径。合法的路径,文件路径长度最大为 257(含结束符),不包括文件名-->
<ELOG_PATH></ELOG_PATH>
</DB_PARAMS>
<!--是否创建数据库实例的服务,值 Y/N y/n,不允许为空,不初始化数据库将忽略此节点。非 root 用户不能创建数据库服务。-->
<CREATE_DB_SERVICE>N</CREATE_DB_SERVICE>
<!--是否启动数据库,值 Y/N y/n,不允许为空,不创建数据库服务将忽略此节点。-->
<STARTUP_DB_SERVICE>N</STARTUP_DB_SERVICE>
</DATABASE>
EOF
#安装
cd /mnt/
./DMInstall.bin -q /home/dmdba/auto_install.xml
#安装完成提示:请以root系统用户执行命令:
su - root
/dmdata/dbms/dm8/script/root/root_installer.sh
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
3.配置实例(一键部署不是指定了吗)
4.注册服务与数据库启停
#root用户 注册服务-t服务类型 -p服务后缀 -dm_ini服务所需执行文件路径
cd /dmdata/dbms/dm8/script/root
./dm_service_installer.sh -t dmserver -p ALIDB -dm_ini /dmdata/data/ALIDB/dm.ini
#配置环境变量
su - dmdba
cat >>~/.bash_profile<<'EOF'
export PATH=$PATH:$DM_HOME/bin:$HOME/.local/bin:$HOME/bin
EOF
source ~/.bash_profile
#启动停止数据库实例
su - dmdba
DmServiceALIDB start
DmServiceALIDB status
DmServiceALIDB stop
#或者systemctl管理,不能交叉使用,首次使用需要输入root密码
systemctl status DmServiceALIDB
systemctl start DmServiceALIDB
systemctl stop DmServiceALIDB
#验证
disql
sysdba
Alibaby007
#查看版本
select * from v$version;
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
4.数据库基本操作-创建表空间-创建用户-创建数据库对象
#创建表空间
create tablespace ALI datafile '/dmdata/data/ALIDB/ALI01.dbf' size 128 autoextend on next 100 maxsize unlimited;
create tablespace ALI_idx datafile '/dmdata/data/ALIDB/ALI_idx01.dbf' size 128 autoextend on next 100 maxsize unlimited;
#创建用户
create user "ALI" identified by "Alibaby007" default tablespace ALI default index tablespace ALI_idx;
grant dba to ALI;
exit
disql
ALI
Alibaby007
#创建数据库对象
CREATE TABLE city(city_id CHAR(3) NOT NULL,city_name VARCHAR(40) NULL,region_id INT NULL);
INSERT INTO city(city_id,city_name,region_id) VALUES('BJ','北京',1);
INSERT INTO city(city_id,city_name,region_id) VALUES('SJZ','石家庄',1);
INSERT INTO city(city_id,city_name,region_id) VALUES('SH','上海',2);
INSERT INTO city(city_id,city_name,region_id) VALUES('NJ','南京',2);
commit;
select * from city;
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
5.实例优化
为增强参数优化的适用性,降低参数修改的过程风险,建议使用达梦数据库提供的 AutoParaAdj.sql 脚本进行实例参数优化。sysdba登录客户端,sql脚本中exec_mode int:= 1;手动执行优化。
6.数据库卸载并清除数据