1.安装软件步骤参考 dm_dw.txt
第一节点 第二节点 EP01 (主) EP02 (主) EP12 (备) EP11 (备)
2、安装mpp 主备
--------------------第一节点 0.101
(1)初始化实例 EP01主库:
./dminit PATH=/dm8/dmdata DB_NAME=EP01 INSTANCE_NAME="EP01" PORT_NUM=5239
EP12备库:
./dminit PATH=/dm8/dmdata DB_NAME=EP12 INSTANCE_NAME="EP12" PORT_NUM=5240
(2)初始化完成后,分别启动和停止一次 EP01主库:
./dmserver /dm8/dmdata/EP01/dm.ini
EP12备库:
cd /dm8/dmdbms/bin ./dmserver /dm8/dmdata/EP12/dm.ini
--------------------第二节点 0.102
(1)初始化实例 EP02主库:
cd /dm8/dmdbms/bin ./dminit PATH=/dm8/dmdata DB_NAME=EP02 INSTANCE_NAME="EP02" PORT_NUM=5239
EP11备库:
cd /dm8/dmdbms/bin ./dminit PATH=/dm8/dmdata DB_NAME=EP11 INSTANCE_NAME="EP11" PORT_NUM=5240
(2)初始化完成后,分别启动和停止一次 EP02主库:
cd /dm8/dmdbms/bin ./dmserver /dm8/dmdata/EP02/dm.ini
EP11备库:
cd /dm8/dmdbms/bin ./dmserver /dm8/dmdata/EP11/dm.ini
3、备份还原
(1)服务器dm01上对主库EP01脱机备份:
cd /dm8/dmdbms/bin ./dmrman ctlstmt="backup database '/dm8/dmdata/EP01/dm.ini' full to BACKUP_FILE_01 backupset '/dm8/dmdata/EP01/BACKUP_FILE_01'"
(2)将备份复制到备库EP11所在的服务器dm02
cd /dm8/dmdata/EP01 scp -r BACKUP_FILE_01/ dmdba@192.168.1.102:/dm8/dmdata/EP11
(3)服务器dm02执行脱机恢复更新 还原:
cd /dm8/dmdbms/bin ./dmrman CTLSTMT="RESTORE DATABASE '/dm8/dmdata/EP11/dm.ini' FROM BACKUPSET '/dm8/dmdata/EP11/BACKUP_FILE_01'"
恢复:
cd /dm8/dmdbms/bin ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/dmdata/EP11/dm.ini' FROM BACKUPSET '/dm8/dmdata/EP11/BACKUP_FILE_01'"
更新DB_MAGIC:
cd /dm8/dmdbms/bin ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/dmdata/EP11/dm.ini' UPDATE DB_MAGIC"
6.4.2 将EP02数据备份到EP12 (1)服务器dm02上对主库EP02脱机备份:
cd /dm8/dmdbms/bin ./dmrman ctlstmt="backup database '/dm8/dmdata/EP02/dm.ini' full to BACKUP_FILE_11 backupset '/dm8/dmdata/EP02/BACKUP_FILE_11'"
(2)将备份副本传输到备库EP12所在的服务器dm01
cd /dm8/dmdata/EP02 scp -r BACKUP_FILE_11/ dmdba@192.168.1.101:/dm8/dmdata/EP12
(3)服务器dm01执行脱机恢复更新 还原:
cd /dm8/dmdbms/bin ./dmrman CTLSTMT="RESTORE DATABASE '/dm8/dmdata/EP12/dm.ini' FROM BACKUPSET '/dm8/dmdata/EP12/BACKUP_FILE_11'"
恢复:
cd /dm8/dmdbms/bin ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/dmdata/EP12/dm.ini' FROM BACKUPSET '/dm8/dmdata/EP12/BACKUP_FILE_11'"
更新DB_MAGIC:
cd /dm8/dmdbms/bin ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/dmdata/EP12/dm.ini' UPDATE DB_MAGIC"
4、 DM MPP配置
配置两台服务器 *******4个实例 (1)配置dm.ini文件
cd /dm8/dmdata/EP01/ vi dm.ini INSTANCE_NAME = EP01 PORT_NUM = 5239 #数据库实例监听端口 DW_INACTIVE_INTERVAL = 60 #收到守护过程中的消息超时间 ALTER_MODE_STATUS = 0 实例模式/状态/状态不允许手动修改OGUID ENABLE_OFFLINE_TS = 2 #不准备库OFFLINE表空间 MAL_INI = 1 #打开MAL系统 ARCH_INI = 1 #打开归档配置 MPP_INI = 1 #打开MPP配置 RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志重演信息 cd /dm8/dmdata/EP12/ cd /dm8/dmdata/EP02/ cd /dm8/dmdata/EP11/ 两节点检查: grep -E 'INSTANCE_NAME|PORT_NUM|DW_INACTIVE_INTERVAL|ALTER_MODE_STATUS|MAL_INI|ARCH_INI|MPP_INI|RLOG_SEND_APPLY_MON' /dm8/dmdata/EP*/dm.ini
(2)配置dmmal.ini 各主库及备库 dmmal.ini 配置必须完全一致。
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 #判定MAL断开链路的时间 [MAL_INST1] MAL_INST_NAME = EP01 #实例名,和dm.ini中的INSTANCE_NAME一致 MAL_HOST = 192.168.0.101 #MAL系统监听TCP连接的IP地址 MAL_PORT = 5337 #MAL 系统监听TCP连接的端口 MAL_INST_HOST = 192.168.1.101 #实例外部服务IP地址 MAL_INST_PORT = 5239 #实例外部服务端口,和dm.ini中的PORT_NUM一致 MAL_DW_PORT = 5253 #监控实例对应的守护过程TCP连接的端口 MAL_INST_DW_PORT = 5243 #实例监控守护过程TCP连接的端口 [MAL_INST2] MAL_INST_NAME = EP02 MAL_HOST = 192.168.0.102 MAL_PORT = 5337 MAL_INST_HOST = 192.168.1.102 MAL_INST_PORT = 529
MAL_DW_PORT = 5253
MAL_INST_DW_PORT = 5243
[MAL_INST3]
MAL_INST_NAME = EP12
MAL_HOST = 192.168.0.101
MAL_PORT = 5338
MAL_INST_HOST = 192.168.1.101
MAL_INST_PORT = 5240
MAL_DW_PORT = 5254
MAL_INST_DW_PORT = 5244
[MAL_INST4]
MAL_INST_NAME = EP11
MAL_HOST = 192.168.0.102
MAL_PORT = 5338
MAL_INST_HOST = 192.168.1.102
MAL_INST_PORT = 5240
MAL_DW_PORT = 5254
MAL_INST_DW_PORT = 5244
cp /dm8/dmdata/EP01/dmmal.ini /dm8/dmdata/EP12/dmmal.ini
scp /dm8/dmdata/EP01/dmmal.ini 192.168.1.102:/dm8/dmdata/EP02/dmmal.ini
scp /dm8/dmdata/EP01/dmmal.inil 192.168.1.102:/dm8/dmdata/EP11/dmmal.ini
(3)配置dmarch.ini 修改dmarch.ini,配置实时归档。除了本地归档外,其他归档配置项中的ARCH_DEST表示实例是Primary模式时,需要同步归档数据的目标实例名。当前实例EP01是主库,需要向MPP备库EP11同步数据,因此实时归档的ARCH_DEST配置为EP11。
cd /dm8/dmdata/EP01 *******4个实例 *****
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = EP11 #实时归档目标实例名 *********************注意
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/dmdata/EP01/bak #本地归档文件存放路径 ********************注意
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 1024 #单位 Mb,0 表示无限制,范围 1024~4294967294M
cd /dm8/dmdata/EP12/ **********注意对应关系**************
cd /dm8/dmdata/EP02/
cd /dm8/dmdata/EP11/
(4)配置dmmpp.ctl dmmpp.ctl是二进制文件,由dmmpp.ini文本通过dmctlcvt工具转换而来先配置dmmpp.ini:
[service_name1]
mpp_seq_no = 0
mpp_inst_name = EP01
[service_name2]
mpp_seq_no = 1
mpp_inst_name = EP02
转换dmmpp.ini为dmmpp.ctl(bin目录下):
cd /dm8/dmdbms/bin
./dmctlcvt TYPE=2 SRC=/dm8/dmdata/EP01/dmmpp.ini DEST=/dm8/dmdata/EP01/dmmpp.ctl
cp /dm8/dmdata/EP01/dmmpp.ctl /dm8/dmdata/EP12/dmmpp.ctl
scp /dm8/dmdata/EP01/dmmpp.ctl 192.168.1.102:/dm8/dmdata/EP02/dmmpp.ctl
scp /dm8/dmdata/EP01/dmmpp.ctl 192.168.1.102:/dm8/dmdata/EP11/dmmpp.ctl
--------------------第一节点 0.101 -----配置主库EP01 (1)以mount方式启动主库
cd /dm8/dmdbms/bin
./dmserver /dm8/dmdata/EP01/dm.ini mount
(2)配置OGUID 启动命令行工具 DIsql,使用MPP类型为LOCAL方式,登录主库设置OGUID值。
cd /dm8/dmdbms/bin
./disql SYSDBA/SYSDBA@192.168.1.101:5239#"{mpp_type=local}"
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
sp_set_oguid(1393331);
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
alter database primary;
-----配置备库EP12 (3)以mount方式启动备库
cd /dm8/dmdbms/bin
./dmserver /dm8/dmdata/EP12/dm.ini mount
(4)配置OGUID 启动命令行工具DIsql,使用MPP类型为LOCAL方式,登录主库设置OGUID值。
cd /dm8/dmdbms/bin
./disql SYSDBA/SYSDBA@192.168.1.101:5240#"{mpp_type=local}"
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
sp_set_oguid(1393332);
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
ALTER DATABASE STANDBY;
--------------------第二节点 0.102 -----配置主库EP02 (1)以mount方式启动主库
cd /dm8/dmdbms/bin
./dmserver /dm8/dmdata/EP02/dm.ini mount
(2)配置OGUID 启动命令行工具DIsql,使用MPP类型为LOCAL方式,登录主库设置OGUID值。
cd /dm8/dmdbms/bin
./disql SYSDBA/SYSDBA@192.168.1.102:5239#"{mpp_type=local}"
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
sp_set_oguid(1393332);
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
alter database primary;
-----配置主库EP11 (3)以mount方式启动备库
cd /dm8/dmdbms/bin
./dmserver /dm8/dmdata/EP11/dm.ini mount
(4)配置OGUID 启动命令行工具DIsql,使用MPP类型为LOCAL方式,登录主库设置OGUID值。
cd /dm8/dmdbms/bin
./disql SYSDBA/SYSDBA@192.168.1.102:5240#"{mpp_type=local}"
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
sp_set_oguid(1393331);
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
ALTER DATABASE STANDBY;
------------------------------守护进程 dm01 dmwatcher.ini
vi /dm8/dmdata/EP01/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 1393331 #守护系统唯一OGUID值
INST_INI = /dm8/dmdata/EP01/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
[GRP2]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 1393332 #守护系统唯一OGUID值
INST_INI = /dm8/dmdata/EP12/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
dm02 dmwatcher.ini
vi /dm8/dmdata/EP02/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 1393331 #守护系统唯一OGUID值
INST_INI = /dm8/dmdata/EP11/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
[GRP2]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 1393332 #守护系统唯一OGUID值
INST_INI = /dm8/dmdata/EP02/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
-----------------起动守护进程,自动将实例open dm01:
cd /dm8/dmdbms/bin
./dmwatcher /dm8/dmdata/EP01/dmwatcher.ini
dm02:
cd /dm8/dmdbms/bin
./dmwatcher /dm8/dmdata/EP02/dmwatcher.ini
---------------------监视器
第三台机器
vi /dm8/dmdata/dmmonitor.ini
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH =/dm8/dmdbms/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 1393331 #组GRP1的唯一OGUID值
#以下配置为监视器到组GRP1的守护进程的连接信息,以―IP:PORT‖的形式配置
#IP对应dmmal.ini中的 MAL_HOST,PORT对应dmmal.ini中的 MAL_DW_PORT
MON_DW_IP = 192.168.0.101:5253
MON_DW_IP = 192.168.0.102:5254
[GRP2]
MON_INST_OGUID = 1393332 #组GRP2的唯一OGUID值
#以下配置为监视器到组GRP2的守护进程的连接信息,以―IP:PORT‖的形式配置
#IP对应 dmmal.ini 中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 192.168.0.101:5253
MON_DW_IP = 192.168.0.102:5254
----------------起动监视器
cd /dm8/dmdbms/bin
./dmmonitor /dm8/dmdata/dmmonitor.ini
------------------------------------------------注册为系统服务
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p MPPWT01 -watcher_ini /dm8/dmdata/EP01/dmwatcher.ini
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p MPPWT02 -watcher_ini /dm8/dmdata/EP02/dmwatcher.ini
------------------------------------------------测试
disql SYSDBA/SYSDBA@192.168.1.101:5239
select name from v$instance;
create table DM_TEST_0604 as select * from sysobjects;
select count(*) from DM_TEST_0604;
create user DMTS identified by "DmTS#0614";
grant resource,public to DMTS;
select * from dba_role_privs where GRANTEE='DMTS';
disql SYSDBA/SYSDBA@192.168.1.102:5240
select name from v$instance;
select count(*) from DM_TEST_0604;
select * from dba_role_privs where GRANTEE='DMTS';
---------------------------遇到问题
1、本地登录报密码错误,全局登录没问题。刚安装,密码没有修改过。
[dmdba@dm1 ~]$ disql SYSDBA/SYSDBA*local@localhost:5236
[-2501]:用户名或密码错误.
disql V8
用户名:^C
[dmdba@dm1 ~]$
[dmdba@dm1 ~]$ disql SYSDBA/SYSDBA@localhost:5236
服务器[localhost:5236]:处于普通打开状态
登录使用时间 : 11.294(ms)
disql V8
SQL>
原因:DM7和DM8的写法不一样,DM8更复杂些
./disql SYSDBA/SYSDBA@192.168.1.64:5236#“{mpp_type=local}”
2、./dmmonitor /dm8/dmdata/dmmonitor.ini 监视器报错:
dmmonitor(mid:1652601407) create link to dmwatcher(192.168.0.102:5253) error, code=-9402, please check configuration!!!
dmmonitor(mid:1652601407) create link to dmwatcher(192.168.0.102:5253) error, code=-6010, oguid or group_name mismatch, please check configuration!!!
原因: 组GRP的唯一OGUID 不匹配
第二台主机 dmwatcher.ini 写成了这样,
[GRP1]
INST_OGUID = 1393332 #守护系统唯一OGUID值
INST_INI = /dm8/dmdata/EP02/dm.ini #dm.ini配置文件路径
[GRP2]
INST_OGUID = 1393331 #守护系统唯一OGUID值
INST_INI = /dm8/dmdata/EP11/dm.ini #dm.ini配置文件路径
虽然实例 oguid能对上,但忽略了 ”[GRP1] 1393332“ 应该为 ”1393331“
到此文章结束,有不足地方,欢迎批正!
更多达梦技术资讯,请访问达梦技术社区:
达梦数据库 - 新一代大型通用关系数据库 | 达梦云适配中心
https://eco.dameng.com/