MySql NDB cluster replication配置
文章目录
官方文档: https://dev.mysql.com/doc/refman/5.6/en/mysql-cluster.html
安装过程:略
单机部署:
1. 创建ndb_mgmd配置文件:
SC-1:/storage/ezohenz # cat m
[NDB_MGMD]
HostName=SC-1
[NDBD DEFAULT]
NoOfReplicas=2
[NDBD]
HostName=SC-1
Id=11
DataDir=/storage/ezohenz/data_ndbd1
[NDBD]
HostName=SC-1
Id=12
DataDir=/storage/ezohenz/data_ndbd2
[MYSQLD]
HostName=SC-1
Id=21
[MYSQLD]
HostName=SC-2
Id=22
2. 创建ndbd配置文件
SC-1:/storage/ezohenz # cat d
[MYSQLD]
ndbcluster
ndb-connectstring=SC-1:1186
[MYSQL_CLUSTER]
ndb-connectstring=SC-1:1186
3. 创建mysqld配置文件
SC-1:/storage/ezohenz # cat q
[MYSQLD]
ndbcluster
ndb-connectstring=SC-1:1186
default-storage-engine=ndbcluster
user=mysql
4. 安装初始数据库
mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=./data_mysqld
5. 按顺序启动ndb_mgmd, ndbd, mysqld
ndb_mgmd -f ./m --initial
ndbd --defaults-file=./d --initial
mysqld --defaults-file=./q --datadir=./data_mysqld &
6. 查看ndb cluster状态
ndb_mgm -e show
注意貌似需要确认配置文件m中的所有ndbd都启动并连接上mgmd,mysqld才能正常连接上mgmd并创建engine为ndb的数据表。
Geographic redundancy
以上为单机cluster,需要多个才有实际意义。而在不同地区的cluster之间,也可以进行数据的同步。
现在假设有另一套单机cluster,配置如上面的1-6步。假设两个cluster分别为A和B,则:
分别修改A和B的mysqld配置文件并重启mysqld:
SC-1:/storage/db_sc1 # cat q
[MYSQLD]
ndbcluster
ndb-connectstring=SC-1:1186
default-storage-engine=ndbcluster
user=mysql
server-id=1
replicate-do-db=test
replicate-do-table=test.ctest
slave-skip-errors=1062,1032,1590
log-slave-updates
log-bin=
sync_binlog=1
binlog_format=MIXED
expire_logs_days=3
binlog-do-db=test
slave-net-timeout=10
务必将A和B的server-id配置成不同的值。
重启后进入mysql客户端查看master状态
执行show master status;
mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| SC-1-bin.000001 | 120 | test | | |
+-----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
分别记录A和B的File,在下面的命令中会用到。
分别重新配置A和B的slave
在A (sc-1)的mysql客户端输入以下命令
stop slave;
change master to master_host='sc-2', master_log_file='SC-2-bin.000001', master_user='mysql', master_password='', master_retry_count=86400, master_connect_retry=5;
start slave;
在B (sc-2)的mysql客户端输入以下命令
stop slave;
change master to master_host='sc-1', master_log_file='SC-1-bin.000001', master_user='mysql', master_password='', master_retry_count=86400, master_connect_retry=5;
start slave;
此时将会在两个site的客户端上分别看到连接成功的消息。
检查配置结果
在A和B上分别执行show slave status\G,应该看到Slave_IO_Running和Slave_SQL_Running状态都是Yes:
show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: sc-2
Master_User: mysql
Master_Port: 3306
Connect_Retry: 5
Master_Log_File: SC-2-bin.000001
Read_Master_Log_Pos: 120
Relay_Log_File: SC-1-relay-bin.000002
Relay_Log_Pos: 282
Relay_Master_Log_File: SC-2-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
Replicate_Ignore_DB:
Replicate_Do_Table: test.ctest
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 120
Relay_Log_Space: 454
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 2
Master_UUID: 5301a65f-34b9-11e8-a869-021020010200
Master_Info_File: /cluster/storage/db_sc1/data_mysqld/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
通过在数据库中修改数据来检查配置是否生效
在A的数据库test中建一个ctest表,并在其中插入一条记录,应该能在B上看到插入的结果。反之亦然。
mysql> USE test;
Database changed
mysql> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
2018-03-31 16:49:10 619 [Note] NDB Binlog: CREATE TABLE Event: REPL$test/ctest
2018-03-31 16:49:10 619 [Note] NDB Binlog: logging ./test/ctest (UPDATED,USE_WRITE)
Query OK, 0 rows affected (0.48 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| ctest |
+----------------+
1 row in set (0.00 sec)
mysql> select * from ctest;
Empty set (0.00 sec)
mysql> insert into ctest values (111);
Query OK, 1 row affected (0.00 sec)
mysql> select * from ctest;
+------+
| i |
+------+
| 111 |
+------+
1 row in set (0.00 sec)
全文完。
MySql NDB cluster replication配置的更多相关文章
- Chapter 18 MySQL NDB Cluster 7.3 and NDB Cluster 7.4渣翻
Table of Contents 18.1 NDB Cluster Overview 18.2 NDB Cluster Installation 18.3 Configurati ...
- 安装mysql ndb cluster二进制版本在linux上
Installing an NDB Cluster Binary Release on Linux (官方安装手册)手册地址:https://dev.mysql.com/doc/refman/5.7/ ...
- MySQL InnoDB Cluster介绍
目录 一.MySQL InnoDB Cluster介绍 二.环境准备 三.将MGR节点加入MySQL Cluster 四.问题汇总 五.性能测试 六.个人总结 一.MySQL InnoDB Clust ...
- Mysql Innodb cluster集群搭建
之前搭建过一个Mysql Ndb cluster集群,但是mysql版本是5.7的,看到官网上mysql8的还是开发者版本,所以尝试搭建下mysql Innodb cluster集群. MySQL的高 ...
- MySQL NDB集群安装配置(mysql cluster 9.4.13 installation)
一.安装前规划 1.安装软件版本:mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64.tar.gz 2.安装规划: 主机名 Ip地址 角色 db01 192. ...
- mysql cluster 安装配置方案
mysql cluster (mysql 集群)安装配置方案 一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以 ...
- MySQL中双NDBD节点Cluster快速配置
是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 5.0及以上的二进制版本中.以及与最 ...
- MySql Replication配置
一.前言 Mysql Replication作为读写分离的廉价解决方案,支持一主多备的方式进行数据存储,采用二进制日志传送,目前存在着广泛应用,网上相关概念也比较多,不再重复介绍.引用一张官方提供的R ...
- Mysql 5.5 replication 多数据库主从备份Master-Slave配置总结
配置Mysql server 5.5 的双机备份,也就是master-slave模式.本例子还是一个多database复制的情况. 现在有两个database在同一台mysql server,也就是m ...
随机推荐
- sqlalchemy(一)常用连接参数及包
简介: 本文默认你已经有了一定的数据库基础.我们不喜欢写原生SQL语句,那个写着费劲,日常开发时候,我们怎么CRUD数据库呢?一般使用ORM,对象关系映射(英语:Object Relational M ...
- 异常处理机制中的return关键字
Java中,执行try-catch-finally语句需要注意: 第一:return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂 ...
- intelij idea常用设置
1.genneral设置 2.自动导包 3.设置显示行号和方法分隔符 4.忽略大小写提示代码 比如:输入str会让其提示String 5.去掉单行显示类,让idea多行显示,容易找到类 6.设置字体及 ...
- 用postman做自动化测试
pre-request script: pm.environment.set("title", data.title);pm.environment.set("tab&q ...
- String类的常用方法总结
一.String类String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的final类,不能有类.String类对象创建 ...
- HDU 2602 Bone Collectors(背包问题,模版)
Bone Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 20165326 java实验二
2017-2018-2 20165326实验二<Java面向对象程序设计>实验报告 课程:Java程序设计 班级:1653班 姓名:陈卓 学号:20165326 成绩:指导教师:娄嘉鹏 实 ...
- 11.2.0.4rac service_name参数修改
环境介绍 )客户环境11. 两节点 rac,集群重启后,集群资源一切正常,应用cs架构,连接数据库报错,提示连接对象不存在 )分析报错原因,连接数据库方式:ip:Port/service_name方式 ...
- drop redo logfile current报错
目的:在安装完毕11.2.0.4版本Oracle单实例数据库后,对日志进行格式化,删除原日志组current状态,删除报错 #对于理论学习,而带来的理解命令,因此作为记录 #查询日志状态SYS > ...
- Ubuntu上latex+atom配置
网上流传的latex+atom大都是windows上的,Ubuntu与windows上的配置方式大同小异,这里写下自己的经验: 分为三个步骤,首先安装texlive,texlive是latex的依赖库 ...