Mysql Fabric实现学习笔记
GTIDs(全局事务标识)的mysql集合,检查和维护服务器之间的一致性。集合中的服务器叫高可用组。不属于Fabric高可用组的成员实例,叫备用存储(backing store)。
|
1
2
3
|
tar xvf mysql-utilities-1.4.4.tgzcd mysql-utilities-1.4.4python setup.py install |
1、需要创建一个账号访问backing store,用户账号对数据库fabric必须有完全权限:
|
1
2
|
# mysql -uroot -h172.17.0.49 -p MySQL [(none)]> grant all on fabric.* to fabric@'172.17.42.1' identified by 'fabric@123'; |
2、对fabric进行管理的所有mysql服务器,需要对所有数据库创建拥有完全权限的用户,Mysql Fabric使用同样的用户帐户访问到所有Mysql服务器进行管理:
|
1
2
3
4
5
6
7
8
|
# mysql -uroot -h172.17.0.50 -padmin@123 MySQL [(none)]> grant all on *.* to fabric@'172.17.42.1' identified by 'fabric@456'; # mysql -uroot -h172.17.0.47 -padmin@123 MySQL [(none)]> grant all on *.* to fabric@'172.17.42.1' identified by 'fabric@456'; Query OK, 0 rows affected (0.00 sec) # mysql -uroot -h172.17.0.48 -padmin@123 MySQL [(none)]> grant all on *.* to fabric@'172.17.42.1' identified by 'fabric@456'; Query OK, 0 rows affected (0.00 sec) |
详细配置文件如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# cat /etc/mysql/fabric.cfg [DEFAULT] #如果请求的选项没有在命令行指定,或没有在配置文件找到,Fabric将查看该段的信息prefix = sysconfdir = /etc #配置文件存放目录logdir = /var/log #日志文件存储位置,绝对路径,由守护进程创建[storage] #配置backing store相关的选项address = 172.17.0.49:3306 #指定state store的mysql实例地址和端口user = fabric #连接到mysql实例的用户名password = fabric@123 #认证密码,也能设置空密码database = fabric #存储Fabric表的数据库auth_plugin = mysql_native_password #设置使用的认证插件connection_timeout = 6 #中断请求之前等待的最大时间,单位秒connection_attempts = 6 #创建连接的最大尝试次数connection_delay = 1 #连续尝试创建连接之间的延时时间,默认1s[servers]user = fabricpassword = [protocol.xmlrpc] #该段定义Fabric接收通过XML-RPC协议的请求address = 0.0.0.0:32274 #标识Fabric使用的主机和端口,接收XML-RPC请求threads = 5 #XML-RPC会话线程的并发创建数,决定多少并发请求Fabric能接受user = admin #用户名,认证命令行请求password = #用户密码,认证命令行请求disable_authentication = no #是否启用命令行请求需要认证,默认要认证realm = MySQL Fabricssl_ca = #使用ssl认证方式,指定PEM格式文件,包含信任SSL证书的列表ssl_cert = #SSL认证文件,用于创建安全的连接ssl_key = #SSL key文件[executor] #通过XML-RPC接收到的请求,映射到程序能立即执行或通过队列执行者,保证冲突的请求处理按序执行。通常读操作立即执行通过XML-RPC会话线程,写操作通过执行者executors = 5 #多少线程用于执行者[logging] #设置Fabric日志信息记录到哪里,如果不是开启为后台进程,将打印日志到标准输出level = INFO #日志级别,支持DEBUG,INFO,WARNING,ERROR,CRITICALurl = file:///var/log/fabric.log #存储日志的文件,能为绝对或相对路径(如是相对路径,将参照default段logdir参数指定的日志目录)[sharding] #Fabric使用mysqldump和mysql客户端程序,执行移动和分离shards,指定程序的路径mysqldump_program = /usr/bin/mysqldumpmysqlclient_program = /usr/bin/mysql[statistics]prune_time = 3600 #删除大于1h的条目[failure_tracking] #连接器和其他外部实体能报告错误,fabric保持跟踪服务器健康状态和采取相应的行为,如提升一个新的master,如果一个服务器时不稳定的,但不是master,将简单的标记为错误。notifications = 300 #多少次报告错误后,将标志服务器不可用notification_clients = 50 #多少不同源报告错误notification_interval = 60 #评估错误数的统计时间failover_interval = 0 #为了避免整个系统不可用,自上次提升间隔多少秒后,新master才能选取detections = 3 #为了缓解fabric,提供内建的错误检查,如果错误检查启动监控一个组,需要连续尝试3(默认)次访问当前master都错误后,才能提升新master,detection_interval = 6 #连续检查之间的间隔时间detection_timeout = 1 #错误检查程序尝试连接到一个组中服务器的超时时间prune_time = 3600 #在错误日志中保留多久的错误信息[connector] #Fabric-aware连接器连接到Fabric,获取组、shards、服务器的信息,缓存结果到本地的时长,以提高性能。ttl = 1 #缓存生存时间,单位s,决定多长时间,连接器考虑一个信息从Fabric获取是有效的[client]password = |
4、State store创建fabric数据库和相关表:使用以上授权用户
|
1
2
3
4
5
6
7
8
|
# mysqlfabric manage setup --param=storage.user=fabric --param=storage.password=fabric@123 [INFO] 1409095183.577010 - MainThread - Initializing persister: user (fabric), server (172.17.0.49:3306), database (fabric). Finishing initial setup ======================= Password for admin user is not yet set. Password for admin/xmlrpc: Repeat Password: Password set. |
5、查看创建的表:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# mysql -ufabric -h172.17.0.49 -pfabric@123 -e "show tables from fabric";+-------------------+| Tables_in_fabric |+-------------------+| checkpoints | #存储程序执行信息,在crash后,能安全的恢复执行程序| error_log | #服务器错误报告信息| group_replication | #定义复制,global groups和分片组,主要用于shard splitting,moving和global updates| group_view || groups | #包含管理组信息| log || permissions | #包含权限信息,访问到不同fabric子系统,当前仅仅定义了core子系统| proc_view || role_permissions | #表关联的角色和权限| roles | #包含用户角色的信息| servers | #包含fabric管理的所有服务器信息| shard_maps | #包含名字和分片属性的映射| shard_ranges | #分片索引和使用映射分片key到分片| shard_tables | #所有分片的表| shards | #存储每个分片标识| user_roles || users | #标识用户有什么权限访问到不同子系统的功能+-------------------+ |
使用mysqlfabric命令开启和停止mysql fabric节点。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# mysqlfabric manage start[INFO] 1409095475.657850 - MainThread - Initializing persister: user (fabric), server (172.17.0.49:3306), database (fabric).[INFO] 1409095475.661201 - MainThread - Loading Services.[INFO] 1409095475.672051 - MainThread - Fabric node starting.[INFO] 1409095475.731098 - MainThread - Starting Executor.[INFO] 1409095475.731155 - MainThread - Setting 5 executor(s).[INFO] 1409095475.731395 - Executor-0 - Started.[INFO] 1409095475.731866 - Executor-1 - Started.[INFO] 1409095475.732208 - Executor-2 - Started.[INFO] 1409095475.732892 - Executor-3 - Started.[INFO] 1409095475.733379 - Executor-4 - Started.[INFO] 1409095475.733472 - MainThread - Executor started.[INFO] 1409095475.738050 - MainThread - Starting failure detector.[INFO] 1409095475.738533 - XML-RPC-Server - XML-RPC protocol server ('0.0.0.0', 32274) started.[INFO] 1409095475.738774 - XML-RPC-Server - Setting 5 XML-RPC session(s).[INFO] 1409095475.739004 - XML-RPC-Session-0 - Started XML-RPC-Session.[INFO] 1409095475.739263 - XML-RPC-Session-1 - Started XML-RPC-Session.[INFO] 1409095475.739442 - XML-RPC-Session-2 - Started XML-RPC-Session.[INFO] 1409095475.739922 - XML-RPC-Session-3 - Started XML-RPC-Session.[INFO] 1409095475.740434 - XML-RPC-Session-4 - Started XML-RPC-Session. |
mysqlfabric manage start --daemonize),将打印日志到syslog(配置文件默认定义在/var/log/fabric.log ).
查看启动的xmlrpm监听端口:
|
1
2
|
# netstat -ntlp|grep python tcp 0 0 0.0.0.0:32274 0.0.0.0:* LISTEN 15713/python |
|
1
2
3
4
5
6
7
|
# mysqlfabric manage stop Password for admin: #输入xmlrpc的密码 Command : { success = True return = True activities = } |
MySQL Fabric
A Guide to Managing MySQL High
Availability and Scaling Out
>>、<<MySQL Fabric
>>
Mysql Fabric实现学习笔记的更多相关文章
- MYSQL视图的学习笔记
MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具 1. 视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...
- mySQl数据库的学习笔记
mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- PHP和MySQL Web开发学习笔记介绍
前言 从2016年2月1日开始,之后的几个月左右的时间里,我会写一个系列的PHP和MySQL Web开发的学习笔记.我之前一直从事Java语言的开发工作,最近这段时间非常想学习一门语言,就选择了PHP ...
- MySQL索引知识学习笔记
目录 一.索引的概念 二.索引分类 三.索引用法 四 .索引架构简介 五.索引适用的情况 六.索引不适用的情况 继我的上篇博客:Oracle索引知识学习笔记,再记录一篇MySQL的索引知识学习笔记,本 ...
- MySQL属性SQL_MODE学习笔记
最近在学习<MySQL技术内幕:SQL编程>并做了笔记,本博客是一篇笔记类型博客,分享出来,方便自己以后复习,也可以帮助其他人 SQL_MODE:MySQL特有的一个属性,用途很广,可以通 ...
- mySql 基本语法学习笔记
create database if not exists yang; drop database if exists yang; show databases; show dat ...
- mysql性能优化学习笔记(2)如何发现有问题的sql
一.使用mysql慢查询日志对有效率问题的sql进行监控 1)开启慢查询 show variables like ‘slow_query_log’;//查看是否开启慢查询日志 ...
- MySQL数字类型学习笔记
数字类型 最近在看<MySQL技术内幕:SQL编程>并做了笔记,所以本博客是一篇笔记类型博客,分享出来方便自己复习,也可以帮助他人 整型 类型 占用空间 最小值(SIGNED) 最大值(S ...
随机推荐
- 试用Markdown来写东西
试用Markdown来写东西 前言 之前有过一段时间的写东西的习惯,但是后来因为各种原因(主要是因为自己懒惰拖延),所以一直没有写,现在想再开始写,目的很明确,就是发现很多时候,写作能够很好的练习自己 ...
- 【未完】训练赛20190304:KMP+树状数组+线段树+优先队列
头炸了啊,只做出L题,前两天刚看的Shawn zhou的博客学习的,幸亏看了啊,否则就爆零了,发现题目都是经典题,线段树,KMP,我都没看过,最近又在复习考研,真后悔大一大二没好好学习啊,得抽时间好好 ...
- Halcon介绍和下载安装视频教程
------------------------Halcon,Visionpro高清视频教程,点击下载视频--------------------------
- HADOOP (十一).安装hbase
下载安装包并解压设置hbase环境变量配置hbase-site.xml启动hbase检测hbase启动情况测试hbase shell 下载安装包并解压 https://mirrors.tuna.tsi ...
- springboot 整合apache shiro
这几天因为项目需要,学习了下shiro,由此留下一些记录,也希望对初学shiro的朋友有帮助. springboot 是这两年新兴起来的一个项目,它的出现是为了减少springmvc开发过程中需要引入 ...
- Java 集合框架之Collection
此图是 java 中 Collection 相关的接口与类的关系的类图.其中,类只是集合框架的一部分,比较常用的一部分. 第一次画类图,着实很费劲,不过收获也不小. 下面是相关接口和类的解释说明.文字 ...
- 【IdentityServer4文档】- 打包和构建
打包和构建 IdentityServer 由多个 nuget 软件包组成的. IdentityServer4 nuget | github 包含 IdentityServer 核心对象模型,服务和中间 ...
- 【重读MSDN之ADO.NET】ADO.NET连接
连接到ADO.NET中的数据源 在 ADO.NET 中,通过在连接字符串中提供必要的身份验证信息,使用 Connection 对象连接到特定的数据源.使用的 Connection 对象取决于数据源的类 ...
- 枚举当前环境中打开的所有IE
IE程序是属于Shell的一个应用程序,要枚举当前打开的所有IE程序窗口,可以通过ShellWindows集合来打开属于Shell的当前的窗口的集合. 首先添加程序需要的头文件和tlb库 //#imp ...
- KMP算法字符串查找子串
题目: 经典的KMP算法 分析: 和KMP算法对应的是BF算法,其中BF算法时间复杂度,最坏情况下可以达到O(n*m),而KMP算法的时间复杂度是O(n + m),所以,KMP算法效率高很多. 但是K ...