#!/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. 从0开始的Python学习008变量

    局部变量 在我们定义函数的过程中,函数内外具有相同名称的变量是没有任何关系的.变量的名称对于函数来说是局部的,而它所在的代码块就是它的作用域. 使用局部变量 #局部变量 def func(x): pr ...

  2. javaweb学习--jsp

    阅读电子书<Java Web从入门到精通>密码:461c,学习JavaWeb基础知识.由于本人已有html基础,所以直接略过前面部分,进入jsp学习 jsp页面添加库引用,引入项目文件 引 ...

  3. [RHEL 6]GPT分区--parted

    对于2T以上的硬盘,划分分区表需要GPT分区,RHEL 6中使用parted进行分区 用法:parted [选项]... [设备 [命令 [参数]...]...] 将带有“参数”的命令应用于“设备”. ...

  4. docker-compose编排项目redis容器实现主从复制

    一.pip管理工具安装 docker-compose是python项目,所以安装需要通过python下的包管理工具pip安装.一般linux服务器都会预安装有python环境,所以优先检查python ...

  5. Saltstack_使用指南06_远程执行-指定目标

    1. 主机规划 Targeting Minions文档 https://docs.saltstack.com/en/latest/contents.html 另请参见:自动化运维神器之saltstac ...

  6. June. 24th 2018, Week 26th. Sunday

    Beautiful things don't ask for attention. 真正美丽的东西,并不会刻意寻求别人的注目. From The Secret Life of Walter Mitty ...

  7. Extjs 判断对象是非为null或者为空字符串

    Ext.isEmpty(str,[allowEmptyString]) 如果str为 null undefined a zero-length array a zero-length string ( ...

  8. .NET MVC全局异常处理(一)

    目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关的配置,但没有实际做过,以为改下设定就 ...

  9. 爬虫系列---scrapy全栈数据爬取框架(Crawlspider)

    一 简介 crawlspider 是Spider的一个子类,除了继承spider的功能特性外,还派生了自己更加强大的功能. LinkExtractors链接提取器,Rule规则解析器. 二 强大的链接 ...

  10. Django-CRM项目学习(一)-admin组件

    开始今日份整理 1.admin组件使用 1.1 创建django项目以及开启APP01 略 1.2 创建类 使用django自带的sqlite3的小型文件型的数据库 注:使用sqlite3类型的数据库 ...