前言
利用VMware进行部署DM8单机版,适用于测试环境和正式环境。
一、环境要求
1.1服务器硬件需求
硬件 | 要求 |
物理内存 | >= 4 GB |
交换区 | Swap 空间>=物理内存 swap=8G |
网络 | 物理机器1个网卡,1个网卡做 band |
磁盘 | 根据实际应用系统需要挂载合适大小磁盘 |
具体需求根据实际环境要求做出相应更改。
1.2目录与存储规划
用途 | 目录路径 | 备注 |
---|---|---|
数据库软件安装目录 | /dm | 磁盘sda1,空间50 GB |
实例安装目录 | /dm/dmdbms | 共用磁盘sda1,可单独挂载磁盘 |
归档日志存放目录 | /dm/dmarch | 共用磁盘sda1,可单独挂载磁盘 |
备份文件存放目录 | /dm/dmbak | 共用磁盘sda1,可单独挂载磁盘 |
具体规划根据实际环境要求做出相应更改。
二、OS部署
规划1块磁盘,1块网卡
swap进行分区时需要大于物理内存
设置主机名、配置网络
2.1操作系统要求
DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。
查看内核版本:
查看glibc版本:
如果glibc版本低于2.3,则可以通过配置Yum源后,输入yum -y install gcc 进行安装。
2.2用户与组
创建dmdba专属用户来安装数据库软件
新建用户和组:
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo '123'|passwd --stdin dmdba
2.3用户资源限制
修改 dmdba 用户资源限制:
vim /etc/security/limits.conf
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 65536
dmdba hard stack 65536
2.4用户环境变量
vi /home/dmdba/.bash_profile
export DM_HOME=/dm/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
2.5关闭防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
三、安装数据库软件
将数据库软件上传到服务器后使用 root 用户挂载 iso 安装包文件到 /mnt
目录下:
mount -oloop dm8_20200930_x86_rh6_64_ent_8.1.1.134.iso /mnt
切到dmdba用户下执行一下命令:
su - dmdba
cd /mnt
ls -lrt
./DMInstall.bin -i
命令式安装
- 选择安装程序的语言 c/C 为中文,e/E 为英文。
- 提示是否安装 key 文件,输入 N 跳过。
- 选择时区,21 即东 8 区。
- 选择安装类型,默认典型安装(包含所有内容)。
使用root用户执行/dm8/script/root/root_installer.sh语句。
图形化安装
./DMInstall.bin
如果有license可以选择key
3.1使用 dminit 工具初始化实例
执行以下命令,切换到 /dmdata/bin 目录,初始化实例
3.2启动实例
系统服务方式启动实例,DM 提供脚本将数据库实例注册为操作系统服务:
root用户下,执行一下命令:
cd /dm/dmdbms/script/root
执行脚本注册服务:
/dm_service_installer.sh -t dmserver -p dmserver -dm_ini /dm/dmdbms/DAMENG/dm.ini
注意:-t
指服务类型是 dmserver;-p
为服务名的后缀;-dm_ini
为实例的 dm.ini 文件的绝对路径。
启动实例:
systemctl start DmServicedmserver
关闭实例:
systemctl stop DmServicedmserver
3.3测试连接数据库
cd /dm/dmdbms/bin
./disql SYSDBA/SYSDBA
3.4参数优化
调整.dm.ini文件
参数名称 | 参数含义 | 参数默认值 | 参数建议 |
---|---|---|---|
BUFFER | 系统缓冲区大小,以 MB 为单位 | 100 | 系统物理内存的 60%~80% |
BUFFER_POOLS | BUFFER 系统分区数 | 19 | 物理内存 64 GB 以下 53 GB 以上 |
HJ_BUF_GLOBAL_SIZE | HASH 连接操作符的数据总缓存大小,以 MB 为单位 | 500 | 5000 |
HJ_BUF_SIZE | 单个 HASH 连接操作符的数据总缓存大小,以 MB 为单位 | 50 | 500 |
DICT_BUF_SIZE | 字典缓冲区大小,以 MB 为单位 | 5 | 100 |
TASK_THREADS | 任务线程个数 | 4 | CPU 核数 |
IO_THR_GROUPS | 非 Windows 下有效,表示 IO 线程组个数 | 2 | CPU 核数/2 |
MAX_SESSIONS | 系统允许同时连接的最大数 | 100 | 1000 |
MAX_SESSION_STATEMENT | 单个会话上允许同时打开的语句句柄最大数 | 100 | 20000 |
CACHE_POOL_SIZE | SQL 缓冲池大小,以 MB 为单位 | 20 | 200 |
SP_SET_PARA_VALUE (2,'HJ_BUF_GLOBAL_SIZE',5000);
SP_SET_PARA_VALUE (2,'HJ_BUF_SIZE',500);
SP_SET_PARA_VALUE (2,'MAX_SESSIONS',1000);
SP_SET_PARA_VALUE (2,'MAX_SESSION_STATEMENT',20000);
SP_SET_PARA_VALUE (2,'CACHE_POOL_SIZE',200);
SP_SET_PARA_VALUE (2,'DICT_BUF_SIZE',100);
declare
v_mem_mb int;
v_cpus int;
BUFFER int;
BUFFER_POOLS INT;
begin
SELECT TOP 1 N_CPU,TOTAL_PHY_SIZE/1024/1024 INTO v_cpus,v_mem_mb FROM V$SYSTEMINFO;
v_mem_mb=round(v_mem_mb,-3);
SP_SET_PARA_VALUE(2,'TASK_THREADS',v_cpus);
SP_SET_PARA_VALUE(2,'IO_THR_GROUPS',v_cpus/2);
IF v_mem_mb >= 64000 THEN
BUFFER_POOLS :=101;
ELSE
BUFFER_POOLS :=53;
END IF;
BUFFER := round(cast(v_mem_mb * 0.8 as int),-3);
SP_SET_PARA_VALUE(2,'BUFFER', BUFFER);
SP_SET_PARA_VALUE(2,'BUFFER_POOLS', BUFFER_POOLS);
end;
3.5开启归档
alter database mount;
alter database add archivelog 'dest=/dm/dmarch/,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400';
alter database archivelog;
alter database open;
3.6定制备份策略
备份类型 | 备份周期 | 备份时间 |
全量备份 | 每周 | 每周五 23 点 |
增量备份 | 每天 | 除周五外每天 23 点 |
删除备份 | 每天 | 每天 23 点 30 |
创建作业表:
SP_INIT_JOB_SYS(1);
全量备份(每周五 23 点全备):
call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakfull');
call SP_ADD_JOB_STEP('bakfull', 'bak01', 6, '01000000/dm/dmbak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakfull', 'bak01', 1, 2, 1, 32, 0, '23:00:00', NULL, '2021-08-29 14:42:15', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakfull');
增量备份(每周除周五外每天 23 点增量备份):
call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakincr');
call SP_ADD_JOB_STEP('bakincr', 'bak02', 6, '11000000/dm/dmbak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakincr', 'bak2', 1, 2, 1, 95, 0, '23:00:00', NULL, '2021-08-29 14:44:30', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakincr');
备份定期删除(每天 23:30 删除 14 天前备份):
call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('delbak');
call SP_ADD_JOB_STEP('delbak', 'bak1', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dm/dmbak'');call sp_db_bakset_remove_batch(''DISK'',now()-14);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '23:30:00', NULL, '2021-08-29 14:48:41', NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');
本文参考网址:https://eco.dameng.com/docs/zh-cn/start/index.html
转载请备注出处!