欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[达梦数据库]达梦单节点安装

程序员文章站 2022-06-02 20:07:18
...

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