使用mysqlbinlog对主库binlog进行同步
#!/bin/bash
BASEDIR="/usr/local/mysql"
BIN="$BASEDIR/bin"
MYSQLBINLOG="$BIN/mysqlbinlog"
BINLOG_DIRECTORY="/usr/local/mysql/mysqldata/master_binlog_bak" declare -A DICT_HOST
declare -A DICT_PORT
declare -A DICT_USER
declare -A DICT_PASSWORD
DICT_HOST=(["data1"]="192.168.1.108" ["data2"]="192.168.1.118" ["data3"]="192.168.1.110" )
DICT_PORT=(["data1"]="" ["data2"]="" ["data3"]="" )
DICT_USER=(["data1"]="replication" ["data2"]="replication" ["data3"]="replication" )
DICT_PASSWORD=(["data1"]="" ["data2"]="" ["data3"]="" ) # get the last file name,input the file directory,get the last file`s name
get_last_file_name(){
local DATANAME=$
LAST_FILE_DIRECTORY="$BINLOG_DIRECTORY/$DATANAME"
LAST_FILE_NAME_NUMBER=`ls -l $LAST_FILE_DIRECTORY|tail -|cut -d '.' -f `
LAST_FILE_NAME="mysql-bin.$LAST_FILE_NAME_NUMBER"
echo $LAST_FILE_NAME
} # the mysqlbinlog replication function
start_mysqlbinlog(){
local REMOTE_HOST=$
local PORT=$
local USER=$
local PASSWORD=$
local DATANAME=$
local LAST_BINLOG_NAME
local RESULT_FILE_NAME=$ LAST_BINLOG_NAME=`get_last_file_name $DATANAME`
#echo "/usr/local/mysql/bin/mysqlbinlog --raw --read-from-remote-server --stop-never --host=$REMOTE_HOST --port=$PORT --user=$USER --password=$PASSWORD $LAST_BINLOG_NAME --result-file=$RESULT_FILE_NAME &"
$MYSQLBINLOG --raw --read-from-remote-server --stop-never --host=$REMOTE_HOST --port=$PORT --user=$USER --password=$PASSWORD $LAST_BINLOG_NAME --result-file=$RESULT_FILE_NAME &
} for DATA in {"data1","data2","data3"}
do
RESULT_FILE_FORMAT="$BINLOG_DIRECTORY/$DATA/back-"
[ `ps -ef|grep mysqlbinlog|grep $DATA|wc -l` -eq ] && start_mysqlbinlog `echo ${DICT_HOST["$DATA"]}` `echo ${DICT_PORT["$DATA"]}` `echo ${DICT_USER["$DATA"]}` `echo ${DICT_PASSWORD["$DATA"]}` $DATA $RESULT_FILE_FORMAT
done
以字典的形式,将所有三个实例的信息存放到不同的字典中,通过循环,启动同步服务。
字典实际上就是键值对的形式,通过键获取值。使用${dict[key]}
使用mysqlbinlog对主库binlog进行同步的更多相关文章
- 数据库主库从库宕机重启后binlog数据同步
由于阿里云经典网络迁移到专用网络,一不小心没有先预备方案调整网段, 导致实例无法以内网IP形式访问数据库,被迫进行数据库停机后网络网段调整,导致宕机了几个小时...被客户各种投诉爆了.. 基于这次数据 ...
- mysqlbinlog 工具分析binlog日志
MySQL的binlog 日志对于生产环境非常有用,任何时间对数据库的修改都会记录在binglog中:当数据发生增删改,创建数据库对象都会记录到binlog中,数据库的复制也是基于binlog进行同步 ...
- 主库binlog被purge的情形
1.演示实验环境 --主库版本: root@(none)>show variables like 'version'; +---------------+-------------------- ...
- 主库binlog(master-log)与从库relay-log的关系
主库binlog: # at # :: server id end_log_pos CRC32 COMMIT/*!*/; # at # :: server id end_log_pos CRC32 e ...
- mysql之 binlog维护详细解析(开启、binlog相关参数作用、mysqlbinlog解读、binlog删除)
binary log 作用:主要实现三个重要的功能:用于复制,用于恢复,用于审计.binary log 相关参数:log_bin设置此参数表示启用binlog功能,并指定路径名称log_bin_ind ...
- mysqlbinlog读懂binlog
binlog 报unknown variable 'default-character-set=utf8' 方法1: 在/etc/my.cnf 中将default-character-set=utf8 ...
- Mysql设置主库binlog文件自动清理
mysql主库中设置了打开binlog模式后,会在datadir目录下生成大量的日志文件,mysql默认是不会自动清理的,我们来设置下mysql自动清理binlog文件 一.打开mysql [root ...
- windows下mysql 主库从库同步
今天先讲讲数据库的主从同步,两个好处: 一是读写分离可以用上.比如 写操作就写到主数据库,读就再从库读取 二是纯粹给数据库备份,以防硬盘彻底崩了 主从数据库操作准备: 两台电脑,都安装好mysql 5 ...
- maxwell实时同步mysql中binlog
概述 Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redis.Google Cloud ...
随机推荐
- Dubbo开发,利用项目模拟提供者和消费者之间的调用--初学
开发工具:IDEA,虚拟机 VMware Workstation 预备工作:安装好zookeeper的虚拟机,电脑jdk更换为1.7,本地tomcat启动,能够访问以下页面即可进行开发 2.建立以下s ...
- Java 环境部署之Idea :解决Idea 中gradle编译 war 包编码不对
IDE进行Gradle操作,那么还需要设置IDE的参数.例如在IDEA中,需要打开File->Other Settings->Default Settings->Gradle,在Gr ...
- c/c++ 多线程 绕过mutex的保护
多线程 绕过mutex的保护 mutex,能够解决线程安全的问题,但它不是万能的.下面的例子虽然使用了mutex,但是恶意注入了一个外部函数,导致把被mutex保护的双向链表,让一个外部的指针指向了, ...
- c/c++ linux 进程 fork wait函数
linux 进程 fork wait函数 fork:创建子进程 wait:父进程等待子进程结束,并销毁子进程,如果父进程不调用wait函数,子进程就会一直留在linux内核中,变成了僵尸进程. for ...
- Spring Boot 2.x 快速入门(下)HelloWorld示例详解
上篇 Spring Boot 2.x 快速入门(上)HelloWorld示例 进行了Sprint Boot的快速入门,以实际的示例代码来练手,总比光看书要强很多嘛,最好的就是边看.边写.边记.边展示. ...
- bootatrsp datetimepicker的初始化和阻止模态窗关闭(事件冒泡)
1.github下载资源包 http://www.bootcss.com/p/bootstrap-datetimepicker/ 2.引入bootstrap-datetimepicker.min.c ...
- yum自动安装mysql
1.安装客户端和服务器端查看CentOS自带mysql: yum list installed | grep mysql卸载CentOS系统自带mysql数据库? yum -y remove mysq ...
- Linux-基础学习(六)-Redis的进阶学习
1. redis的进阶操作 1.1 redis的订阅操作 发布订阅的命令 PUBLISH channel msg 将信息 message 发送到指定的频道 channel SUBSCRIBE chan ...
- Linux系统中常见的目录名称以及相应内容
目录名称 应放置文件的内容 /boot 开机所需文件——内核.开机菜单以及所需配置文件等等 /dev 以文件形式存放任何设备与接口 /etc 配置文件 /home 用户家目录 /bin 存放单用户模式 ...
- KindEditor富文本编辑器使用
我的博客本来打算使用layui的富文本编辑器,但是出了一个问题,无法获取编辑器内容,我参考官方文档,获取内容也就那几个方法而已,但是引入进去后始终获取的值为空,百度和bing都试过了,但是始终还是获取 ...