安装数据库
数据库的安装请移步到 达梦数据库的简单使用
注意,在进行数据库实例创建等操作时按照之前自己的安装计划对数据库来配置,比如数据库名、端口号等对后续操作有影响。
集群搭建
按照这个步骤可能会报错 搭建监视器集群状态会为mount
查看 /dm8/log/dmwatcher日志
报错 :but apply info mismatch
解决办法 把第一步挪到第二步后面做 或者做完后再重做第一步和第三步 就可以把集群装态改为open状态
数据初始化
主库)使用dmrman进行全备,并将备份发给备库
由于搭建主备集群要求数据库数据完全一致,因此采用主库全备,备库使用主库全备还原的方法来保证一致性。
1.对主库DM1进行脱机备份
在bin目录中,使用脱机备份工具dmrman,指定备份文件名backuptest(名字自取),输入命令:
./dmrman ctlstmt="backup database '/dm8/data/DMDB/dm.ini' full to backuptest backupset '/dm8/data/DMDB/backuptest'"
读对备库DM2进行备份还原与更新
在主库中,将备份文件发给备库,如果备库dmdba用户没有设置密码,就用root用户来操作,在ip地址前加root@:
scp -r ../backuptest/ 192.168.197.130:/dm8/data/DMDB/
切换至备库,使用root用户给备份文件授权,
chown -R dmdba:dinstall backuptest
备库切换用户至dmdba,到dmdbms/bin目录中使用dmrman工具进行备份还原与更新。
还原指令:./dmrman ctlstmt="restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/DMDB/backuptest'"
恢复指令:./dmrman ctlstmt="recover database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/DMDB/backuptest'"
更新db_magic: ./dmrman ctlstmt="recover database '/dm8/data/DMDB/dm.ini' update db_magic"
备份还原操作是为了确保主备库完全同步,这个操作是整个主备集群搭建的基础。
2.配置主库DM1和备库DM2
先找到主备库的/DAMENG/dm.ini文件,进行修改。
vi dm.ini 修改以下配置: INSTANCE_NAME=DM1(备库为DM2) ARCH_INI=1 MAL_INI=1 ALTER_MODE_STATUS= 0 ENABLE_OFFLINE_TS = 2
在主库的DMDB目录里配置dmmal.ini文件,要注意下主备库的ip地址和各端口号。
vim dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM1
MAL_HOST =192.168.197.128
MAL_PORT = 61141
MAL_INST_HOST = 192.168.197.128
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = DM2
MAL_HOST = 192.168.197.130
MAL_PORT = 61142
MAL_INST_HOST = 192.168.197.130
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
在该目录下配置dmarch.ini文件,配置本地归档和实时归档
[root@localhost DMDB]# vim dmarch.ini
ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM2
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/data/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 2048
在该目录下配置dmwatcher.ini文件
[root@localhost DMDB]# vi dmwtcher.ini
[GRP01]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dm8/data/DMDB/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
将以上配置文件发送到备库DM2里:
scp /dm8/data/DMDB/ 192.168.197.130:/dm8/data/DMDB/
3.处理好配置文件后,要配置主备库的OGUID。
先进入bin目录,然后以mount开启主库,
[root@localhost DMDB]# cd /dm8/bin
[root@localhost bin]# ./dmserver /dm8/data/DMDB/dm.ini mount
新开一个窗口,切换dmdba用户,进入bin目录,用达梦系统管理员SYSDBA打开disql工具。
[root@localhost bin]# ./disql SYSDBA/SYSDBA
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',1); #打开修改模式
sp_set_oguid(453331); #修改oguid
主库:alter database primary;
备库:alter database standby
关闭修改权限:SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',0);
完成后退出
4.注册启动服务和守护服务
主备库切换root用户,进入dmdbms/script/root中注册实例服务。
注册主库实例服务:
[root@localhost bin]# cd /dm8/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMDB/dm.ini -m mount -p DM1
注册主库守护进程服务:
[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DMDB/dmwtcher.ini -p DM1
注册备库实例服务:
[root@localhost bin]# cd /dm8/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMDB/dm.ini -m mount -p DM2
注册备库守护进程:
[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DMDB/dmwtcher.ini -p DM2
4..配置确认监视器
由于是自行练习搭建主备集群,所以监视器可以直接配置在备库上,也可以单独开一个服务器用于监视,以下操作是在备库上进行。
使用dmdba用户,在主库中创建/dm8/dmmonitor.ini文件,配置如下:
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /dm/dmdbms/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP01]
MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 192.168.1.1:54141
MON_DW_IP = 192.168.2.2:52142
[root@localhost bin]# su dmdba
之前的mount模式在修改完oguid后就可以退出了
启动前记得在授权一次否者可能会启动错误
[root@localhost bin]# chown -R dmdba.dinstall /dm8
启动各个主备库各个进程,启动顺序为:
主库实例(DmServiceDM1)——备库实例(DmServiceDM2)——主库守护进程(DmWatcherServiceDM1)——备库守护进程(DmWatcherServiceDM2)——监视器服务(DmMonitorServiceDM)
关闭应该反着来
集群关闭顺序为:
监视器服务(DmMonitorServiceDM)——备库守护进程(DmWatcherServiceDM2)——主库守护进程(DmWatcherServiceDM1)——主库实例(DmServiceDM1)——备库实例(DmServiceDM2)
主库实例
备库实例
主库守护
备库守护
监视进程
前台模式 没必要注册服务进行打开因为本来监视就实验前台看
最后进入bin目录打开监视器。
[dmdba@localhost bin]$ ./dmmonitor /dm8/data/DMDB/dmmonitor.ini