mysql cluster



mysql cluster 安装完毕后,首先管理节点
1.在服务器 192.168.7.187 的 /home/zzx2/ 下创建目录 mysql-cluster ,并在目录中创建配置文件 config.ini
mkdir /home/zzx2/mysql-cluster
cd /home/zzx2/mysql-cluster
touch config.ini

2.根据这里的测试集群环境,配置 config.ini 
[NDBD DEFAULT]
NoOfReplicas=1     #每个数据节点的镜像数量
DataMemory=500M      #每个数据节点中给数据分配的内存
IndexMemory=300M     #每个数据节点中给索引分配的内存
[TCP  DEFAULT]
portnumber=2202          #数据节点的默认连接端口
[NDB_MGMD]               #配置管理节点
id=1
hostname=192.168.7.187          #管理节点 IP
datadir=/home/zzx2/mysql-cluster     #管理节点数据目录
[NDBD]
id=2
hostname=192.168.7.187
datadir=/home/zzx2/mysql/data
[NDBD]
id=3
hostname=192.168.7.55
datadir=/home/zzx2/mysql/data

[MYSQLD]                    #mysqld process
hostname=192.168.7.187
[MYSQLD]
hostname=192.168.7.55

上面的配置文件中,包括很多的组,组名用 "[]" ,三类节点组配置:
[NDB_MGMD]:表示管理节点的配置,只能有一个
[NDBD DEFAULT]:表示每个数据节点的默认配置,只能又一个
[NDBD]:表示每个数据节点的配置,可以有多个
[MYSQLD]:表示 SQL 节点的配置,可以有多个

每个节点都要有一个独立的 id 号,可以手工填写,也可以不写,系统会按照配置文件的填写顺序自动分配

3.sql 节点 跟 数据节点的配置
在 mysql 的 my.cnf 中增加 :
# Options for mysqld process:
[MYSQLD]
ndbcluster               #运行 ndb 存储引擎
ndb-connectstring=192.168.7.187     #定位管理节点
# Options for ndbd process:
[MYSQL_CLUSTER]
ndb-connectstring=192.168.7.187     #定位管理节点

SQL 节点和数据节点的不同之处在于数据节点只需要配置上述选项即可,SQL 节点还需要配置 mysql 服务器的其他选项

使用 mysql cluster
cluster 的启动
启动顺序:管理节点->数据节点->SQL节点
首先在管理节点上运行 ndb_mgmd -f ./config.ini

最好将管理节点放在独立服务器上
2.在数据节点服务器上运行
ndbd --initial --ndb-connectstring=192.168.7.187:1186

ndbd 进程是使用 NDB 存储引擎处理表中数据的进程。通过该进程,存储节点能够实现分布式事务管理,节点恢复,在线备份等相关任务
注:仅在首次启动 ndbd 时,或在备份、恢复、或配置变化后重启 ndbd 时使用 --initial 参数。因为该参数会使节点删除由早期 ndbd 实例创建的,用于恢复的任何文件,包括恢复用日志文件。

3.依次启动 sql 节点上的 mysql 服务
node1(192.168.7.187)
./bin/mysqld_safe &
node2(192.168.7.55)
./bin/mysqld_safe &

4.用 ndb_mgm 工具的 show 命令查看集群状态
ndb_mgm

>show

使用 ndb_mgm --help 查看命令

cluster 测试
1.ndb 存储引擎测试
1)在任意个 sql 节点(192.168.7.187) 的 test 库 创建测试表 t1, 设置存储引擎为 ndb ,并插入两条测试数据
create table t1(id int) engine=ndb;
insert into t1 values(1);
insert into t1 values(2);

2)在另一个 sql 节点 (192.168.7.55) ,查询 test 库 t1 表
select * from t1

3)在 sql 节点 (192.168.7.187) 上将测试表 t1 的存储引擎改为myisam,再次插入数据
alter table t1 engine=myisam;
insert into t1 values(3);

4)在sql 节点 (192.168.7.55) 上再查询表 t1 
select * from t1;
出错

5)在 sql 节点 (192.168.7.187)上再次将 t1 的存储引擎改为 ndb
alter table t1 engine=ndb;

6)在 sql 节点 (192.168.7.55) 上再次查询
select * from t1;


2.单点故障测试
sql节点发生单点故障
1)将 sql 节点 192.168.7.187上的 mysql 服务停止
mysqladmin -uroot shutdown
2)查看一下 cluster 状态
ndb_mgm
>show
3)在两一台 sql 节点上还是可以访问数据的

数据节点的单点故障
如果 [NDBD DEFAULT]组中的 NoOfReplicas 参数,如果这个参数等于 1 ,表示只有一份数据,但是分为了 n 块分别存储在 n 个数据节点 上;如果是 2 ,则表示数据被分成 n/2 块,每块数据都有两个备份,这样即使有任意一个节点发生故障,只要他的备份节点正常,系统就可以正常运行

1)将数据节点 192.168.7.187 上的 ndb 进程停止
ps -ef | grep 'ndbd'

2)在任意一个 sql 节点查看表 t1 数据
select * from t1;
出错

3)将配置文件中 的 NoOfReplicas 改为2 ,按照前面步骤重新启动集群

4)此时停掉任何一个数据节点的数据

5)再次从任意一个 sql 节点查询 t1

cluster的关闭
ndb_mgm -e shutdown  或者进入 ndb_mgm 交互命令之后执行 shutdown
注:集群关闭后,sql 节点的mysql 服务并不会停止


维护 cluster
数据备份
1.可以在任意一个 sql 节点上执行 mysqldump 
2.cluster 物理备份
1)首先启动管理服务器 ndb_mgm
>start backup
当日志中显示 "Backup 1 started from node 1 conpleted" 的时候,本次备份结束。备份的数据保存在每个数据节点下,具体备份路径是:$MYSQL_HOME/data/BACKUP/BACKUP-备份ID
可以在两个数据节点下都可以看到备份数据




数据恢复
用 ndb_restore 工具进行数据恢复
1)在数据节点2(192.168.7.187)的shell 命令行中执行:
ndb_restore -b 3 -n 2 -c host=192.168.7.187:1186 -m -r /home/zzx2/mysql/data/BACKUP/BACKUP-3

2)在节点3的shell 命令行执行:
ndb_restore -b 3 -n 3 -c host=192.168.7.187:1186 -m -r /home/zzx2/mysql/data/BACKUP/BACKUP-3


日志管理











  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值