官方文档参考:安装前准备 | 达梦技术文档
静默安装DM达梦数据库,提前编写好安装脚本、下载好软件、配置好服务器的内核参数信息。
- #查看服务器操作系统版本和型号
- cat /etc/system-release
- cat /etc/os-release
-
- #查询服务器cpu架构
- lscpu
- uanme -a
-
- #检查系统内存与存储空间
- free -m
- df -h
-
- #关闭防火墙和selinux
- systemctl stop firewalld
- sed -i 's/enforcing/disabled/' /etc/selinux/config
- setenforce 0
-
- #建议关闭桌面启动
- systemctl set-default multi-user.target
内核参数调整、打开文件数限制、关闭大页。
- #配置数据盘
- pvcreate /dev/vdb
- vgcreate data /dev/vdb
- lvcreate -n data -l +100%free data
- mkfs.ext4 /dev/mapper/data-data
- mkdir /data
- echo "/dev/mapper/data-data /data ext4 defaults 0 0 " >> /etc/fstab
- mount -a
- df -h
-
- #配置hostname
- hostnamectl set-hostname dmdb
- echo "192.168.1.2 dmdb">>/etc/hosts
-
- #服务器内核参数配置
- cat >> /etc/sysctl.conf <<EOF
- fs.aio-max-nr = 1048576
- fs.file-max = 6815744
- 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.overcommit_memory=0
- vm.dirty_expire_centisecs = 500
- vm.dirty_writeback_centisecs = 100
- EOF
- sysctl -p
-
- #修改系统最大进程数和最大文件打开数
- cat >> /etc/security/limits.conf <<EOF
- dmdba soft nice 65536
- dmdba hard nice 65536
- 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
-
- #修改进程数据限制
- vi /etc/security/limits.d/nproc.conf
- * soft nproc 65536
- * soft nproc 65536
-
- #关闭Num.麒麟、欧拉等系统配置关闭内存大页特性
- sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
- grub2-mkconfig -o /boot/grub2/grub.cfg
- groupadd -g 12349 dinstall
- groupadd -g 12350 dmdba
- useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
- usermod -g dinstall -G dmdba,dinstall dmdba
- echo asdaASDQW12341@Aq | passwd --stdin dmdba
- mkdir -p /data/dm /data/dminstall /data/dmbak /data/dmarch /data/dmdata
- chown dmdba.dinstall -R /data/dm /data/dminstall /data/dmbak /data/dmarch /data/dmdata
- chmod -R 755 /data/dm /data/dminstall /data/dmbak /data/dmarch /data/dmdata
- su - dmdba
- cat <<EOF>>/home/dmdba/.bash_profile
- umask 022
- export TMP=/tmp
- export TMPDIR=\$TMP
- export DM_HOME="/data/dm"
- export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH:\$DM_HOME/bin"
- export PATH=/usr/sbin:\$DM_HOME/bin:\$PATH
- export PATH=\$DM_HOME/bin:\$PATH
- export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
- alias ds='disql sysdba'
- EOF
#基于上面查到操作系统类型和cpu架构进行安装截至下载,下载地址https://www.dameng.com/list_103.html
- #使用root用户挂载介质
- unzip dm8_20240408_x86_rh7_64.zip
- mount -o loop dm8_20240408_x86_rh7_64.iso /data/dminstall
-
- #配置授权
- chown -R dmdba:dinstall /data/dminstall
- cd /data/dminstall
- chmod 755 ./DMInstall.bin
- #xml配置文件如下
- "1.0"?>
- <DATABASE>
- <LANGUAGE>zhLANGUAGE>
- <TIME_ZONE>+08:00TIME_ZONE>
- <KEY>KEY>
- <INSTALL_TYPE>0INSTALL_TYPE>
- <INSTALL_PATH>/data/dmINSTALL_PATH>
- <INIT_DB>YINIT_DB>
- <DB_PARAMS>
- <INI_FILE>INI_FILE>
- <PATH>/data/dmdataPATH>
- <CTL_PATHS>
- <CTL_PATH >CTL_PATH>
- CTL_PATHS>
- <LOG_PATHS>
- <LOG_PATH>LOG_PATH>
- LOG_PATHS>
- <EXTENT_SIZE>16EXTENT_SIZE>
- <PAGE_SIZE>32PAGE_SIZE>
- <LOG_SIZE>2048LOG_SIZE>
- <CASE_SENSITIVE>NCASE_SENSITIVE>
- <CHARSET>1CHARSET>
- <SEC_PRIV_MODE>0SEC_PRIV_MODE>
- <LENGTH_IN_CHAR>LENGTH_IN_CHAR>
- <SYSDBA_PWD>DmTEst_1234@SYSDBA_PWD>
- <SYSAUDITOR_PWD>DmTEst_1234@SYSAUDITOR_PWD>
- <DB_NAME>DMDBDB_NAME>
- <INSTANCE_NAME>DMDBINSTANCE_NAME>
- <PORT_NUM>5236PORT_NUM>
- <TIME_ZONE>TIME_ZONE>
- <PAGE_CHECK>PAGE_CHECK>
- <EXTERNAL_CIPHER_NAME>EXTERNAL_CIPHER_NAME>
- <EXTERNAL_HASH_NAME>EXTERNAL_HASH_NAME>
- <EXTERNAL_CRYPTO_NAME>EXTERNAL_CRYPTO_NAME>
- <RLOG_ENC_FLAG>RLOG_ENC_FLAG>
- <USBKEY_PIN>USBKEY_PIN>
- <ENCRYPT_NAME>ENCRYPT_NAME>
- <BLANK_PAD_MODE>BLANK_PAD_MODE>
- <SYSTEM_MIRROR_PATH>SYSTEM_MIRROR_PATH>
- <MAIN_MIRROR_PATH>MAIN_MIRROR_PATH>
- <ROLL_MIRROR_PATH>ROLL_MIRROR_PATH>
- <MAL_FLAG>MAL_FLAG>
- <ARCH_FLAG>ARCH_FLAG>
- <MPP_FLAG>MPP_FLAG>
- <CONTROL>CONTROL>
- <AUTO_OVERWRITE>AUTO_OVERWRITE>
- <USE_NEW_HASH>USE_NEW_HASH>
- <DCP_MODE>DCP_MODE>
- <DCP_PORT_NUM>DCP_PORT_NUM>
- <ELOG_PATH>ELOG_PATH>
- <AP_PORT_NUM>AP_PORT_NUM>
- DB_PARAMS>
- <CREATE_DB_SERVICE>NCREATE_DB_SERVICE>
- <STARTUP_DB_SERVICE>NSTARTUP_DB_SERVICE>
- DATABASE>
- #进行安装
- export LANG=zh_CN.UTF-8
- cd /data/dminstall/
- ./DMInstall.bin -q /home/dmdba/auto_install.xml
- #安装输出如下
- 解压安装程序.........
- 2024-07-06 11:02:43
- [INFO] 安装达梦数据库...
- 2024-07-06 11:02:43
- [INFO] 安装 基础 模块...
- 2024-07-06 11:02:45
- [INFO] 安装 服务器 模块...
- 2024-07-06 11:02:46
- [INFO] 安装 客户端 模块...
- 2024-07-06 11:02:54
- [INFO] 安装 驱动 模块...
- 2024-07-06 11:02:54
- [INFO] 安装 手册 模块...
- 2024-07-06 11:02:54
- [INFO] 安装 服务 模块...
- 2024-07-06 11:02:55
- [INFO] 移动日志文件。
- 2024-07-06 11:02:56
- [INFO] 安装达梦数据库完成。
- 请以root系统用户执行命令:
- /data/dm/script/root/root_installer.sh
- 2024-07-06 11:03:00
- [INFO] 开始初始化数据库...
- 2024-07-06 11:03:05
- [INFO] 初始化数据库完成。
- #备注:静默安装完成后,终端提示“请以 root 系统用户执行命令”。由于使用非 root 系统用户进行安装,所以部分安装步骤没有相应的系统权限,需要用户手动执行相关命令。
- #用户可根据提示完成相关操作
- /data/dm/script/root/root_installer.sh
-
- #数据库安装完毕后需要手动注册实例,root用户执行
- /data/dm/script/root/dm_service_installer.sh -t dmserver -dm_ini /data/dmdata/DMDB/dm.ini -p DMDB
-
- #启动数据库实例(dmdba用户)
- /data/dm/bin/DmServiceDMDB start
- /data/dm/bin/DmServiceDMDB status
-
- #验证登录
- disql
- #输入账户密码 默认账户sysdba 密码DmTEst_1234@
- #卸载
- cd /data/dm
- ./uninstall.sh
- #dm8可以手动新建实例,具体命令如下(dmdba用户)
- /data/dm/bin/dminit PATH=/data/dmdata/DMDB/ INSTANCE_NAME=DMDB PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048
-
- #编辑配置文件后,注册服务(root 用户)
- /data/dm/script/root/dm_service_installer.sh -t dmserver -p DMDB -dm_ini /data/dmdata/DMDB/DAMENG/dm.ini
- 实例参数优化可通过手动方式和自动方式进行调整。
- 为增强参数优化的适用性,降低参数修改的过程风险,
- 建议使用达梦数据库提供的 AutoParaAdj.sql 脚本进行实例参数优化
- 脚本下载地址https://eco.dameng.com/eco-file-server/file/eco/download/20240402142929MAC9G6L98Z39KKXJLG
- 脚本详细内容和具体使用步骤见:参数自动优化脚本工具-DM8.zip
- #配置允许本地免密登录
- SQL>SP_SET_PARA_VALUE(2,'ENABLE_LOCAL_OSAUTH',1);
- SQL>COMMIT;
-
- #停库
- /data/dm/bin/DmServiceDMDB stop
-
- #配置归档
- vi /data/dmdata/DMDB/dm.ini
- ARCH_INI = 1
- vi /data/dmdata/DMDB/dmarch.ini
- [ARCHIVE_LOCAL1]
- ARCH_TYPE = LOCAL
- ARCH_DEST = /data/dmarch/
- ARCH_FILE_SIZE = 1024
- ARCH_SPACE_LIMIT = 40960
-
- #启动数据库
- /data/dm/bin/DmServiceDMDB start
-
- #需要再次授权
- usermod -g dinstall -G dmdba,dinstall dmdba
-
- #配置定时备份脚本
- #!/bin/bash
- DATABASE_NAME="DMDB" # 替换为您的数据库实例名
- BACKUP_DIR="/data/dmbak" # 备份文件保存的目录,确保该目录存在且有写权限
- DATE=$(date +%Y%m%d%H%M)
- BACKUP_FILE="$BACKUP_DIR/db_backup_$DATE.bak"
- ARCH_FILE="$BACKUP_DIR/arch_backup_$DATE.bak"
- echo "开始备份数据库到 $BACKUP_FILE"
- /data/dm/bin/disql / as sysdba <<EOF
- select sf_bakset_backup_dir_add('disk','/data/dmbak');
- call sp_db_bakset_remove_batch('disk',NOW()-5);
- BACKUP DATABASE BACKUPSET '$BACKUP_FILE' MAXPIECESIZE 300 COMPRESSED LEVEL 3 PARALLEL 4;
- backup archive log all backupset '$ARCH_FILE';
- EXIT;
- EOF
-
- if [ $? -eq 0 ]; then
- echo "数据库备份成功"
- else
- echo "备份失败"
- fi
- #直接调用数据库任务
- SQL>call SP_INIT_JOB_SYS(1);
- SQL>call SP_CREATE_JOB('bakall_delall',1,0,'',0,0,'',0,'每天 23:00 全量备份、删除 7 天前的全量备份');
- SQL>call SP_JOB_CONFIG_START('bakall_delall');
- SQL>call SP_ADD_JOB_STEP('bakall_delall', 'bakall', 6, '01020000/opt/dmdbms/data/DAMENG/bak', 3, 1, 0, 0, NULL, 0);
- SQL>call SP_ADD_JOB_STEP('bakall_delall', 'delall', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/opt/dmdbms/data/DAMENG/bak'');
- SQL>call SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-7);', 1, 1, 0, 0, NULL, 0);
- SQL>call SP_ADD_JOB_SCHEDULE('bakall_delall', 'bakall_delall_time01', 1, 1, 1, 0, 0, '23:00:00', NULL, '2019-01-01 01:01:01', NULL, '');
- SQL>call SP_JOB_CONFIG_COMMIT('bakall_delall');