设为首页 加入收藏

TOP

MySQL延时备份之实现(二)
2014-11-23 23:40:34 来源: 作者: 【 】 浏览:25
Tags:MySQL 延时 备份 实现
g=s Print all output to this file when daemonized

–password=s -p Password to use when connecting

–pid=s Create the given PID file when daemonized

–port=i -P Port number to use for connection

–quiet -q Don’t print informational messages about operation

–run-time=m How long mk-slave-delay should run before exiting.

Optional suffix s=seconds, m=minutes, h=hours, d=days;

if no suffix, s is used.

–set-vars=s Set these MySQL variables (default wait_timeout=10000)

–socket=s -S Socket file to use for connection

–use-master Get binlog positions from master, not slave

–user=s -u User for login if not current user

–version Show version and exit

5、 延时原理
mk-slave-delay 定时地starts /stops slave的sql_thread,以使其达到滞后master的目的。

2011-02-15T14:46:19 START SLAVE until master 2011-02-15T06:46:17 apollo226-bin.000290/779116659

2011-02-15T14:46:19 START SLAVE until master 2011-02-15T06:46:18 apollo226-bin.000290/781852897

6、 应用布署
脚本my_slave_delay.sh集中控制延时备份DB服务器.

服务器信息以host_ip port 的格式存在delay_host配置文件中。

head delay_host.txt

10.xx.xx.xxx 3601

usage1: sh my_slave_delay.sh

usage2: sh my_slave_delay.sh [delay_host] [delay] [interval]

my_slave_delay核心代码:

delay_host=$1

delay_host=${delay_host:-”delay_host.txt”}

delay=$2

delay=${delay:-”8h”}

interval=$3

interval=${interval:-”2m”}

log_file=”my_slave_delay.log”

my_slave_delay(){

cat $delay_host |grep -v ‘#’ | while read host port

do

echo ” /usr/bin/mk-slave-delay -h $host -P $port –interval=$interval –delay=$delay &”

echo ” /usr/bin/mk-slave-delay -h $host -P $port –interval=$interval –delay=$delay &”>>$log_file

/usr/bin/mk-slave-delay -h $host -P $port –interval=$interval –delay=$delay &

sleep 1

done

}

### 取消延时

my_slave_start(){

echo “my_slave_start”

ps aux |grep “mk-slave-delay -h” -i |grep -v “grep” | awk ‘{print $2,$14,$16}’ | while read pid host port ;

do

echo “stop slave delay <$host:$port>”;

kill -9 $pid

echo “slave start sql_thread <$host:$port>”

echo “slave start sql_thread;” | mysql -h $host -P$port -N

done;

echo “my_slave_start done.”

}

7、 参考
http://www.maatkit.org/doc/mk-slave-delay. html
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MYSQL数据类型详解 下一篇MySQL 的临时目录

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: