主备集群部署

搭建守护集群一般需要三台机器,一台主机,一台备机,一台监控器。

1.安装数据库准备工作(三台都需要)

1.建立dmdba用户

  1. 创建用户

groupadd dinstall -g 2001
  1. 设置用户组

useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
  1. 修改密码

passwd dmdba

2.修改文件打开数

vim /etc/security/limits.conf

 
dmdba  soft      nice       0
dmdba  hard      nice       0
dmdba  soft      as         unlimited
dmdba  hard      as         unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nproc      65536
dmdba  hard      nproc      65536
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited

  1. 创建相应目录

 
##实例保存目录
mkdir -p /dmdata/data 
##归档保存目录
mkdir -p /dmdata/arch
##备份保存目录
mkdir -p /dmdata/dmbak
  1. 授权

 
chown -R dmdba:dinstall /dmdata/
chmod -R 755  /dmdata/

2.安装数据库

  1. 挂载镜像(root)

镜像下载地址DM8下载

 
cd /opt mount -o loop dm8_20240116_x86_rh7_64.iso /mnt

  1. 命令行安装(dmdba)

 
su - dmdba cd /mnt ./DMInstall.bin -i

  1. 创建APservice服务(root)

 
/home/dmdba/dmdbms/script/root/root_installer.sh ##创建 DmAPService,

3.守护集群数据准备

这里我对内对外服务都用同一个IP。

机器名IP 地址初始状态备注
DW_P192.168.75.205 192.168.75.205主库 GRP1_RT_01192.168.75.205 外部服务 IP;
192.168.75.205 内部通信 IP
DW_S1192.168.75.206 192.168.75.206备库 GRP1_RT_02192.168.75.206 外部服务 IP;
192.168.75.206 内部通信 IP
DW_M192.168.75.200确认监视器
实例名PORT_NUMMAL_INST_DW_PORTMAL_HOSTMAL_PORTMAL_DW_PORT
GRP1_RT_013214133141192.168.75.2056114152141
GRP1_RT_023214233142192.168.75.2066114252142

1.初始化实例

DW_P 机器上初始化主库至目录/dmdata/data:

 
cd /home/dmdba/dmdbms/bin /dminit path=/dmdata/data

DW_S1 机器上初始化备库至目录/dmdata/data:

 
cd /home/dmdba/dmdbms/bin ./dminit path=/dmdata/data

2.联机备份,脱机还原

  1. 开启归档。

指定归档路径为/dmdata/arch

  1. 对主库进行备份操作

 
SQL> BACKUP DATABASE BACKUPSET '/dmdata/data/BACKUP_FILE_01';

  1. 拷贝数据到备机

  1. 脱机还原

 
cd   /home/dmdba/dmdbms/bin
./DmServiceDMSERVER   stop
./dminit

 
restore database '/dmdba/data/DAMENG/dm.ini' from backupset '/dmdata/data/BACKUP_FILE_01';
recover database '/dmdba/data/DAMENG/dm.ini' from backupset '/dmdata/data/BACKUP_FILE_01';
recover database '/dmdba/data/DAMENG/dm.ini' update DB_MAGIC;

4.配置主库 GRP1_RT_01

1.配置 dm.ini

 
cd dmdba/data/DAMENG
vim  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次的日志发送信息

2.配置 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.75.205                 ##MAL系统监听TCP连接的IP地址

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

        MAL_INST_HOST = 192.168.75.205        ##实例的对外服务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.75.206

        MAL_PORT = 61142

        MAL_INST_HOST = 192.168.75.206

        MAL_INST_PORT = 32142

        MAL_DW_PORT = 52142

        MAL_INST_DW_PORT = 33142

3.配置 dmarch.ini

 
[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME                                 ##实时归档类型

ARCH_DEST = GRP1_RT_02                                 ##实时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL                                         ##本地归档类型

ARCH_DEST = /dmdata/arch         ##本地归档文件存放路径

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

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

4. 配置 dmwatcher.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 = /dmdata/data/DAMENG/dm.ini         ##dm.ini配置文件路径

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

INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver        ##命令行方式启动

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

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

5.启动主库

 
cd /home/dmdba/dmdbms/bin 
./dmserver /dmdata/data/DAMENG/dm.ini mount

6.配置 OGUID

 
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>sp_set_oguid(453331);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

7.修改主库模式

 
SQL>alter database primary;

5.设置备库GRP1_RT_02

1.配置 dm.ini

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

INSTANCE_NAME = GRP1_RT_02

PORT_NUM = 32142                                 ##数据库实例监听端口

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 = GRP1_RT_01                 ##实例名,和dm.ini中的INSTANCE_NAME一致

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

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

        MAL_INST_HOST = 192.168.75.205         ##实例的对外服务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.75.206

        MAL_PORT = 61142

        MAL_INST_HOST = 192.168.75.206

        MAL_INST_PORT = 32142

        MAL_DW_PORT = 52142

        MAL_INST_DW_PORT = 33142

3.配置dmarch.ini

 
[ARCHIVE_REALTIME]

        ARCH_TYPE = REALTIME                                 ##实时归档类型

        ARCH_DEST = GRP1_RT_01                                 ##实时归档目标实例名

[ARCHIVE_LOCAL1]

        ARCH_TYPE = LOCAL                                         ##本地归档类型

        ARCH_DEST = /dmdata/arch        ##本地归档文件路径

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

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

4.配置dmwatcher.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 = /dmdata/data/DAMENG/dm.ini##dm.ini配置文件路径

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

        INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver ##命令行方式启动

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

5.启动备库

 
cd /home/dmdba/dmdbms/bin
./dmserver  /dmdata/data/DAMENG/dm.ini  mount

6.设置OGUID

 
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>sp_set_oguid(453331);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

7.修改数据库模式

 
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);         //第1步
SQL>alter database standby;                               //第2步
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);         //第3步

6.配置监视器

1.修改 dmmonitor.ini 配置

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

MON_LOG_PATH = /dmdata/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.75.205:52141

        MON_DW_IP = 192.168.75.206:52142

7.启动集群

1.启动主备的守护进程

 
cd /home/dmdba/dmdbms/bin
./dmwatcher /dmdata/data/DAMENG/dmwatcher.ini

2.启动监视器

 
./dmmonitor/dmdata/data/DAMENG/dmmonitor.ini

3.开启关闭顺序

  1. 集群关闭顺序

退出监视器

关闭备机的守护进程

关闭主机的守护进程

关闭主机实例

关闭备机实例

  1. 集群开启顺序

开启主机实例

开启备机实例

开启备机的守护进程

开启主机的守护进程

开启监视器

8.配置脚本启动服务

1.配置实例启动脚本(主备都可操作)

 
cd  /home/dmdba/dmdbms/bin
cp DmServiceDMSERVER  DmServiceGRP1_RT_01            ##这里可以根据实例进行命名

 
vim  DmServiceGRP1_RT_01

START_MODE=mount        ##修改状态为mount状态

2.配置守护进程脚本

 
cd  /home/dmdba/dmdbms/bin/service_template
 cp DmWatcherService   ../
 cd ..
 
vim DmWatcherService
INI_PATH=/dmdata/data/DAMENG/dmwatcher.ini    ##指定配置文件路径。

3.启动集群服务

1.启动实例

 
cd  /home/dmdba/dmdbms/bin
./DmServiceGRP1_RT_01  start

2.启动守护进程

 
cd  /home/dmdba/dmdbms/bin
./DmWatcherService  start

这个错误是由于无法连接到本地主机的10248端口导致的。这个端口通常是kubelet进程监听的端口,用于健康检查。出现这个错误可能是由于kubelet进程没有正确启动或者配置错误导致的。 解决这个问题的方法是检查kubelet进程的状态和配置。你可以按照以下步骤进行操作: 1. 检查kubelet进程是否正在运行。你可以使用以下命令检查kubelet进程的状态: ```shell systemctl status kubelet ``` 如果kubelet进程没有运行,你可以使用以下命令启动它: ```shell systemctl start kubelet ``` 2. 检查kubelet的配置文件。你可以使用以下命令查看kubelet的配置文件路径: ```shell kubelet --kubeconfig /etc/kubernetes/kubelet.conf --config /var/lib/kubelet/config.yaml --bootstrap-kubeconfig /etc/kubernetes/bootstrap-kubelet.conf config view ``` 确保配置文件中的端口号和地址正确,并且与你的环境相匹配。 3. 检查网络连接。你可以使用以下命令检查是否可以连接到localhost10248端口: ```shell curl -sSL http://localhost:10248/healthz ``` 如果无法连接,请确保端口没有被防火墙或其他网络配置阻止。 4. 检查docker的配置。有时候,kubelet进程依赖于docker进程。你可以按照以下步骤检查docker的配置: - 创建/etc/docker目录: ```shell sudo mkdir /etc/docker ``` - 编辑/etc/docker/daemon.json文件,并添加以下内容: ```json { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ], "registry-mirrors": ["https://tdhp06eh.mirror.aliyuncs.com"] } ``` - 重启docker进程: ```shell systemctl restart docker ``` 请注意,以上步骤是一种常见的解决方法,但具体解决方法可能因环境而异。如果以上步骤无法解决问题,请提供更多的错误信息和环境配置,以便我们能够更好地帮助你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值