mysql 半同步 插件_编写半同步复制插件
编写半同步复制插件
本节介绍如何使用plugin/semisyncMySQL源代码分发目录中的示例插件编写服务器端半同步复制插件。该目录包含名为rpl_semi_sync_master和的主插件和从插件的源文件rpl_semi_sync_slave。此处的信息仅涵盖如何设置插件框架。有关插件如何实现复制功能的详细信息,请参见源。
要编写半同步复制插件,请在插件源文件中包含以下头文件。根据插件的功能和要求,可能还需要其他MySQL或常规头文件。#include
plugin.h定义MYSQL_REPLICATION_PLUGIN服务器插件类型和声明插件所需的数据结构。
对于主端,semisync_master_plugin.cc包含一个名为的插件的通用描述符rpl_semi_sync_master:mysql_declare_plugin(semi_sync_master)
{
MYSQL_REPLICATION_PLUGIN,
&semi_sync_master_plugin,
"rpl_semi_sync_master",
"He Zhenxing",
"Semi-synchronous replication master",
PLUGIN_LICENSE_GPL,
semi_sync_master_plugin_init, /* Plugin Init */
semi_sync_master_plugin_deinit, /* Plugin Deinit */
0x0100 /* 1.0 */,
semi_sync_master_status_vars, /* status variables */
semi_sync_master_system_vars, /* system variables */
NULL, /* config options */
0, /* flags */
}
mysql_declare_plugin_end;
对于从属端,semisync_slave_plugin.cc包含一个名为的插件的通用描述符rpl_semi_sync_slave:mysql_declare_plugin(semi_sync_slave)
{
MYSQL_REPLICATION_PLUGIN,
&semi_sync_slave_plugin,
"rpl_semi_sync_slave",
"He Zhenxing",
"Semi-synchronous replication slave",
PLUGIN_LICENSE_GPL,
semi_sync_slave_plugin_init, /* Plugin Init */
semi_sync_slave_plugin_deinit, /* Plugin Deinit */
0x0100 /* 1.0 */,
semi_sync_slave_status_vars, /* status variables */
semi_sync_slave_system_vars, /* system variables */
NULL, /* config options */
0, /* flags */
}
mysql_declare_plugin_end;
对于主插件和从插件,通用描述符都具有指向特定于类型的描述符,初始化和反初始化函数以及由插件实现的状态和系统变量的指针。有关变量设置的信息,请参见“服务器插件状态和系统变量”。以下备注讨论了主插件的类型特定的描述符以及初始化和反初始化函数,但是类似地适用于从属插件。
semi_sync_master_plugin主通用描述符的成员指向特定于类型的描述符,该描述符仅由特定于类型的API版本号组成:struct Mysql_replication semi_sync_master_plugin= {
MYSQL_REPLICATION_INTERFACE_VERSION
};
初始化和取消初始化函数的声明如下所示:static int semi_sync_master_plugin_init(void *p);
static int semi_sync_master_plugin_deinit(void *p);
初始化函数使用指针在服务器上注册事务和二进制日志记录“观察者”。成功初始化之后,服务器负责在适当的时间调用观察者。(有关观察者的详细信息,请参见源文件。)取消初始化功能通过注销观察者来清除。每个函数成功返回0,如果发生错误则返回1。
要编译和安装插件库文件,请使用“编译和安装插件库”中的说明。要使该库文件可供使用,请将其安装在插件目录(由plugin_dir系统变量命名的目录)中。对于rpl_semi_sync_master和rpl_semi_sync_slave插件,当您从源代码构建MySQL时会编译并安装它们。它们也包含在二进制发行版中。构建过程将生成共享对象库,其名称为semisync_master.so和semisync_slave.so(.so后缀可能因平台而异)。
mysql 半同步 插件_编写半同步复制插件相关推荐
- 第三方数据库同步工具_数据库实时同步和复制_mysql数据库同步工具
SyncNavigator v8.6.2 SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据.无人值守.故障自动恢复.同构/异构 ...
- python十点半游戏代码_十点半源码|十点半棋游戏源码
游戏规则 提示:庄家赢 pai,无论是什么 pai型都不翻倍,只有闲家赢 pai才针对 pai型进行加倍 底注:比赛前确认基本源码下载的数额 十点半 十点半 庄家:选定一个玩家为庄家,其他玩家都为闲家 ...
- 组件 模块 插件_播放2 –模块,插件有什么区别?
组件 模块 插件 关于Play 2模块和插件似乎有些困惑. 我想这是因为两者经常是同义词. 在Play(两个版本-1和2)中,存在明显的差异. 在本文中,我将研究什么是插件,如何在Java和Scala ...
- ai二维码插件_超实用的AI脚本插件合集2.0免费分享,让你的设计快人一步
AI脚本插件合集2.0版,除了更新部分插件以及增加几款新插件外,还支持AI CC 2019了.此AI插件包目前有62款ai脚本插件,已经整合成插件面板的形式,方便在AI中调用 AI脚本插件合集说明 A ...
- python使用rpa需要什么插件_使用Python制作ArcGIS插件基础篇——工具介绍
ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作.相对于以往9.x系列,addin的无论是从使用或者编写都更加方便快捷.通过开发语言,可以制作ArcGIS ...
- 实用插件_这些实用的PR插件你知道吗?
学习PR,安装使用插件必定是绕不开的过程.一款强大的插件可以节省剪辑时间,极大的提高工作效率. 常见的视频插件类型想必大家都知道,无非是包括调色.降噪.字幕.特效四种. 调色:Magic Bullet ...
- python处理ppt的插件_几款PPT神器插件,千万不能错过!
本文首发于公众号"干货plus" 虽然说本身PPT的功能就已经很强大了,但是,如果借助一些官方或非官方的PPT插件,就能快速制作高逼格的PPT,十分节省时间,无论是上班一族还是学生 ...
- c4d python 插件_好用的C4D插件都在这里了,还不赶紧收藏起来?
学C4D少不了插件,有关C4D软件的插件实在是太多太多了,下面整理了一些常用的比较酷炫的分享给大家.[找不到插件的小伙伴可以见文章末尾!!!] 一.Signal Signal是GSG出品的一款C4D程 ...
- BootStrap-CSS样式_插件_工具提示(Tooltip)插件
工具提示(Tooltip)插件 当您想要描述一个链接的时候,工具提示(Tooltip)就显得非常有用.工具提示(Tooltip)插 件是受 Jason Frame 写的 jQuery.tipsy 的启 ...
最新文章
- pg数据库json数据类型_PG数据类型
- 如何管理项目中外包开发人员、测试人员
- Cordova for iOS[ PhoneGap]
- golang 导入自定义包_goLang引入自定义包的方法
- 36 张图梳理 Intellij IDEA 常用设置,太全了值得收藏!
- 计算线段长度(信息学奥赛一本通-T1033)
- 大一计算机专业学生如何在寒假充电?
- 用Kickstart批量安装Linux系统、Kickstart安装,linux批量安装;Linux的Kickstart的 无人值守安装;linux pxe自动安装linux系统...
- 红帽:将开源进行到底!
- 如何在 Pr 2020中使用音轨混合器?
- 《现代操作系统(中文第三版)》课后习题——第六章 死锁
- 一个基于 EasyUI 的前台架构(4)主体页面框架收工
- Navigator.sendBeacon()
- book--Unix Linux大学教程
- WebRtc视频特效
- 【加法器】数电中,计算机是如何运算加法的?
- 如果格局决定人生,那到底什么决定了格局
- 2021黑马web前端
- ctf.showCMS(web477-web478)
- 花卉识别卷积神经网络
热门文章
- TCP/IP:TCP SYN Flood攻击原理与实现
- Nginx-1.18.0主函数main思维导图(第一版)
- c# npoi 公式不计算_玉米扣量因素:水分、杂质、不完善粒、生霉粒,检测方法及计算公式...
- CSS3 3D位移和旋转
- scala集合day03
- 怎么将pom文件mysql驱动修改版本_JDBC-MySql基础操作详解
- python怎么安装requests模块_python安装requests第三方模块
- Win10安装GPU版tensorflow和keras
- [洪流学堂]Hololens开发高级篇1:凝视(Gaze)
- OpenShift 4 之在不同的项目之间推送Image