注册
达梦数据库:DM8主备集群安装_超详细!
技术分享/ 文章详情 /

达梦数据库:DM8主备集群安装_超详细!

肖鹏程 2023/08/08 1760 1 0

前期规划

1.端口规划

image.png

2.数据库初始化参数

页大小:16K
簇大小:16 
页字符集:UTF-8
字符串比较大小写敏感:是
长度以字符为单位:否
数据库名:xpcdb
实例名:xpcdb1,xpcdb2
端口:15236,25236,35236
日志文件大小:共 2 个(每个 256MB)
是否启用归档:启用

3.安装部署路径规划

image.png

DM8数据库安装

192.168.40.128/129/130

mount /dev/cdrom /mnt
su -dmdba
cd /mnt
./DMInstall.bin -i
/dm/dmdbms/dm8/script/root/root_installer.sh

image.png
image.png
image.png

实时主备集群搭建

1.创建主库实例

192.168.40.128操作

su - dmdba
cd /dm/dmdbms/dm8/bin
./dminit path=/dm/dmdata db_name=xpcdb instance_name=xpcdb1 port_num=15236 LOG_SIZE=256 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 charset=1

image.png

2.第一次启动,初始化

./dmserver /dm/dmdata/xpcdb/dm.ini

image.png

3.另开一个窗口,修改参数

disql sysdba/dameng123@192.168.40.128:15236

call SF_SET_SYSTEM_PARA_VALUE ('MAX_OS_MEMORY',95,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('MAX_SESSIONS',1000,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('MAX_SESSION_STATEMENT',5000,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER',512,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('MAX_BUFFER',1024,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER_POOLS',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('RECYCLE',512,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('RECYCLE_POOLS',1,1,2);  
call SF_SET_SYSTEM_PARA_VALUE ('HJ_BUF_GLOBAL_SIZE',500,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('HJ_BUF_SIZE',300,1,2);

call SF_SET_SYSTEM_PARA_VALUE ('DICT_BUF_SIZE',50,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('TEMP_SIZE',200,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('VM_POOL_SIZE',256,1,2);  
call SF_SET_SYSTEM_PARA_VALUE ('SESS_POOL_SIZE',256,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('CACHE_POOL_SIZE',200,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('WORKER_THREADS',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('TASK_THREADS',2,1,2);  
call SF_SET_SYSTEM_PARA_VALUE ('USE_PLN_POOL',1,1,2);  
call SF_SET_SYSTEM_PARA_VALUE ('OLAP_FLAG',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('OPTIMIZER_MODE',1,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('VIEW_PULLUP_FLAG',1,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('COMPATIBLE_MODE',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('ENABLE_MONITOR',0,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('SVR_LOG',0,1,2);

image.png
开启归档模式

ALTER DATABASE MOUNT;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm/dmarch/xpcdb,TYPE=local,FILE_SIZE=256,SPACE_LIMIT=0';
ALTER DATABASE ARCHIVELOG; 
ALTER DATABASE OPEN;
select arch_mode from v$database; 
select * from v$dm_arch_ini;

image.png
image.png

4.关库

image.png

5.备份数据库(40.128)

cd /dm/dmdbms/dm8/bin
./dmrmanbackup database '/dm/dmdata/xpcdb/dm.ini' full to xpcdb_full01 backupset '/dm/dmback/xpcdb_full01'

image.png

备份文件拷贝到192.168.40.129

cd /dm/dmback
scp -r /dm/dmback/xpcdb_full01 192.168.40.129:/dm/dmback

image.png

192.168.40.129操作

6.恢复数据库(40.129)

先初始化个实例在恢复

su - dmdba
cd /dm/dmdbms/dm8/bin
./dminit path=/dm/dmdata db_name=xpcdb instance_name=xpcdb2 port_num=25236 LOG_SIZE=256 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 charset=1

./dmrman
restore	database '/dm/dmdata/xpcdb/dm.ini' from backupset '/dm/dmback/xpcdb_full01'
recover	database '/dm/dmdata/xpcdb/dm.ini' from backupset '/dm/dmback/xpcdb_full01'
recover database '/dm/dmdata/xpcdb/dm.ini' update db_magic

image.png
image.png
image.png

7.修改配置参数-主库(40.128)

A. dm.ini

没有的参数直接在配置文件里手动添加
su - dmdba
cd /dm/dmdata/xpcdb

vi dm.ini
INSTANCE_NAME =xpcdb1	#主库实例 
PORT_NUM = 15236	#数据库实例监听端口
DW_PORT = 15237 #守护环境下,监听守护进程连接端口,为上面规划表中的MAL_INST_DW_PORT 值
DW_ERROR_TIME = 60 #接收守护进程消息超时时间 
ALTER_MODE_STATUS = 0		#不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2	#不允许备库 OFFLINE 表空间
MAL_INI = 1	    #打开 MAL 系统
ARCH_INI = 1	#打开归档配置
HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

image.png
image.png
image.png

B. dmmal.ini

vi dmmal.ini
MAL_CHECK_INTERVAL=5     #MAL链路检测时间间隔 
MAL_CONN_FAIL_INTERVAL=5 #判定MAL链路断开的时间

[MAL_INST1]
MAL_INST_NAME=xpcdb1	#实例名和dm.ini中的INSTANCE_NAME一致
MAL_HOST=192.168.40.128 #MAL系统监听TCP连接的IP地址
MAL_PORT=15239          #MAL系统监听TCP连接的端口
MAL_INST_HOST=192.168.40.128 #实例的对外服务IP地址
MAL_INST_PORT=15236     #实例的对外服务端口和dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT=15237  #实例监听守护进程TCP连接的端口 
MAL_DW_PORT=15238       #实例对应的守护进程监听TCP连接的端口

[MAL_INST2]
MAL_INST_NAME=xpcdb2	# 实例名和dm.ini中的INSTANCE_NAME一致
MAL_HOST=192.168.40.129 #MAL 系统监听TCP连接的IP地址
MAL_PORT=25239          #MAL 系统监听TCP连接的端口
MAL_INST_HOST = 192.168.40.129 #实例的对外服务IP地址
MAL_INST_PORT=25236     #实例的对外服务端口和dm.ini中的PORT_NUM 一致
MAL_INST_DW_PORT=25237  #实例监听守护进程TCP 连接的端口
MAL_DW_PORT=25238 #实例对应的守护进程监听TCP 连接的端口

image.png

C. dmarch.ini

vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME	#实时归档类型
ARCH_DEST = xpcdb2	    #实时归档目标实例名

image.png

D. dmwatcher.ini

vi dmwatcher.ini

[GRP1]
DW_TYPE = GLOBAL	     #全局守护类型
DW_MODE = AUTO	         #自动切换模式,手工MANUAL
DW_ERROR_TIME = 10	     #远程守护进程故障认定时间
INST_RECOVER_TIME = 60	 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10	 #本地实例故障认定时间
INST_OGUID = 453331	     #守护系统唯一 OGUID值
INST_INI = /dm/dmdata/xpcdb/dm.ini	#dm.ini 配置文件路径
INST_AUTO_RESTART = 1	       #打开实例的自动启动功能
INST_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver	#命令行方式启动
RLOG_SEND_THRESHOLD = 0	    #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0	#指定备库重演日志的时间阀值,默认关闭

image.png

8.修改配置参数-备库(40.129)

A. dm.ini

su - dmdba
cd /dm/dmdata/xpcdb
vi dm.ini

INSTANCE_NAME = xpcdb2	    #主库实例 
PORT_NUM = 25236	        #数据库实例监听端口
DW_PORT = 25237             #守护环境下,监听守护进程连接端口,为上面规划表中的MAL_INST_DW_PORT 值
DW_ERROR_TIME = 60          #接收守护进程消息超时时间 
ALTER_MODE_STATUS = 0		#不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2	    #不允许备库 OFFLINE 表空间
MAL_INI = 1	                #打开 MAL 系统
ARCH_INI = 1	            #打开归档配置
HA_INST_CHECK_FLAG = 1      #检测是否多个实例进程同时启动
RLOG_SEND_APPLY_MON = 64    #统计最近 64 次的日志发送信息

image.png
image.png

B. dmmal.ini

vi dmmal.ini
MAL_CHECK_INTERVAL=5     #MAL链路检测时间间隔 
MAL_CONN_FAIL_INTERVAL=5 #判定MAL链路断开的时间

[MAL_INST1]
MAL_INST_NAME=xpcdb1	#实例名和dm.ini中的INSTANCE_NAME一致
MAL_HOST=192.168.40.128 #MAL系统监听TCP连接的IP地址
MAL_PORT=15239          #MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.40.128 #实例的对外服务IP地址
MAL_INST_PORT=15236     #实例的对外服务端口和dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT=15237  #实例监听守护进程TCP连接的端口 
MAL_DW_PORT=15238       #实例对应的守护进程监听TCP连接的端口

[MAL_INST2]
MAL_INST_NAME=xpcdb2	# 实例名和dm.ini中的INSTANCE_NAME一致
MAL_HOST=192.168.40.129 #MAL 系统监听TCP连接的IP地址
MAL_PORT=25239          #MAL 系统监听TCP连接的端口MAL_INST_HOST = 192.168.40.129 #实例的对外服务IP地址
MAL_INST_PORT=25236     #实例的对外服务端口和dm.ini中的PORT_NUM 一致
MAL_INST_DW_PORT=25237  #实例监听守护进程TCP 连接的端口MAL_DW_PORT=25238 #实例对应的守护进程监听TCP 连接的端口

image.png

C. dmarch.ini

vi dmarch.ini

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME	#实时归档类型
ARCH_DEST = xpcdb1	#实时归档目标实例名

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm/dmarch/xpcdb #本地归档文件存放路径 ARCH_FILE_SIZE = 256	#单位 Mb,本地单个归档文件最大值 ARCH_SPACE_LIMIT = 0		# 单 位	Mb0	表 示 无 限 制 , 范 围 1024~4294967294M

image.png

D. dmwatcher.ini

vi dmwatcher.ini

DW_TYPE = GLOBAL	#全局守护类型
DW_MODE = AUTO		#自动切换模式, MANUAL 手工切换模式。
DW_ERROR_TIME = 10	#远程守护进程故障认定时间
INST_RECOVER_TIME = 60	#主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10	#本地实例故障认定时间
INST_OGUID = 453331	#守护系统唯一 OGUID值
INST_INI = /dm/dmdata/xpcdb/dm.ini	#dm.ini 配置文件路径
INST_AUTO_RESTART = 1	#打开实例的自动启动功能
INST_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver	#命令行方式启动
RLOG_SEND_THRESHOLD = 0	#指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0	#指定备库重演日志的时间阀值,默认关闭

image.png

9.注册服务-主库(40.128),配置OGUID,修改数据库模式

root用户

cd /dm/dmdbms/dm8/script/root/
./dm_service_installer.sh -t dmserver  -dm_ini /dm/dmdata/xpcdb/dm.ini -p xpcdb
./dm_service_installer.sh -t dmwatcher	-watcher_ini /dm/dmdata/xpcdb/dmwatcher.ini -p xpcdb

image.png
image.png
dmdba用户 手工以mount方式起

su - dmdba
cd /dm/dmdbms/dm8/bin
./dmserver /dm/dmdata/xpcdb/dm.ini mount

image.png

另开一个窗口,改模式为主

disql SYSDBA/dameng123@192.168.40.128:15236

select status$ from v$database;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331); 
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit;

image.png
image.png
先起数据库服务,再起守护进程服务

DmServicexpcdb start
DmWatcherServicexpcdb start
ps -ef | grep dmserver
ps -ef | grep dmwatcher

image.png
image.png

10.注册服务-备库(40.129),配置OGUID,修改数据库模式

root用户

cd /dm/dmdbms/dm8/script/root/
./dm_service_installer.sh -t dmserver  -dm_ini  /dm/dmdata/xpcdb/dm.ini -p xpcdb
./dm_service_installer.sh -t dmwatcher -watcher_ini  /dm/dmdata/xpcdb/dmwatcher.ini -p xpcdb

image.png

dmdba用户 手工以mount方式起

su - dmdba
cd /dm/dmdbms/dm8/bin
./dmserver /dm/dmdata/xpcdb/dm.ini mount

image.png

另开一个窗口,改模式为备

su - dmdba
disql SYSDBA/dameng123@192.168.40.129:25236 
select status$ from v$database;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331); 
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

性能优化参数备份一起改
call SF_SET_SYSTEM_PARA_VALUE ('MAX_OS_MEMORY',95,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('MAX_SESSIONS',1000,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('MAX_SESSION_STATEMENT',5000,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER',512,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('MAX_BUFFER',1024,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER_POOLS',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('RECYCLE',512,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('RECYCLE_POOLS',1,1,2);  
call SF_SET_SYSTEM_PARA_VALUE ('HJ_BUF_GLOBAL_SIZE',500,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('HJ_BUF_SIZE',300,1,2);

call SF_SET_SYSTEM_PARA_VALUE ('DICT_BUF_SIZE',50,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('TEMP_SIZE',200,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('VM_POOL_SIZE',256,1,2);  
call SF_SET_SYSTEM_PARA_VALUE ('SESS_POOL_SIZE',256,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('CACHE_POOL_SIZE',200,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('WORKER_THREADS',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('TASK_THREADS',2,1,2);  
call SF_SET_SYSTEM_PARA_VALUE ('USE_PLN_POOL',1,1,2);  
call SF_SET_SYSTEM_PARA_VALUE ('OLAP_FLAG',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('OPTIMIZER_MODE',1,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('VIEW_PULLUP_FLAG',1,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('COMPATIBLE_MODE',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('ENABLE_MONITOR',0,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('SVR_LOG',0,1,2);

image.png
image.png
image.png
image.png

先起数据库服务,再起守护进程服务

DmServicexpcdb start
DmWatcherServicexpcdb start
ps -ef | grep dmserver
ps -ef | grep dmwatcher

image.png
发现报错,报错dmmal.ini 未配置MAL_DW_PORT,添加后启动成功

11.配置监视器服务器dmmonitor

192.168.40.130操作

su - dmdba
mkdir /dm/dmdbms/dm8/data
vi /dm/dmdbms/dm8/data/dmmonitor.ini
MON_DW_CONFIRM = 1                #确认监视器模式
MON_LOG_PATH = /dm/dmdbms/dm8/log #监视器日志文件存放路径 
MON_LOG_INTERVAL = 60             #每隔 60s 定时记录系统信息到日志文件 
MON_LOG_FILE_SIZE = 32            #每个日志文件最大 32M 
MON_LOG_SPACE_LIMIT = 0           #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331           #组 GRP1 的唯一 OGUID 值 
MON_DW_IP = 192.168.40.128:15238
MON_DW_IP = 192.168.40.129:25238
#配置为监视器到组 GRP1 的守护进程的连接信息,以IP:PORT的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST, PORT 对应 dmmal.ini 中的 MAL_DW_PORT

image.png

注册服务

root用户

su - root

cd /dm/dmdbms/dm8/script/root
./dm_service_installer.sh -t dmmonitor -monitor_ini /dm/dmdbms/dm8/data/dmmonitor.ini -p xpcdb 

启动监视服务

后台起:
su - dmdba
DmMonitorServicexpcdb start
ps -ef|grep dm

image.png
image.png

前台:
DmMonitorServicexpcdb stop
/dm/dmdbms/dm8/bin/dmmonitor path=/dm/dmdbms/dm8/data/dmmonitor.ini

image.png

https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服