#!/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. Linux中DHCP服务器的简单配置

    我安装了两台linux系统,一个作为服务器,一个客户端 两个都有3个网卡, 后两个网卡聚合为zhi一个网卡:Linux 网卡聚合 两台电脑都一样. 那么如何为这个聚合网卡进行DHCP的分配呢? 1.由 ...

  2. Python爬虫之Selenium库的基本使用

    Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Fire ...

  3. 虚拟机 与 host主机,无法ping通的问题

    这个写的比较简单,先做以下记录 centos虚拟机安装到别的电脑上,因为linux中的程序需要向外有网络互通,所以需要重新设置ip 通过 ifconfig eth4 192.168.0.20  bro ...

  4. CentOS7.2重置root密码的处理方法

    第一个里程碑 --在启动GRUB菜单中选择编辑选项,按键 "e" 进入编辑; 第二个里程碑 -- 大约在第16行找到 "ro" 将 "ro" ...

  5. java格式化

    http://tool.oschina.net/apidocs/apidoc?api=jdk-zh https://www.jianshu.com/p/c8f16cab35e1# 参考官方的 api说 ...

  6. Java11新特性!

    Java11又出新版本了,我还在Java8上停着.不过这也挡不住我对他的热爱,忍不住查看了一下他的新性能,由于自己知识有限,只总结了以下八个特性: 1.本地变量类型推断 什么是局部变量类型推断? va ...

  7. 网络流 之 dinic算法

    我觉得这个dinic的算法和之前的增广路法差不多 .使用BFS对残余网络进行分层,在分层时,只要进行到汇点的层次数被算出即可停止, 因为按照该DFS的规则,和汇点同层或更下一层的节点,是不可能走到汇点 ...

  8. SpringBoot标准Properties

    # =================================================================== # COMMON SPRING BOOT PROPERTIE ...

  9. MJT's Blog

    This is MJT's blog. Here is a mirror web of his blog.

  10. C#中指针使用总结(转载)

    C#为了类型安全,默认并不支持指针.但是也并不是说C#不支持指针,我们可以使用unsafe关键词,开启不安全代码(unsafe code)开发模式.在不安全模式下,我们可以直接操作内存,这样就可以使用 ...