[达梦数据库]达梦单节点安装
1 环境配置
1.1 查看软硬件信息
查看 cpu 信息:
[[email protected] ~]# lscpu
[[email protected] ~]# cat /proc/cpuinfo
注意:特别是国产 cpu,龙芯、飞腾 查看内存信息:
[[email protected] ~]# free -m
注意:数据库内存要至少 1G,linux swap 分区一般是物理内存的 1.5 倍 查看硬盘、分区信息
[[email protected] ~]# fdisk -l
[[email protected] ~]# df -h
如果数据库开启 SQL 日志分析,那么/tmp 分区至少要 600M 网络要求: 100M 网卡支持 TCP/IP 协议 远程访问数据库需要关闭防火墙
1.2 清空防火墙策略
Centos7:
[[email protected] ~]# systemctl status firewalld
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
Redhat6:
service iptables stop
chkconfig iptables off
chkconfig --list iptables
#####麒麟#####
[[email protected] ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: active (running) since 二 2021-02-23 14:20:13 CST; 22min ago
Main PID: 643 (firewalld)
CGroup: /system.slice/firewalld.service
└─643 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: inactive (dead) since 二 2021-02-23 14:42:43 CST; 1s ago
Main PID: 643 (code=exited, status=0/SUCCESS)
[[email protected] ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[[email protected] ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)
Active: inactive (dead)
#####UOS#####默认没有防火墙
sudo ufw status
sudo ufw start
sudo ufw stop
#查看防火墙规则
[email protected]-PC:~# sudo iptables –L
#清空防火墙规则
[email protected]-PC:~# sudo iptables -F
1.3 安装用户(建议不要使用 root)
[[email protected] /]# groupadd dinstall -g 1002创建用户组dinstall
[[email protected] /]# useradd –u 1002 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
#创建属于dinstall用户组的用户dmdba
[[email protected] /]# passwd dmdba
输入一次密码
重新输入一次密码
创建成功
[[email protected] /]# mkdir /dm/dmdbms
[[email protected] /]# mkdir /dm/dmbak
[[email protected] /]# chown -R dmdba:dinstall /dm
[[email protected] /]# chown -R dmdba:dinstall /dbdata
[[email protected] /]# chown -R dmdba:dinstall /arch
1.4 配置 dmdba 用户环境变量
[[email protected] ~]$ cat .bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dm/dmdbms/bin
export DM_HOME=/dm/dmdbms
export PATH=$PATH:$HOME/bin:$DM_HOME/bin:$DM_HOME/script/root:$DM_HOME/tool
#####UOS#####
[email protected]-PC:~$ cat .profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dm/dmdbms/bin
export DM_HOME=/dm/dmdbms
export PATH=$PATH:$HOME/bin:$DM_HOME/bin:$DM_HOME/script/root:$DM_HOME/tool
1.5 设置最大文件打开数
修改之后重启生效
[[email protected] /]# cp /etc/security/limits.conf /etc/security/limits.conf.bak
[[email protected] /]# vim /etc/security/limits.conf添加以下内容
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
临时生效:ulimit -n 65536
注意事项(强调):如果有该文件:/etc/security/limits.d/90-nproc.conf ,也需要修改。该文件主要限制 nproc,优先级比 /etc/security/limits.conf 高,即:如果 /etc/security/limits.d/90-nproc.conf 设置了 nproc 参数时,生效的是 /etc/security/limits.d/90-nproc.conf 文件中的限制,而不是 /etc/security/limits.conf 的限制
[[email protected] /]# cp /etc/security/limits.d/90-nproc.conf /etc/security/limits.d/90-nproc.conf.bak
[[email protected] /]# vim /etc/security/limits.d/90-nproc.conf
* soft nproc 65536
1.6 调整 Sysctl.conf(必做)
cp /etc/sysctl.conf /etc/sysctl.conf.bak
vim /etc/sysctl.conf
vm.swappiness = 0
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
:x保存退出
sysctl -p 立即生效
1.7 确认login配置
vim /etc/pam.d/login添加以下内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
:x保存退出
1.8 关闭 selinux
setenforce 0
vim /etc/sysconfig/selinux
将SELINUX的值由默认的enforcing修改为disabled
:x保存退出重启生效
2 参数规划
2.1 页大小
设置后不可更改项。长远考虑建议设置16或者32。
页大小 每个字符类型字段实际最大长度(字节)
4K 1900
8K 3900
16K 8000
2.2 日志文件大小
默认为2个,建议设置为4个。大小1024M以上。
2.3 大小写敏感
设置后不可更改,根据需求设置。如Oracle迁移需求设置敏感,mysql、sqlserver迁移需求设置不敏感。
2.4 字符集
设置后不可修改,按照需求设置。建议设置为GB18030,储存方式更加节省空间。
2.5 varchar类型
默认按照字节为单位。如果按照字符为单位,不同字符集会导致字段长度不一样。
3 命令行安装
3.1 启动
./DMInstall.bin -i
3.2 选择语音
Please select the installer’s language (E/e:English C/c:Chinese) [E/e]:c
解压安装程序…
欢迎使用达梦数据库安装程序
3.3 key文件
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
3.4 时区
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=*堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21
3.5 安装类型
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:4
1 服务器组件
2 客户端组件
2.1 DM管理工具
2.2 DM性能监视工具
2.3 DM数据迁移工具
2.4 DM控制台工具
2.5 DM审计分析工具
2.6 SQL交互式查询工具
3 驱动
4 用户手册
5 数据库服务
5.1 实时审计服务
5.2 作业服务
5.3 实例监控服务
5.4 辅助插件服务
请选择安装组件的序号 (使用空格间隔) [1 2 3 4 5]:1 2 3 4 5
所需空间: 1039M
3.6 目录
请选择安装目录 [/home/dmdba/dmdbms]:/dm/dmdbms
可用空间: 92G
是否确认安装路径(/dm/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y
3.7 小结
安装前小结
安装位置: /dm/dmdbms
所需空间: 1039M
可用空间: 92G
版本信息:
有效日期:
安装类型: 自定义
是否确认安装? (Y/y:是 N/n:否):y
2021-01-10 16:11:27
[INFO] 安装达梦数据库…
2021-01-10 16:11:28
[INFO] 安装 基础 模块…
2021-01-10 16:11:32
[INFO] 安装 服务器 模块…
2021-01-10 16:11:33
[INFO] 安装 客户端 模块…
2021-01-10 16:11:36
[INFO] 安装 驱动 模块…
2021-01-10 16:11:37
[INFO] 安装 手册 模块…
2021-01-10 16:11:38
[INFO] 安装 服务 模块…
2021-01-10 16:11:39
[INFO] 移动ant日志文件。
2021-01-10 16:11:39
[INFO] 安装达梦数据库完成。
3.8 root用户执行
请以root系统用户执行命令:
/dm/dmdbms/script/root/root_installer.sh
安装结束
[[email protected] ~]# id
uid=0(root) gid=0(root) groups=0(root)
[[email protected] ~]# /dm/dmdbms/script/root/root_installer.sh
移动 /dm/dmdbms/bin/dm_svc.conf 到/etc目录
修改服务器权限
4 dminit初始化
4.1 参数说明
[[email protected] dm]$ dminit help
initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-12-07
格式: ./dminit KEYWORD=value
例程: ./dminit PATH=/public/dmdb/dmData PAGE_SIZE=16
关键字 说明(默认值)
--------------------------------------------------------------------------------
INI_FILE 初始化文件dm.ini存放的路径
PATH 初始数据库存放的路径
CTL_PATH 控制文件路径
LOG_PATH 日志文件路径
EXTENT_SIZE 数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页
PAGE_SIZE 数据页大小(8),可选值:4, 8, 16, 32,单位:K
LOG_SIZE 日志文件大小(256),单位为:M,范围为:64M ~ 2G
CASE_SENSITIVE 大小敏感(Y),可选值:Y/N,1/0
CHARSET/UNICODE_FLAG 字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
SEC_PRIV_MODE 权限管理模式(0),可选值:0[TRADITION],1[BMJ],2[EVAL]
LENGTH_IN_CHAR VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
SYSDBA_PWD 设置SYSDBA密码(SYSDBA)
SYSAUDITOR_PWD 设置SYSAUDITOR密码(SYSAUDITOR)
DB_NAME 数据库名(DAMENG)
INSTANCE_NAME 实例名(DMSERVER)
PORT_NUM 监听端口号(5236)
BUFFER 系统缓存大小(100),单位M
TIME_ZONE 设置时区(+08:00)
PAGE_CHECK 页检查模式(0),可选值:0/1/2
EXTERNAL_CIPHER_NAME 设置默认加密算法
EXTERNAL_HASH_NAME 设置默认HASH算法
EXTERNAL_CRYPTO_NAME 设置根**加密引擎
RLOG_ENC_FLAG 设置日志文件是否加密(N),可选值:Y/N,1/0
USBKEY_PIN 设置USBKEY PIN
PAGE_ENC_SLICE_SIZE 设置页加密分片大小,可选值:0、512、4096,单位:Byte
ENCRYPT_NAME 设置全库加密算法
BLANK_PAD_MODE 设置空格填充模式(0),可选值:0/1
SYSTEM_MIRROR_PATH SYSTEM数据文件镜像路径
MAIN_MIRROR_PATH MAIN数据文件镜像
ROLL_MIRROR_PATH 回滚文件镜像路径
MAL_FLAG 初始化时设置dm.ini中的MAL_INI(0)
ARCH_FLAG 初始化时设置dm.ini中的ARCH_INI(0)
MPP_FLAG Mpp系统内的库初始化时设置dm.ini中的mpp_ini(0)
CONTROL 初始化配置文件(配置文件格式见系统管理员手册)
AUTO_OVERWRITE 是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖
USE_NEW_HASH 是否使用改进的字符类型HASH算法(1)
DCP_MODE 是否是DCP代理模式(0)
DCP_PORT_NUM DCP代理模式下管理端口
ELOG_PATH 指定初始化过程中生成的日志文件所在路径
AP_PORT_NUM ECS模式下AP协同工作的监听端口
DFS_FLAG 初始化时设置dm.ini中的DFS_INI(0)
DFS_PATH 启用dfs时指定数据文件的缺省路径
DFS_HOST 指定连接分布式系统DFS的服务地址(localhost)
DFS_PORT 指定连接分布式系统DFS的服务端口号(3332)
DFS_COPY_NUM 指定分布式系统的副本数(3)
DFS_DB_NAME 指定分布式系统的中数据库名(默认与DB_NAME一致)
SHARE_FLAG 指定分布式系统中该数据库的共享属性(0)
REGION_MODE 指定分布式系统中该数据库的系统表空间数据文件的区块策略(0) 0:微区策略 1:宏区策略
HUGE_WITH_DELTA 是否仅支持创建事务型HUGE表(1) 1:是 0:否
RLOG_GEN_FOR_HUGE 是否生成HUGE表REDO日志(0) 1:是 0:否
PSEG_MGR_FLAG 是否仅使用管理段记录事务信息(0) 1:是 0:否
HELP 打印帮助信息
4.2 示例
dminit PATH=/dbdata INSTANCE_NAME=TEST PORT_NUM=5236 PAGE_SIZE=32 EXTENT_SIZE=16 LOG_SIZE=1024 CHARSET=0
4.3 启动实例
[[email protected] ~]# cd /dm/dmdbms/script/root/
[[email protected] ~]# ./dm_service_installer.sh -t dmserver -p dmserver -dm_ini /dbdata/DAMENG/dm.ini
5 定时备份
5.1 开户归档模式
使用SYSDBA登录数据库manager工具,输入以下SQL语句,并执行:
alter database mount;
– 限制归档空间上限为30GB
alter database add archivelog 'type=local,dest=/dm/arch,file_size=1024,space_limit=93000';
alter database archivelog;
alter database open;
查询是否生效:
select name,status$,arch_mode from v$database;
返回表示开启成功:
创建作业环境
SP_INIT_JOB_SYS(1);
5.2 脚本备份
Linux 定时备份脚本
1) 每周六晚上 23:30 定时全库备份
call SP_CREATE_JOB('back_full',1,0,'',0,0,'',0,'back_full');
call SP_JOB_CONFIG_START('back_full');
call SP_ADD_JOB_STEP('back_full', 'back_full', 6, '01000000/dm/bak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('back_full', 'back_full', 1, 2, 1, 64, 0, '23:30:00', NULL, '2021-01-11 22:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('back_full');
2) 每周一、周二、周三、周四、周五、周日晚上 23:30 定时增量备份
call SP_CREATE_JOB('backup_inc',1,0,'',0,0,'',0,'backup_inc');
call SP_JOB_CONFIG_START('backup_inc');
call SP_ADD_JOB_STEP('backup_inc', 'backup_inc', 6, '11000000/dm/bak|/dm/bak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('backup_inc', 'backup_inc', 1, 2, 1, 63, 0, '23:30:00', NULL, '2021-01-11 22:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('backup_inc');
3) 每天 00:00 删除 8 天以前的数据
call SP_CREATE_JOB('JOB_DEL_BAK_TIMELY',1,0,'',0,0,'',0,'JOB_DEL_BAK_TIMELY');
call SP_JOB_CONFIG_START('JOB_DEL_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 0, 'call SF_BAKSET_BACKUP_DIR_ADD(‘’DISK’’, ‘’/dm/bak’’);CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'', NOW()-8);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 1, 1, 1, 0, 0, '00:00:00', NULL, '2021-01-11 22:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_DEL_BAK_TIMELY');
6 报错
6.1 dminit: error while loading shared libraries: libdmnsort.so
报错:
[[email protected] ~]$ dminit PATH=/dm8/data
dminit: error while loading shared libraries: libdmnsort.so: cannot open shared object file: No such file or directory
处理方法:
#添加路径
[[email protected] ~]# vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
/dm8/bin
[[email protected] ~]# ldconfig