




























MySQL Cluster 是由MySQL官方提供的一个集群平台,由一组计算机构成,适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。
MySQL NDB cluster主要由三种类型的服务组成:
MySQL Cluster集群 的架构如下:
针对MySQL集群,可以使用Oracle GoldenGate进行数据的实时抽取和投递。本文就MySQL Cluster的安装及GoldenGate抽取配置进行简单说明。
GoldenGate建议部署架构
以上架构中,OGG部署在NFS存储上,任何一个SQL节点可以启动OGG,并在本节点当掉之后,从其它的SQL节点也可以继续运行OGG,从而确保OGG在MySQL集群中的高可用。本测试中,为了简化步骤,直接将OGG部署到SQL Node1上,未实现OGG的高可用。
测试环境:
Mgm-server:mgt, 192.168.164.10
Sql node 1: sql1, 192.168.164.11
Sql node 2: sql2, 192.168.164.12
Data node1: data1, 192.168.164.21
Data node2: data2, 192.168.164.22
每个节点先关闭防火墙:
# systemctl disable firewalld
并根据上面的主机名和IP配置/etc/hosts。
下载MySQL NDB Cluster:https://dev.mysql.com/downloads/cluster/
所有节点使用同一份安装介质。
# tar -xvf mysql-cluster-gpl-7.5.16-linux-glibc2.12-x86_64.tar.gz
# mv mysql-cluster-gpl-7.5.16-linux-glibc2.12-x86_64 /usr/local/mysql
# cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin
# mkdir /data/mysql-cluster
# vi /data/mysql-cluster/config.ini
config.ini 的配置:
[ndbd default]
NoOfReplicas=1
DataMemory=512M
IndexMemory=18M
[ndb_mgmd]
Nodeid=1
HostName=mgt
DataDir=/data/mysql-cluster
[ndbd]
Nodeid=11
HostName=data1
DataDir=/data/mysql/db_file
[ndbd]
Nodeid=12
HostName=data2
DataDir=/data/mysql/db_file
[mysqld]
Nodeid=21
HostName=sql1
[mysqld]
Nodeid=22
HostName=sql2
初始化管理节点:
#/usr/local/bin/ndb_mgmd -f /data/mysql-cluster/config.ini –initial
以下步骤data和sql节点操作一样。
新增mysql用户和组,并安装软件
#groupadd mysql
#useradd -g mysql -s /bin/false mysql
# tar -xvf mysql-cluster-gpl-7.5.16-linux-glibc2.12-x86_64.tar.gz
# mv mysql-cluster-gpl-7.5.16-linux-glibc2.12-x86_64 /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql
# mkdir -p /data/mysql/db_file
# mkdir -p /data/mysql/log
# mkdir -p /data/mysql/log_bin
# chown -R mysql:mysql /data/mysql
针对data node
编辑/etc/my.cnf
[mysqld]
Ndbcluster
ndb-connectstring=mgt
[mysql_cluster]
ndb-connectstring=mgt
启动进程
[root@data1 ~]# /usr/local/mysql/bin/ndbd
2020-04-14 21:48:09 [ndbd] INFO -- Angel connected to 'mgt:1186'
2020-04-14 21:48:09 [ndbd] INFO -- Angel allocated nodeid: 11
针对sql node
编辑/etc/my.cnf
[mysqld]
basedir=/usr/local/mysql/
datadir=/data/mysql/db_file
socket=/usr/local/mysql/mysql.sock
log-error=/data/mysql/log/sqlnode.err
ndbcluster
ndb-connectstring=mgt
default_storage_engine=ndbcluster # Define default Storage Engine used by MySQL
#以下参数用于OGG解析日志时使用
server-id=1
skip-slave-start=true
log-bin=/data/mysql/log_bin/log-bin.bin
log-bin-index=/data/mysql/log_bin/log-bin.index
binlog_format=ROW
[mysql_cluster]
ndb-connectstring=mgt
[client]
socket=/usr/local/mysql/mysql.sock
初始化 MySQL:
/usr/local/mysql/bin/mysqld –initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/db_file
注意:初始化数据库会在日志文件中出现数据库的root密码,后面登录mysql时会用到。
启动MySQL节点:
# /etc/init.d/mysql.server start
登录mysql并修改root的密码为”root”,(略过)
在管理节点上查看所有节点的状态
至此,MySQL NDB Cluster安装完成。
mysql>create database testdb;
mysql>create table testdb.tb1(id int primary key, name varchar(50)) engine=ndb;
mysql>create table testdb.tb2(id int , name2 varchar(50)) engine=ndb;
GoldenGate现在可以远程抽取和投递到MySQL数据库,理论上不需要安装到MySQL节点上。在本示例中,我们将OGG部署到sql node1上。
下载OGG for mysql :
https://www.oracle.com/middleware/technologies/goldengate-downloads.html
安装OGG
# unzip 191003_ggs_Linux_x64_MySQL_64bit.zip
# tar –xvf ggs_Linux_x64_MySQL_64bit.tar –C /data/share/ogg
# cd /data/share/ogg
[root@localhost ogg]# ./ggsci
GGSCI 1>create subdirs
GGSCI 2>dblogin sourcedb test@localhost:3306,userid root,password root
配置MGR进程:
GGSCI 3> edit param mgr
port 7809
配置extract进程:
GGSCI 4> add extract ex1,tranlog,begin now
GGSCI 5> add exttrail ./dirdat/es,extract ex1
GGSCI 5> edit param ex1
extract ex1
setenv(MYSQL_UNIX_PORT=/usr/local/mysql/mysql.sock)
sourcedb testdb,userid root,PASSWORD root
exttrail ./dirdat/es
tranlogoptions altlogdest /data/mysql/log_bin/log-bin.index
gettruncates
TABLE testdb.*;
在其中一个节点上操作数据
在OGG中查看捕获情况
可以看到,OGG可以顺利的捕获到MySQL集群中的增量数据。
通过本文的验证,可以看到,Oracle GoldenGate可以按普通MySQL一样的部署方式,捕获MySQL集群的增量数据或从其它数据源将数据写入到MySQL集群,从而利用MySQL集群带来的分布式性能和高可用特性。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。