#!/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进行同步的更多相关文章

  1. 数据库主库从库宕机重启后binlog数据同步

    由于阿里云经典网络迁移到专用网络,一不小心没有先预备方案调整网段, 导致实例无法以内网IP形式访问数据库,被迫进行数据库停机后网络网段调整,导致宕机了几个小时...被客户各种投诉爆了.. 基于这次数据 ...

  2. mysqlbinlog 工具分析binlog日志

    MySQL的binlog 日志对于生产环境非常有用,任何时间对数据库的修改都会记录在binglog中:当数据发生增删改,创建数据库对象都会记录到binlog中,数据库的复制也是基于binlog进行同步 ...

  3. 主库binlog被purge的情形

    1.演示实验环境 --主库版本: root@(none)>show variables like 'version'; +---------------+-------------------- ...

  4. 主库binlog(master-log)与从库relay-log的关系

    主库binlog: # at # :: server id end_log_pos CRC32 COMMIT/*!*/; # at # :: server id end_log_pos CRC32 e ...

  5. mysql之 binlog维护详细解析(开启、binlog相关参数作用、mysqlbinlog解读、binlog删除)

    binary log 作用:主要实现三个重要的功能:用于复制,用于恢复,用于审计.binary log 相关参数:log_bin设置此参数表示启用binlog功能,并指定路径名称log_bin_ind ...

  6. mysqlbinlog读懂binlog

    binlog 报unknown variable 'default-character-set=utf8' 方法1: 在/etc/my.cnf 中将default-character-set=utf8 ...

  7. Mysql设置主库binlog文件自动清理

    mysql主库中设置了打开binlog模式后,会在datadir目录下生成大量的日志文件,mysql默认是不会自动清理的,我们来设置下mysql自动清理binlog文件 一.打开mysql [root ...

  8. windows下mysql 主库从库同步

    今天先讲讲数据库的主从同步,两个好处: 一是读写分离可以用上.比如 写操作就写到主数据库,读就再从库读取 二是纯粹给数据库备份,以防硬盘彻底崩了 主从数据库操作准备: 两台电脑,都安装好mysql 5 ...

  9. maxwell实时同步mysql中binlog

    概述 Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redis.Google Cloud ...

随机推荐

  1. SQLServer之创建视图

    视图定义 视图是一个虚拟的表,是一个表中的数据经过某种筛选后的显示方式,视图由一个预定义的查询select语句组成. 使用SSMS数据库管理工具创建视图 1.连接数据库,选择数据库,展开数据库-> ...

  2. Navicat Premium 12.0.24安装与激活(亲测已成功激活)

    另请参见:Navicat Premium 12.0.18 / 12.0.24安装与激活 另请参见:Navicat Premium 12安装与激活(亲测已成功激活) 说明: 本主亲自验证过,可以激活! ...

  3. 我的第一个python web开发框架(24)——系统重构与ORM

    小白弄完代码版本管理和接口文档后,兴奋的找到老菜. 小白:老大,我已经按你讲的要求,将代码版本管理和接口文档都搞好了.从项目开始到现在,除了代码编写,感觉学会好多东西啊. 老菜:嗯嗯,实战确实需要掌握 ...

  4. QQ的孤独

    接触网络到现在,已是好多年前的事了.初识网络犹如初恋般,充满了新鲜和好奇,于是,从聊天室到QQ,MSN,邮箱,再去BBS.然后有了博客^^^^^^ 那时的网络于我是那般充满诱惑,整天穿梭其中,乐此不彼 ...

  5. tian

    上次后来没继续在微信上聊,是因为快过年了,想趁那段时间结合年假做点东西.接下来阳历三四月份就受美国制裁.结果接下来制裁.fang. 16年的那次主要是生气,在一块儿 另外经济上也有问题. 我也想过不再 ...

  6. MAC oh-my-zsh

    效果图 step1 : 安装zsh    brew install zsh step2: sudo vim  /etc/shells 添加 /usr/local/bin/zsh  step3:安装oh ...

  7. YAML详解

    1   YAML简介 YAML,即YAML Ain’t Markup Language的缩写,YAML 是一种简洁的非标记语言.YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁 ...

  8. KindEditor富文本编辑器使用

    我的博客本来打算使用layui的富文本编辑器,但是出了一个问题,无法获取编辑器内容,我参考官方文档,获取内容也就那几个方法而已,但是引入进去后始终获取的值为空,百度和bing都试过了,但是始终还是获取 ...

  9. 2018-2019-2 20175332-实验一《Java开发环境的熟悉》实验报告

    一.安装IDEA 1.在官方网站下载IDEA安装包https://www.jetbrains.com/idea/download/#section=windows 2.破解软件,第一次参考博客是:ht ...

  10. Linux内存管理 (12)反向映射RMAP

    专题:Linux内存管理专题 关键词:RMAP.VMA.AV.AVC. 所谓反向映射是相对于从虚拟地址到物理地址的映射,反向映射是从物理页面到虚拟地址空间VMA的反向映射. RMAP能否实现的基础是通 ...