DM8读写分离集群配置

网友投稿 861 2022-08-30

DM8读写分离集群配置

DM8读写分离集群配置

一、服务器环境说明

本次准备3台服务器用于安装DM8主备集群,数据库软件安装在/dm8目录下,具体规化如下:

主库

主机名:DM8-P  IP地址: 10.4.8.225

备库

主机名:DM8-S     IP地址: 10.4.8.226

监视器

主机名:DM8-M   IP地址:10.4.8.227

数据库名、实例名、端口规化如下:

数据库

实例名 

实例端口

PORT_NUM

 本地实例守护进程端口MAL_INST_DW_PORT

MAL系统端口 MAL_PORT  

守护进程监听端口MAL_DW_PORT

DMDB

DB_RT_01  

    5237     

52225

55225

65225

DMDB

DB_RT_02  

    5237     

52226

55226

65226

二、安装前准备工作

为了更方便的使用disql,安装rlwrap-0.37.tar.gz包,大概安装步骤如下

yum install -y readline*               #安装依赖包

tar -xf rlwrap-0.37.tar.gz

cd rlwrap-0.37/

./configure

make && make install

安装完成后,配置dmdba用户.bash_profile文件,增加如下配置

三、在主和备库服务器上初始化实例

主库实例初始化

./dminit path=/dm8/data/ DB_NAME=DMDB INSTANCE_NAME=DB_RT_01  PORT_NUM=5237

备库实例初始化

./dminit path=/dm8/data/ DB_NAME=DMDB INSTANCE_NAME=DB_RT_02  PORT_NUM=5237

初始化完成实例后,查看端口号和实例名称是否正确(主和备都要查看)

四、备份主库,将备份文件拷贝到备服务器

1、备份主库

cd /dm8/bin

./dmserver /dm8/data/DMDB/dm.ini

启动完成后,CTRL+C结束进程,进行备份

创建备份目录

mkdir /dm8/backup

进行全备

dmrman

>BACKUP DATABASE '/dm8/data/DMDB/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/BACKUP_FILE_01'

查看并拷贝备份

cd /dm8/backup

scp -rp BACKUP_FILE_01/ 10.4.8.226:/dm8/backup

注:确保备服务器的/dm8目录下有backup目录

2、备库上恢复

cd /dm8/bin

./dmserver /dm8/data/DMDB/dm.ini

启动完成后,CTRL+C结束进程,进行备份

dmrman

>RESTORE DATABASE '/dm8/data/DMDB/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE_01/'

>RECOVER DATABASE '/dm8/data/DMDB/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE_01/'

>RECOVER DATABASE '/dm8/data/DMDB/dm.ini' UPDATE DB_MAGIC

五、修改配置文件

1、修改主库配置文件

1.1修改dm.ini文件

修改完成后查看

grep -Eiw 'port_num|instance_name|dw_inactive_interval|alter_mode_status|enable_offline_ts|mal_ini|arch_ini|rlog_send_apply_mon' dm.ini

1.2创建dmmal.ini文件

[dmdba@dm8-1 DMDW]$ cat >> dmmal.ini << EOF

MAL_CHECK_INTERVAL = 5

MAL_CONN_FAIL_INTERVAL = 5

[MAL_INST1]

MAL_INST_NAME = DB_RT_01

MAL_HOST = 10.4.8.225

MAL_PORT = 55225

MAL_INST_HOST = 10.4.8.225

MAL_INST_PORT = 5237

MAL_DW_PORT = 65225

MAL_INST_DW_PORT = 52225

[MAL_INST2]

MAL_INST_NAME = DB_RT_02

MAL_HOST = 10.4.8.226

MAL_PORT = 55226

MAL_INST_HOST = 10.4.8.226

MAL_INST_PORT = 5237

MAL_DW_PORT = 65226

MAL_INST_DW_PORT = 52226

注:修改IP和端口为服务器真实规化IP地址和端口

1.3创建dmarch.ini文件

注:红色字体部分是主备配置不一样的地方,主上写备的实例名,备上写主的实例名,注意/dm8/arch目录是否创建

[dmdba@dm8-1 DMDW]$ cat >> dmarch.ini << EOF

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = DB_RT_02

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm8/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

1.4创建dmwatcher.ini文件

[dmdba@dm8-1 DMDW]$ cat >> dmwatcher.ini << EOF

[DBRT1]

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

1.5以mount方式启动主库

cd /dm8/bin

[dmdba@dm8-1 ~]$ dmserver /dm8/data/DMDB/dm.ini mount

1.6主库启动后的修改

[dmdba@dm8-1 tool]$ ./disql sysdba/SYSDBA@localhost:5237

disql V8

SQL> conn sysdba/SYSDBA@localhost:5237

服务器[localhost:5256]:处于主库打开状态

注:如果输入disql进入后,提示未连接,使用conn 再连接一次

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

SQL>sp_set_oguid(453331);

SQL>alter database primary;

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

2、修改备库配置文件

2.1修改dm.ini配置文件

修改内容和主库一样

grep -Eiw 'port_num|instance_name|dw_inactive_interval|alter_mode_status|enable_offline_ts|mal_ini|arch_ini|rlog_send_apply_mon' dm.ini

2.2 修改其余3个文件

主库和备库的dmmal.ini和dmwatcher.ini文件内容一样,只有dmarch.ini存在一点差异,从主库上scp这三个文件到到备库,只修改dmarch.ini

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = DB_RT_01

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm8/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

2.3以mount方式启动备库

cd /dm8/bin

[dmdba@dm8-2 ~]$ dmserver /dm8/data/DMDB/dm.ini mount

2.4备库启动后的修改

注:如果disql登录后,提示未连接,处理如上conn

disql sysdba/SYSDBA@localhost:5237

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);

3、启动dmwatcher

3.1主服务器上启动dmwatcher

dmwatcher /dm8/data/DMDB/dmwatcher.ini

3.2备服务器启动dmwatcher

dmwatcher /dm8/data/DMDB/dmwatcher.ini

四、监视器配置

在主和备库上完成配置,启以mount方式启动了实例和启动了守护进程后,在DM-M服务器上操作,创建dmmonitor.ini文件

cd /dm8

mkdir /dm8/data/log -p

cat >>dmmonitor.ini << EOF

MON_DW_CONFIRM = 1

MON_LOG_PATH = /dm8/data/log

MON_LOG_INTERVAL = 60

MON_LOG_FILE_SIZE = 32

MON_LOG_SPACE_LIMIT = 0

[DBRT1]

MON_INST_OGUID = 453331

MON_DW_IP = 10.4.8.225:65225

MON_DW_IP = 10.4.8.226:65226

启动监视器

dmmonitor /dm8/dmmonitor.ini

启动后可用show查看相应的状态,WSTATUS为OPEN,WCTLSTAT为VALID 代表配置成功

五、测试主备集群

主备上操作

备库上查看

六、注册自动启动服务

在主库和备库上注册实例服务、守护进程服务开机自启(DM-P和DM-S)

以下操作都要以root身份执行

cd /dm8/script/root

实例

主库

./dm_service_installer.sh -t dmserver -p DB_RT_01 -m mount -dm_ini /dm8/data/DMDB/dm.ini

systemctl enable DmServiceDB_RT_01

备库

./dm_service_installer.sh -t dmserver -p DB_RT_02 -m mount -dm_ini /dm8/data/DMDB/dm.ini

systemctl enable DmServiceDB_RT_02

守护进程

./dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /dm8/data/DMDB/dmwatcher.ini

systemctl enable DmWatcherServiceDMWATCHER

在监视器服务器上注册监视器服务开机自启(DM-M)

监视器

./dm_service_installer.sh -t dmmonitor -p DMMONITOR -monitor_ini /dm8/dmmonitor.ini

systemctl enable DmMonitorServiceDMMONITOR

完成以上配置后,重启3台服务器,查看服务是否能正常启动,实例状态是否正常

实时主备集群重启有顺序要求:

1、关闭监视器

2、关闭主库守护进程

3、关闭备库守护进程

4、关闭主库实例

5、关闭备库实例

6、启动主库实例 (mount)

7、启动备库实例 (mount)

8、启动主库守护进程 (open)

9、启动备库守护进程 (open)

10、启动监视器

重启后查看主、备、监视器服务运行正常,登录数据库状态正常

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:大数据平台之数据存储
下一篇:Matlab转C++代码入门————附带详细代码和示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~