达梦数据库单机环境部署
查看硬盘、分区信息
先检查磁盘空间,确定安装目录,归档目录,和备份目录。
#查看磁盘容量的使用情况
df -h
#查看磁盘以及分区信息
fdisk -l
1 操作系统相关设置
1.1关闭防火墙
查看firewall服务状态
systemctl status firewalld
关闭防火墙
systemctl stop firewalld
设置开机禁用防火墙
systemctl disable firewalld
1.2关闭 selinux
系统的SELinux有三种模式:permissive、enforcing、disabled
Permissive:代表仅记录安全警告但不阻止可疑行为
Enforcing:代表记录警告且阻止可疑行为
Disabled:代表 SELinux 被禁用
查看selinux的模式
getenforce
设置selinux为permissive模式
setenforce 0
设置selinux为enforcing模式
setenforce 1
设置开机不重启
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
1.3修改操作系统资源限制
vi /etc/security/limits.conf
在文件末尾处添加以下内容
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba hard core unlimited
dmdba soft core unlimited
#先查询是否存在该文件,再修改以下内容
find /etc/security/ -name "20-nproc.conf"
vi /etc/security/limits.d/20-nproc.conf
* soft nproc 65536
1.4修改内核参数
vi /etc/sysctl.conf
文件末尾添加以下内容
fs.file-max = 6815744
fs.aio-max-nr = 1048576
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.swappiness = 0
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
使内核参数生效:
sysctl -p
1.5创建安装用户和组
groupadd -g 10000 dinstall
useradd -u 10001 -g dinstall -m -d /home/dmdba dmdba
echo "dmdba"|passwd --stdin dmdba
1.6创建数据文件存放目录
创建数据文件存放的目录,并给数据库安装文件赋权给dmdba用户(安装数据库目录)。
mkdir /home/dmdba/dmdata
chown -R dmdba:dinstall /home/dmdba/dmdata
2 安装数据库软件
上传达梦的数据库软件包到服务器(/opt),挂载到(/mnt)。
#挂载到(/mnt)
mount -o loop /opt/dm8_20200907_x86_rh7_64_ent_8.1.1.126.iso /mnt/
# 拷贝文件到安装目录下
cp /mnt/DMInstall.bin /home/dmdba
# 修改权限
chown -R dmdba:dinstall /home/dmdba/DMInstall.bin
切换用户,执行安装
su - dmdba
./DMInstall.bin -i
补充说明:key文件为授权文件,2种激活方式:1,安装软件的时候按提示输入路径 2,直接放在/bin目录下面,再初始化实例。
请选择安装语言(C/c:中文 E/e:英文) [C/c]:c
解压安装程序..........
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (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]:
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 1147M
请选择安装目录 [/home/dmdba/dmdbms]:
可用空间: 13G
是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1147M
可用空间: 13G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2021-06-09 09:31:57
[INFO] 安装达梦数据库...
2021-06-09 09:31:57
[INFO] 安装 基础 模块...
2021-06-09 09:32:02
[INFO] 安装 服务器 模块...
2021-06-09 09:32:03
[INFO] 安装 客户端 模块...
2021-06-09 09:32:07
[INFO] 安装 驱动 模块...
2021-06-09 09:32:09
[INFO] 安装 手册 模块...
2021-06-09 09:32:09
[INFO] 安装 服务 模块...
2021-06-09 09:32:11
[INFO] 移动日志文件。
2021-06-09 09:32:11
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/home/dmdba/dmdbms/script/root/root_installer.sh
安装结束
切换用户,按照提示执行命令
logout指令让dmdba用户退出系统
[dmdba@localhost ~]$ logout
[root@localhost ~]# /home/dmdba/dmdbms/script/root/root_installer.sh
移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
3 初始化数据库
初始化数据库的用户,不要使用root,使用dmdba。
进入在bin目录下执行,一些参数的设置提前确认好。
示例:
cd /home/dmdba/dmdbms/bin
./dminit path=/home/dmdba/dmdata page_size=32 log_size=2048 charset=1 case_sensitive=1 LENGTH_IN_CHAR=0
dminit 使用手册位于 dmdbms/doc 下面。输入./dminit
help 可以看到设置参数。
[root@localhost bin]# ./dminit help
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2022-05-20
格式: ./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)
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 注册数据库服务
以下仅作为参考,实际在对应的路径下执行命令
# 切换root用户
su - root
cd /home/dmdba/dmdbms/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdata/DAMENG/dm.ini -p DMSERVER
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
5 启动数据库服务
# 切换用户,进入bin目录
su - dmdba
cd /home/dmdba/dmdbms/bin
./DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
6开启归档
本地归档配置方式如下:
1.配置 dm.ini,打开 ARCH_INI 参数 (将ARCH_INI的值改为1)
vi /home/dmdba/dmdata/DAMENG/dm.ini
ARCH_INI = 1 #打开归档配置
2.配置 dmarch.ini
先确定好归档路径
mkdir /dmarch
chown -R dmdba:dinstall /dmarch
新建归档配置文件
vi /home/dmdba/dmdata/DAMENG/dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST =/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 1024 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT =204800 #单位 Mb,0 表示无限制,范围 1024~2147483647M
7设置定时备份
确定好备份的路径
mkdir /dmbak
chown -R dmdba:dinstall /dmbak
通过disql命令连接达梦数据库
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA
SP_INIT_JOB_SYS(1); --开启代理作业
call SP_CREATE_JOB('JOB_FULL_BAK_TIMELY',1,0,'',0,0,'',0,'定时全量备份');
call SP_JOB_CONFIG_START('JOB_FULL_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_FULL_BAK_TIMELY', 'STEP_FULL_BAK', 6, '01000000/dmbak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_FULL_BAK_TIMELY', 'SCHEDULE_FULL_BAK', 1, 2, 1, 64, 0, '01:00:00', NULL, '2021-07-10 22:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_FULL_BAK_TIMELY');
call SP_CREATE_JOB('JOB_INCREMENT_BAK_TIMELY',1,0,'',0,0,'',0,'定时增量备份');
call SP_JOB_CONFIG_START('JOB_INCREMENT_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_INCREMENT_BAK_TIMELY', 'STEP_INCREMENT_BAK', 6, '11000000/dmbak|/dmbak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_INCREMENT_BAK_TIMELY', 'SCHEDULE_INCREMENT_BAK', 1, 2, 1, 63, 0, '01:00:00', NULL, '2021-07-10 22:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_INCREMENT_BAK_TIMELY');
call SP_CREATE_JOB('del_bak',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('del_bak');
call SP_ADD_JOB_STEP('del_bak', 's1', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmbak'');', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_STEP('del_bak', 's2', 0, 'SP_DB_BAKSET_REMOVE_BATCH(NULL,SYSDATE-3);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('del_bak', 's3', 1, 2, 1, 1, 0, '22:00:00', NULL, '2021-07-10 22:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('del_bak');