#获取系统位数
getconf LONG_BIT
#查询操作系统release信息
cat /etc/os-release
#查询系统信息
cat /etc/issue
#查询系统名称
uname -a
(1)永久性的修改主机名称,重启后能保持修改后的。
172.16.60.21
hostnamectl set-hostname host-dmdb1
172.16.60.22
hostnamectl set-hostname host-dmdb2
(2)修改hosts文件如下,两台机器都需要配置
172.16.60.21配置如下:
[root@localhost ~]# vi /etc/hosts
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 host-dmdb1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.60.22配置如下:
[root@localhost ~]# vi /etc/hosts
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 host-dmdb2
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
(3)重启CentOS 7
reboot -f
(1)Selinux设置
临时关闭:
[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
永久关闭:
#vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
注:centos7.6关闭selinux,vi /etc/selinux/config
(2)防火墙放行端口
数据库服务监听端口:5237
数据库监视器端口:53141
数据库集群内部通讯端口:61141,63141
#firewall-cmd --zone=public --add-port=5237/tcp --permanent
#firewall-cmd --zone=public --add-port=53141/tcp --permanent
#firewall-cmd --zone=public --add-port=61141/tcp --permanent
#firewall-cmd --zone=public --add-port=63141/tcp --permanent
#firewall-cmd --reload
#firewall-cmd --zone=public --list-ports
软件安装路径:/data/dm8/
数据库日志:/data/dm8/log
Sql 跟踪日志:/data/sqllog
数据库文件路径:/data/data/DMDB
数据库归档日志路径:/data/arch/
数据库备份文件路径:/data/bak
1.root用户修改 /etc/security/limits.conf
vi /etc/security/limits.conf
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard nproc 10240
dmdba soft nproc 10240
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft core unlimited
dmdba hard core unlimited
2.root用户修改 /etc/systemd/system.conf
vi /etc/systemd/system.conf
DefaultLimitNOFILE=65536:65536
3.root用户修改 /etc/sysctl.conf
vi /etc/sysctl.conf
vm.overcommit_memory=0
生效
sysctl -p
4.磁盘调度算法设置
查看磁盘当前使用的调度算法
fdisk -l
cat /sys/block/{DEVICE-NAME}/queue/scheduler
临时调整度算法
echo deadline > /sys/block/{DEVICE-NAME}/queue/scheduler
永久调整度算法
echo 'echo deadline > /sys/block/{DEVICE-NAME}/queue/scheduler' >> /etc/rc.local
echo 'echo deadline > /sys/block/sdb/queue/scheduler' >> /etc/rc.local
cat /sys/block/sdb/queue/scheduler
root 用户执行
groupadd dinstall -g 2001
useradd -g dinstall dmdba -u 2001 -m
echo 'HUN_admin2021' |passwd dmdba --stdin
passwd:已成功更新密码
mkdir -p /data/{dm8,bak,arch,data,sqllog}
chown -R dmdba:dinstall /data/{dm8,bak,arch,data,sqllog}
chmod -R 755 /data
使用 dmdba用户:
su - dmdba
上传安装介质
授权:
chmod 777 DMInstall.bin
开始安装:
./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文 ) [C/c]:c
解压安装程序 .........
欢迎使用达梦数据库安装程序
是否输入Key文件路径 ? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区 ? (Y/y:是 N/n:否) [Y/y]:y
设置时区 :
请选择设置时区 [21]:21
安装类型 :
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
请选择安装目录 [/data/dm8]:/data/dm8/
是否确认安装路径 ? (Y/y:是 N/n:否) [Y/y]:y
是否确认安装 ? (Y/y:是 N/n:否):y
...
...
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/data/dm8/script/root/root_installer.sh
安装结束
root用户执行相关脚本:
/data/dm8/script/root/root_installer.sh
[root@host-dmdb1 ~]# /data/dm8/script/root/root_installer.sh
移动 /data/dm8/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服务
[root@host-dmdb1 ~]#
初始化参数需求:
簇大小: 32
页大小: 32
字符集: UTF-8 (CHARSET:0代表GB18030,1代表UTF-8,2代表韩文字符集EUC-KR。默认为0。)
大小写是否敏感: 是 (CASE_SENSITIVE:1表示敏感,0表示不敏感。默认值为0。)
VARCHAR类型对象的长度是否以字符为单位:是(LENGTH_IN_CHAR:1、Y表示是,0、N表示否。默认值为0。)
数据库文件目录: /data/data
其余参数默认。
su - dmdba
cd /data/dm8/bin
./dminit PATH=/data/data PAGE_SIZE=32 EXTENT_SIZE=32 PORT_NUM=5237 CASE_SENSITIVE=1 CHARSET=1 DB_NAME=DMDB LENGTH_IN_CHAR=1
主备机启动数据库实例完成初始化:
su - dmdba
cd /data/dm8/bin
./dmserver /data/data/DMDB/dm.ini
启动完成后关闭实例。
pseg recv finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
nsvr_process_before_open begin.
nsvr_process_before_open success.
total 0 active crash trx, pseg_crash_trx_rollback begin ...
pseg_crash_trx_rollback end
SYSTEM IS READY.
#这里按ctrl+c
1.配置主库参数配置文件
首先需要进入数据文件目录:
cd /data/data/DMDB
然后配置相关参数文件。
(1)修改 dm.ini文件
vi dm.ini
INSTANCE_NAME = DAMENG_01
PORT_NUM = 5237 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态 /OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间
MAL_INI = 1 #打开 MAL系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志发送信息
(2)增加 dmmal.ini文件
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DAMENG_01 #与dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.16.60.21 #MAL系统监听TCP内部网络IP
MAL_PORT = 61141 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 172.16.60.21 #实例的对外服务IP地址
MAL_INST_PORT = 5237 #与dm.ini中的PORT_NUM一致
MAL_DW_PORT = 53141 #实例对应的守护进程监听TCP端口
MAL_INST_DW_PORT = 63141
[MAL_INST2]
MAL_INST_NAME = DAMENG_02 #与dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.16.60.22 #MAL系统监听TCP内部网络IP
MAL_PORT = 61141 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 172.16.60.22 #实例的对外服务IP地址
MAL_INST_PORT = 5237 #与dm.ini中的PORT_NUM一致
MAL_DW_PORT = 53141 #实例对应的守护进程监听TCP端口
MAL_INST_DW_PORT = 63141
(3)增加 dmarch.ini文件
ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DAMENG_02 #实时归档目标例名(主库侧填写备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/arch #本地归档文件存放路径
ARCH_FILE_SIZE =1024 #单位MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 51200 #单位MB,0 表示无限制,范围 1024~4294967294 MB
(4)增加dmwatcher.ini文件
[DMDB]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 220419 #守护系统唯一OGUID值
INST_INI = /data/data/DMDB/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /data/dm8/bin/dmserver #命令行方式启动
(5)修改sqllog.ini文件
BUF_TOTAL_SIZE = 10240 #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE = 1024 #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT = 6 #SQLs Log buffer keeped count(1~100)
[SLOG_ALL]
FILE_PATH = /data/sqllog --此项需要修改
PART_STOR = 0
SWITCH_MODE = 2
SWITCH_LIMIT = 128
ASYNC_FLUSH = 1
FILE_NUM = 80 --此项需要修改
ITEMS = 0
SQL_TRACE_MASK = 1
MIN_EXEC_TIME = 0
USER_MODE = 0
USERS =
2.配置备库参数配置文件
首先需要进入数据文件目录:
cd /data/data/DMDB
然后配置相关参数文件。
(1)修改 dm.ini文件
INSTANCE_NAME = DAMENG_02
PORT_NUM = 5237 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态 /OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间
MAL_INI = 1 #打开 MAL系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志发送信息
(2)增加 dmmal.ini文件
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DAMENG_01 #与dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.16.60.21 #MAL系统监听TCP内部网络IP
MAL_PORT = 61141 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 172.16.60.21 #实例的对外服务IP地址
MAL_INST_PORT = 5237 #与dm.ini中的PORT_NUM一致
MAL_DW_PORT = 53141 #实例对应的守护进程监听TCP端口
MAL_INST_DW_PORT = 63141
[MAL_INST2]
MAL_INST_NAME = DAMENG_02 #与dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.16.60.22 #MAL系统监听TCP内部网络IP
MAL_PORT = 61141 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 172.16.60.22 #实例的对外服务IP地址
MAL_INST_PORT = 5237 #与dm.ini中的PORT_NUM一致
MAL_DW_PORT = 53141 #实例对应的守护进程监听TCP端口
MAL_INST_DW_PORT = 63141
(3)增加 dmarch.ini文件
ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DAMENG_01 #实时归档目标例名(备库侧填写主库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/arch #本地归档文件存放路径
ARCH_FILE_SIZE =1024 #单位MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 51200 #单位MB,0 表示无限制,范围 1024~4294967294 MB
(4)增加dmwatcher.ini文件
[DMDB]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 220419 #守护系统唯一OGUID值
INST_INI = /data/data/DMDB/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /data/dm8/bin/dmserver #命令行方式启动
(5)修改sqllog.ini文件
BUF_TOTAL_SIZE = 10240 #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE = 1024 #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT = 6 #SQLs Log buffer keeped count(1~100)
[SLOG_ALL]
FILE_PATH = /data/sqllog
PART_STOR = 0
SWITCH_MODE = 2
SWITCH_LIMIT = 128
ASYNC_FLUSH = 1
FILE_NUM = 80
ITEMS = 0
SQL_TRACE_MASK = 1
MIN_EXEC_TIME = 0
USER_MODE = 0
USERS =
主库备份:
cd /data/dm8/bin
./dmrman CTLSTMT="BACKUP DATABASE '/data/data/DMDB/dm.ini' FULL BACKUPSET '/data/bak/DB_FULL_BACKUP'"
拷贝备份至所有备库对应目录/data/bak/
所有备机备库还原:
cd /data/dm8/bin
./dmrman CTLSTMT="RESTORE DATABASE '/data/data/DMDB/dm.ini' FROM BACKUPSET '/data/bak/DB_FULL_BACKUP'"
./dmrman CTLSTMT="RECOVER DATABASE '/data/data/DMDB/dm.ini' FROM BACKUPSET '/data/bak/DB_FULL_BACKUP'"
./dmrman CTLSTMT="RECOVER DATABASE '/data/data/DMDB/dm.ini' UPDATE DB_MAGIC"
1.配置主机
(1)以mount启动主机
su - dmdba
cd /data/dm8/bin
./dmserver /data/data/DMDB/dm.ini mount
(2)设置主机的OGUID和数据库模式
用SYSDBA登录数据库,执行:
[dmdba@host-dmdb1 bin]$ ./disql
disql V8
用户名:SYSDBA/SYSDBA@172.16.60.21:5237
服务器[172.16.60.21:5237]:处于普通配置状态
登录使用时间 : 1.519(ms)
SQL>
---设置主库的OGUID
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(220419);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
2.配置备机
(1)备机以mount启动实例
su - dmdba
cd /data/dm8/bin
./dmserver /data/data/DMDB/dm.ini mount
(2)所有备机设置OGUID和数据库状态
用SYSDBA登录数据库
[dmdba@host-dmdb2 bin]$ ./disql
disql V8
用户名:SYSDBA/SYSDBA@172.16.60.22:5237
服务器[172.16.60.21:5237]:处于普通配置状态
登录使用时间 : 1.519(ms)
SQL>
---修改OGUID和备库模式
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(220419);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
1.启动主库dmwatcher
su - dmdba
cd $DM_HOME/bin
./dmwatcher /data/data/DMDB/dmwatcher.ini
2.启动所有备库dmwatcher
su - dmdba
cd $DM_HOME/bin
./dmwatcher /data/data/DMDB/dmwatcher.ini
linux格式
创建/data/dm8/dmmonitor.ini文件
vi /data/dm8/dmmonitor.ini
添加如下内容:
MON_DW_CONFIRM = 0 #监视器模式
MON_LOG_PATH = /data/dm8/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT =256 #不限定日志文件总占用空间
[DMDB]
MON_INST_OGUID = 220419 #组DMDB的唯一OGUID值
#以下配置为监视器到组DMDB的守护进程连接信息,以"IP:PORT"的形式配置
#IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 172.16.60.21:53141
MON_DW_IP = 172.16.60.22:53141
运行监视器:
cd /data/dm8/bin
./dmmonitor /data/dm8/dmmonitor.ini
windows格式:
创建D:\dmdbms\dmmonitor.ini文件,将下面配置拷贝到文件中。
MON_DW_CONFIRM = 0 #监视器模式
MON_LOG_PATH = d:\dmdbms\log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT =256 #不限定日志文件总占用空间
[DMDB]
MON_INST_OGUID = 220419 #组DMDB的唯一OGUID值
#以下配置为监视器到组DMDB的守护进程连接信息,以"IP:PORT"的形式配置
#IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 172.16.60.21:53141
MON_DW_IP = 172.16.60.22:53141
使用达梦服务查看器添加监视器服务:
服务类型:DM数据守护监视器服务(V4.0)
服务名称后缀:_DMDB
服务启动类型:自动
dmmonitor.ini:D:\dmdbms\dmmonitor.ini
服务描述:DM数据守护监视器服务
1.配置系统服务
配置dmwatcher系统服务(主备库)
root用户:
主库服务器:
/data/dm8/script/root/dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /data/data/DMDB/dmwatcher.ini
备库服务器:
/data/dm8/script/root/dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /data/data/DMDB/dmwatcher.ini
配置dmserver后台服务启停脚本:
root用户:
主库服务器:
/data/dm8/script/root/dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /data/data/DMDB/dm.ini
备库服务器:
/data/dm8/script/root/dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /data/data/DMDB/dm.ini
2.启动服务
主备库服务器通过服务脚本启动dmwatcher、dmserver后台运行:
su - dmdba
cd /data/dm8/bin
主服务器:
./DmServiceDMSERVER start
./DmWatcherServiceDMWATCHER start
备服务器:
./DmServiceDMSERVER start
./DmWatcherServiceDMWATCHER start
普通监视器:
cd d:
cd dmdbms\bin
.\dmmnitor.exe d:\dmdbms\dmmonitor.ini
1.启动
以脚本方式后台启动数据库服务
(1).登录主机,启动主库的DmService
su - dmdba
cd /data/dm8/bin
./DmServiceDMSERVER start
(2).登录备机,启动备库的DmService
su - dmdba
cd /data/dm8/bin
./DmServiceDMSERVER start
(3).登录主机,启动主库的DmWatcher
su - dmdba
cd /data/dm8/bin
./DmWatcherServiceDMWATCHER start
(4).登录备机,启动备库的DmWatcher
su - dmdba
cd /data/dm8/bin
./DmWatcherServiceDMWATCHER start
(5).登录普通监视器,启动监视器
在windows服务里启用dmmonitor服务
2.停止
以脚本方式后台停止数据库服务( 顺序:先停监视器,再停备库守护进程、主库守护进程,然后关闭备库dmserver,最后关闭主库dmserver)
(1).登录普通监视器,停止监视器
在windows服务里停用dmmonitor服务
(2).登录备机,关闭备库的DmWatcher
su - dmdba
cd /data/dm8/bin
./DmWatcherServiceDMWATCHER stop
(3).登录主机,关闭主库的DmWatcher
su - dmdba
cd /data/dm8/bin
./DmWatcherServiceDMWATCHER stop
(4).登录备机,关闭备库的dmserver
su - dmdba
cd /data/dm8/bin
./DmServiceDMSERVER stop
(5).登录主机,关闭主库的dmserver
su - dmdba
cd /data/dm8/bin
./DmServiceDMSERVER stop
1.配置dm_svc.conf文件
在所有LINUX应用服务器上配置/etc/dm_svc.conf文件,内容如下:
单实例:
TIME_ZONE=(480)
LANGUAGE=(cn)
DMDB=(172.16.60.21:5237,172.16.60.22:5237)
[DMDB]
LOGIN_MODE=(1)
SWITCH_TIME=(2000)
SWITCH_INTERVAL=(10)
RW_SEPARATE = (1)
RW_PERCENT = (25)
多实例:
TIME_ZONE=(480)
LANGUAGE=(cn)
DMDB=(172.16.60.21:5237,172.16.60.22:5237)
TESTDB=(172.16.60.21:5238,172.16.60.22:5238)
[DMDB]
LOGIN_MODE=(1)
SWITCH_TIME=(2000)
SWITCH_INTERVAL=(10)
RW_SEPARATE = (1)
RW_PERCENT = (25)
[TESTDB]
LOGIN_MODE=(1)
SWITCH_TIME=(2000)
SWITCH_INTERVAL=(10)
RW_SEPARATE = (1)
RW_PERCENT = (25)
并赋予chmod777权限。
chmod 777 /etc/dm_svc.conf
说明:Windows 平台下位于%SystemRoot%\system32目录
2.拷贝达梦数据库驱动包
从数据库服务器/data/dm8/drivers目录拷贝对应版本的驱动包到应用程序对应驱动包目录。
3.程序jdbc连接
配置程序jdbc连接串如下:
#DMDB集群业务系统jdbc连接
<DRIVER>dm.jdbc.driver.DmDriver</DRIVER>
<URL>jdbc:dm://DMDB</URL>
如果有用到hibernate还需要拷贝对应的方言包并在程序配置中定义方言包
//定义方言包
<property name="dialect">org.hibernate.dialect.DmDialect</property>
所有数据库的备份策略:
每周六23点进行全备份,其余每天23点进行增量备份,备保留 备份保留8天。
备份文件存放路径: /data/bak
SP_CREATE_SYSTEM_PACKAGES(1);
SP_INIT_JOB_SYS(1);
call SP_CREATE_JOB('BAK_FULL',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('BAK_FULL');
call SP_ADD_JOB_STEP('BAK_FULL', 'S1', 6, '02000000/data/bak', 1, 1, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('BAK_FULL', 'D1', 1, 2, 1, 64, 0, '23:00:00', NULL, '2021-05-19 17:10:21', NULL, '');
call SP_JOB_CONFIG_COMMIT('BAK_FULL');
call SP_CREATE_JOB('BAK_INC',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('BAK_INC');
call SP_ADD_JOB_STEP('BAK_INC', 'S1', 6, '12000000/data/bak|/data/bak', 1, 2, 3, 5, NULL, 0);
call SP_ADD_JOB_STEP('BAK_INC', 'S2', 6, '02000000/data/bak', 1, 1, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('BAK_INC', 'D1', 1, 2, 1, 63, 0, '23:00:00', NULL, '2021-05-19 17:13:27', NULL, '');
call SP_JOB_CONFIG_COMMIT('BAK_INC');
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, 'call SF_BAKSET_BACKUP_DIR_ADD(''DISK'', ''/data/bak'');
CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'', NOW()-8);', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('DEL_BAK','D1', 1, 1, 1, 0, 0, '01:00:00', NULL, '2021-05-19 17:16:07', NULL, '');
call SP_JOB_CONFIG_COMMIT('DEL_BAK');
注:这里该处优化样例,可根据实际主机配置进行适当调整。
--修改cpu相关参数
SP_SET_PARA_VALUE(2,'WORKER_THREADS',16);
SP_SET_PARA_VALUE(2,'TASK_THREADS',4);
SP_SET_PARA_VALUE(2,'IO_THR_GROUPS',4);
--修改内存池相关参数
SP_SET_PARA_VALUE(2,'MAX_OS_MEMORY', 45);
SP_SET_PARA_VALUE(2,'MEMORY_POOL', 900);
SP_SET_PARA_VALUE(2,'MEMORY_N_POOLS', 1);
SP_SET_PARA_VALUE(2,'MEMORY_TARGET', 2000);
--修改缓冲区相关参数
SP_SET_PARA_VALUE(2,'BUFFER', 6000);
SP_SET_PARA_VALUE(2,'MAX_BUFFER', 6000);
SP_SET_PARA_VALUE(2,'BUFFER_POOLS', 19);
SP_SET_PARA_VALUE(2,'RECYCLE', 560);
SP_SET_PARA_VALUE(2,'RECYCLE_POOLS', 7);
--修改fast_pool相关参数
SP_SET_PARA_VALUE(2,'FAST_POOL_PAGES', 3000);
SP_SET_PARA_VALUE(2,'FAST_ROLL_PAGES', 1000);
--修改内存检测参数为1
SP_SET_PARA_VALUE(2,'MEMORY_MAGIC_CHECK', 1);
-非DSC环境将ENABLE_FREQROOTS设置为1,注意DM7 v$instance视图没有dsc_role字段,DM7这部分可以删掉
SP_SET_PARA_VALUE(2,'ENABLE_FREQROOTS', 1);
--修改HASH相关参数
SP_SET_PARA_VALUE(1,'HJ_BUF_GLOBAL_SIZE', 875);
SP_SET_PARA_VALUE(1,'HJ_BUF_SIZE', 88);
SP_SET_PARA_VALUE(1,'HAGR_BUF_GLOBAL_SIZE',875);
SP_SET_PARA_VALUE(1,'HAGR_BUF_SIZE', 88);
--修改排序相关参数
SP_SET_PARA_VALUE(2,'SORT_FLAG',0);
SP_SET_PARA_VALUE(2,'SORT_BLK_SIZE',1);
SP_SET_PARA_VALUE(2,'SORT_BUF_SIZE', 10);
SP_SET_PARA_VALUE(2,'SORT_BUF_GLOBAL_SIZE', 500);
--修改其他内存参数
SP_SET_PARA_VALUE(2,'RLOG_POOL_SIZE', 256);
SP_SET_PARA_VALUE(2,'SESS_POOL_SIZE', 256);
SP_SET_PARA_VALUE(2,'CACHE_POOL_SIZE', 200);
SP_SET_PARA_VALUE(2,'DICT_BUF_SIZE', 50);
SP_SET_PARA_VALUE(2,'VM_POOL_TARGET', 16384);
SP_SET_PARA_VALUE(2,'SESS_POOL_TARGET', 16384);
--修改实例相关参数
SP_SET_PARA_VALUE(2,'USE_PLN_POOL', 1);
SP_SET_PARA_VALUE(2,'ENABLE_MONITOR', 1);
SP_SET_PARA_VALUE(2,'SVR_LOG', 0);
SP_SET_PARA_VALUE(2,'TEMP_SIZE', 1024);
SP_SET_PARA_VALUE(2,'TEMP_SPACE_LIMIT', 102400);
SP_SET_PARA_VALUE(2,'MAX_SESSIONS', 1500);
SP_SET_PARA_VALUE(2,'MAX_SESSION_STATEMENT', 20000);
SP_SET_PARA_VALUE(2,'PK_WITH_CLUSTER', 0);
SP_SET_PARA_VALUE(2,'ENABLE_ENCRYPT',0);
--修改优化器相关参数
SP_SET_PARA_VALUE(2,'OLAP_FLAG',2);
SP_SET_PARA_VALUE(2,'VIEW_PULLUP_FLAG',1);
SP_SET_PARA_VALUE(2,'OPTIMIZER_MODE',1);
SP_SET_PARA_VALUE(2,'ADAPTIVE_NPLN_FLAG',0);
--开启并行PURGE
SP_SET_PARA_VALUE(2,'PARALLEL_PURGE_FLAG',1);
--开启手动并行
SP_SET_PARA_VALUE(2,'PARALLEL_POLICY',2);
--UNDO_RETENTION如果放大,可以适当调大UNDO_EXTENT_NUM。负载高的时候,减少文件系统的申请/释放操作。
SP_SET_PARA_VALUE(2,'UNDO_EXTENT_NUM',16);
--开启SQL 注入HINT功能
SP_SET_PARA_VALUE(2,'ENABLE_INJECT_HINT'1);
--设置达梦数据库兼容模式:是否兼容其他数据库模式,0:不兼容,1:兼容SQL92标准,2:兼容ORACLE,3:兼容MS SQL SERVER,4:兼容MYSQL;我们将其设置成2,变成兼容oracle模式,保存后重启实例。
SP_SET_PARA_VALUE(2,'COMPATIBLE_MODE',2);
--redo日志调整(主备库都需要执行)
alter database resize logfile 'DMDB01.log' to 1024;
alter database resize logfile 'DMDB02.log' to 1024;
--归档开启及修改(单实例需要修改,集群不需要,因为单独配置了归档参数文件。)
alter database mount;
select arch_mode from v$database;
--设置归档路径以及归档日志大小
ALTER DATABASE ADD ARCHIVELOG 'DEST = /data/arch, TYPE = local, FILE_SIZE = 128, SPACE_LIMIT = 10240';
--开启归档
alter database archivelog;
--开启数据库
alter database open;
--修改归档配置
alter database modify archivelog 'DEST=/data/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';
--设置ROLL表空间扩充上限为8G,根据业务需要进行调整。(只需要在主库执行即可,备库会自动同步。)
alter tablespace "ROLL" datafile 'ROLL.DBF' autoextend on maxsize 8192;
--设置临时表空间扩充上限为8G,根据业务需要进行调整。(主备库都需要设置一下,需要重启数据库生效。)
SP_SET_PARA_VALUE(1,'TEMP_SPACE_LIMIT',8192);
SELECT * FROM V$DM_INI WHERE PARA_NAME LIKE '%TEMP%';
手动切换需要使用监视器来完成,通过登陆监视器执行switchover命令来完成主备切换。
具体操作如下:
1、首先登陆监视器服务器上前台启动监视器(启动普通监视器即可)
d:
cd dmdbms\bin
dmmonitor.exe d:\dmdbms\dmmonitor.ini
2、在监视器中执行show命令或者show global info命令,查看集群实例状态。
3、在监视器中执行login命令根据提示输入用户名密码登陆监视器
login
用户名: SYSDBA
密码:输入SYSDBA密码
4、监视器登陆成功后,执行switchover进行主备库切换
命令:switchover 组名.备库实例名 #可以根据上面的show global info查看组名和实例名
show
2022-04-20 17:01:28
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
DMDB 220419 FALSE MANUAL FALSE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT
172.16.60.21 53141 2022-04-20 17:01:27 GLOBAL VALID OPEN DAMENG_01 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID
EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
172.16.60.21 5237 OK DAMENG_01 OPEN PRIMARY 0 0 REALTIME VALID 4317 45219 4317 45219 NONE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT
172.16.60.22 53141 2022-04-20 17:01:27 GLOBAL VALID OPEN DAMENG_02 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID
EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
172.16.60.22 5237 OK DAMENG_02 OPEN STANDBY 0 0 REALTIME VALID 4309 45219 4309 45219 NONE
DATABASE(DAMENG_02) APPLY INFO FROM (DAMENG_01), REDOS_PARALLEL_NUM (1):
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4317, 4317, 4317], (RLSN, SLSN, KLSN)[45219, 45219, 45219], N_TSK[0], TSK_MEM_USE[0]
REDO_LSN_ARR: (45219)
#================================================================================#
只需要保证flsn和clsn主备库一直即可,fseq和cseq可能会不一致。
一个企业有一批货物需要从p地运输到s地(有按顺序排列的LSN号),两家快递公司共同承担运送这一批货物,A公司开始运输,产生快递单号(包号),B公司收到货物开始运输,产生快递单号(包号)。当运输到s时候,这批货物的LSN号不变,还是这批货物。
备注:监视器只有自动故障切换才用到,如果是手动模式可以平时不启动,查看状态的时候可以手工启动进行查看。如想设置成自动故障切换,只需要将dmwatcher.ini配置文件中的DW_MODE = MANUAL #手动切换模式修改为DW_MODE = AUTO,监视器dmmonitor.ini参数文件中MON_DW_CONFIRM = 0 #监视器模式修改为MON_DW_CONFIRM = 1即可。
遇到的问题:(启动主库提示无效问题,由于启动关闭顺序错乱导致,手工关闭数据库即可。)
[dmdba@host-dmdb1 bin]$ ./DmServiceDMSERVER stop
DmServiceDMSERVER service is stopped.
[dmdba@host-dmdb1 bin]$ ./DmServiceDMSERVER status
DmServiceDMSERVER is stopped
[dmdba@host-dmdb1 bin]$ ./DmServiceDMSERVER status
DmServiceDMSERVER is stopped
[dmdba@host-dmdb1 bin]$ ./DmServiceDMSERVER status
DmServiceDMSERVER is stopped
[dmdba@host-dmdb1 bin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ FAILED ]
file dm.key not found, use default license!
version info: develop
instance DAMENG_01 is running.
[dmdba@host-dmdb1 bin]$ ./DmWatcherServiceDMWATCHER status
DmWatcherServiceDMWATCHER is stopped
[dmdba@host-dmdb1 bin]$ disql
bash: disql: 未找到命令...
[dmdba@host-dmdb1 bin]$ ./disql
disql V8
用户名:SYSDBA/SYSDBA@172.16.60.21:5237
服务器[172.16.60.21:5237]:处于主库打开状态
登录使用时间 : 1.377(ms)
SQL> select status$ from v$instance;
行号 STATUS$
1 SUSPEND
已用时间: 1.930(毫秒). 执行号:700.
SQL> shutdown normal;
操作已执行
已用时间: 1.209(毫秒). 执行号:0.
SQL> select status$ from v$instance;
连接丢失
SQL> exit
[dmdba@host-dmdb1 bin]$ ./DmServiceDMSERVER stop
DmServiceDMSERVER service is stopped.
[dmdba@host-dmdb1 bin]$ ./DmServiceDMSERVER status
DmServiceDMSERVER is stopped
[dmdba@host-dmdb1 bin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
[dmdba@host-dmdb1 bin]$ ./DmWatcherServiceDMWATCHER start
Starting DmWatcherServiceDMWATCHER: [ OK ]
[dmdba@host-dmdb1 bin]$ ./disql
disql V8
用户名:SYSDBA/SYSDBA@172.16.60.21:5237
服务器[172.16.60.21:5237]:处于主库打开状态
登录使用时间 : 1.509(ms)
SQL> select status$ from v$instance;
行号 STATUS$
1 OPEN
已用时间: 4.547(毫秒). 执行号:500.
文章
阅读量
获赞