注册
达梦DCP学习分享 [内含相关命令用法]
专栏/培训园地/ 文章详情 /

达梦DCP学习分享 [内含相关命令用法]

Wistry Ng 2024/03/27 654 0 0
摘要

个人比较推荐通过命令行去学习整个达梦体系知识,因为企业大部分都是通过Linux为系统底层作为服务器去使用,只要学会了通过命令行安装,部署集群,那图形化界面的东西基本上就学会了。

在DCP的考试中,前面的题目看着不多,但是消耗的时间是比较多的。前面的题目消耗的时间多了,最后搭建数据守护集群以及调试问题的时间就会不够(大概需要一个小时左右,时间比较紧迫)。

集群搭建不难,主要是配置文件需要手敲会比较麻烦,所以共用的文件都可以通过工具直接从主机传输到备机,再进行微调即可。

配置/dm8/data/DMDB/dm.ini

配置主库的实例名为 GRP1_RT_01,dm.ini 参数修改如下:

dm.ini
##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16

INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 32141              ##数据库实例监听端口
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次的日志发送信息

========================

配置/dm8/data/DMDB/dmmal.ini

主备都要配置该ini文件

# dmmal.ini

MAL_CHECK_INTERVAL = 5              ##MAL链路检测时间间隔

MAL_CONN_FAIL_INTERVAL = 5          ##判定MAL链路断开的时间

[MAL_INST1]

    MAL_INST_NAME = GRP1_RT_01      ##实例名,和dm.ini中的INSTANCE_NAME一致

    MAL_HOST = 192.168.11.101       ##MAL系统监听TCP连接的IP地址

    MAL_PORT = 61141                ##MAL系统监听TCP连接的端口

    MAL_INST_HOST = 192.168.1.151   ##实例的对外服务IP地址

    MAL_INST_PORT = 32141           ##实例的对外服务端口,和dm.ini中的PORT_NUM一致

    MAL_DW_PORT = 52141             ##实例本地的守护进程监听TCP连接的端口

    MAL_INST_DW_PORT = 33141        ##实例监听守护进程TCP连接的端口

[MAL_INST2]

    MAL_INST_NAME = GRP1_RT_02

    MAL_HOST = 192.168.11.103

    MAL_PORT = 61142

    MAL_INST_HOST = 192.168.27.153

    MAL_INST_PORT = 32142

    MAL_DW_PORT = 52142

    MAL_INST_DW_PORT = 33142

========================

配置/dm8/data/DMDB/dmarch.ini

主备都要配置该ini文件

dmarch.ini

# GRP1_RT_01主机配置如下
[ARCHIVE_REALTIME]

    ARCH_TYPE = REALTIME                ##实时归档类型

    ARCH_DEST = GRP1_RT_02              ##实时归档目标实例名,主库向备库归档

[ARCHIVE_LOCAL1]

    ARCH_TYPE = LOCAL                   ##本地归档类型

    ARCH_DEST = /dm8/data/DMDB/arch   ##本地归档文件存放路径

    ARCH_FILE_SIZE = 128                ##单位Mb,本地单个归档文件最大值

    ARCH_SPACE_LIMIT = 0                ##单位Mb,0表示无限制,范围1024~2147483647M


# GRP1_RT_02主机配置如下
[ARCHIVE_REALTIME]

    ARCH_TYPE = REALTIME                ##实时归档类型

    ARCH_DEST = GRP1_RT_01              ##实时归档目标实例名,备库向主库归档

[ARCHIVE_LOCAL1]

    ARCH_TYPE = LOCAL                   ##本地归档类型

    ARCH_DEST = /dm8/data/DMDB/arch   ##本地归档文件存放路径

    ARCH_FILE_SIZE = 128                ##单位Mb,本地单个归档文件最大值

    ARCH_SPACE_LIMIT = 0                ##单位Mb,0表示无限制,范围1024~2147483647M

========================

配置dmwatcher.ini (守护进程)

主备都要配置该ini文件

[GRP1]

    DW_TYPE = GLOBAL                    ##全局守护类型

    DW_MODE = AUTO                      ##自动切换模式

    DW_ERROR_TIME = 10                  ##远程守护进程故障认定时间

    INST_RECOVER_TIME = 60              ##主库守护进程启动恢复的间隔时间

    INST_ERROR_TIME = 10                ##本地实例故障认定时间

    INST_OGUID = 453331                 ##守护系统唯一OGUID值

    INST_INI = /dm8/data/DMDB/dm.ini  ##dm.ini配置文件路径

    INST_AUTO_RESTART = 1               ##打开实例的自动启动功能

    INST_STARTUP_CMD = /dm8/bin/dmserver    ##命令行方式启动

    RLOG_SEND_THRESHOLD = 0             ##指定主库发送日志到备库的时间阈值,默认关闭

    RLOG_APPLY_THRESHOLD = 0            ##指定备库重演日志的时间阈值,默认关闭

===========

快速传递文件

上面的文件都可以通过linux的自带工具"scp"在主备主机之间互相传递
e.g: scp /dm8/data/DMDB/dmarch.ini root@192.168.x.x:/dm8/data/DMDB/dmarch.ini

使用的前提是主机之间的网络通信需要正常互通。

可以通过disql工具或者图形化工具(manager)来配置数据库的参数

设置 OGUID 的步骤(非常重要):

# 步骤1 主备库都需要做调整,调整设置数据库模式为可以手动修改:
/dm8/bin/disql SYSDBA/SYSDBA@192.168.x.x:32141
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
或者
/dm8/tool/manager
CALL SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);

# 步骤2 修改数据库运行状态:
/dm8/bin/disql
ALTER DATABASE MOUNT;
或者
/dm8/tool/manager
ALTER DATABASE MOUNT;

# 步骤3 设置 OGUID 很重要,主备的设置需要完全相同
/dm8/bin/disql
SP_SET_OGUID(453331);
或者
/dm8/tool/manager
CALL SP_SET_OGUID(453331);

# 步骤4 修改主库模式为PRIMARY
ALTER DATABASE PRIMARY;

# 步骤4 修改备库模式为STANDBY
ALTER DATABASE STANDBY;

# 步骤5 主备库都需要做调整,调整设置数据库模式为不能手动修改:
/dm8/bin/disql
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
或者
/dm8/tool/manager
CALL SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

配置dmmonitor.ini

monitor监视器

/dm8/dmmonitor.ini(不存在则创建配置文件)

MON_DW_CONFIRM = 1                    ##确认监视器模式

MON_LOG_PATH = /dm8/data/log          ##监视器日志文件存放路径

MON_LOG_INTERVAL = 60                 ##每隔60s定时记录系统信息到日志文件

MON_LOG_FILE_SIZE = 32                ##每个日志文件最大32M

MON_LOG_SPACE_LIMIT = 0               ##不限定日志文件总占用空间

[GRP1]

        MON_INST_OGUID = 453331 ##组GRP1的唯一OGUID值

        ##以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置
        ##IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT

        MON_DW_IP = 192.168.11.101:52141

        MON_DW_IP = 192.168.11.103:52142

如果/dm8/data/log不存在,那么可以通过
mkdir -p /dm8/data/log
直接创建

  1. 特别要注意防火墙的问题,可能会导致dmmonitor无法监控到主备的dmwatcher
  2. 遇到WCTLSTAT 为 SPLIT(脑裂)状态,需要进行数据库之间的备份与恢复

相关可能用到的命令

ps -ef |grep DM

# 查看与用户dmdba有关的进程
ps -ef |grep dmdba

# 关闭多个指定进程,多个进程ID用空格相连
kill -9 [进程ID] ...id

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服