MySQL中怎么实现延时备份

发布时间:2021-08-04 17:27:46 作者:Leah
来源:亿速云 阅读:145

MySQL中怎么实现延时备份,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。


 
1、     maatkit工具集简介
 
maatkit是一个包括多个实用MySQL的工具集,使用它们,可以让你的MySQL服务器使用起来更加方便也更加安全。maatkit是开源的软件,你可以自由的改进软件并将自己作出的改进版本向社会发行传播。
 
maatkit工具目前包含26个不同功能的工具。
 
主要有:
 
mk-archiver,mk-audit,mk-find,mk-kill,mk-heartbeat,mk-query-digest,mk-parallel-dump,mk-parallel-restore,mk-show-grants ,mk-slave-delay,mk-slave-move,mk-slave-restart等工具。
 
顾名思义mk-slave-delay是延时备份工具。mk-slave-delay控制MySQL slave端,使它滞后于其master。
 
2、     maatkit安装
:http://code.google.com/p/maatkit/
 
安装步骤:
 
tar -zxf maatkit-<version>.tar.gz
 
cd maatkit-<version>
 
perl Makefile.PL
 
make install
 
###
 
# make install
 
&hellip;.
 
Installing /usr/bin/mk-index-usage
 
Installing /usr/bin/mk-slave-delay
 
Installing /usr/bin/mk-archiver
 
Installing /usr/bin/mk-checksum-filter
 
Installing /usr/bin/mk-slave-prefetch
 
Installing /usr/bin/mk-log-player
 
Installing /usr/bin/mk-query-profiler
 
Installing /usr/bin/mk-slave-move
 
Installing /usr/bin/mk-query-digest
 
Installing /usr/bin/mk-show-grants
 
Installing /usr/bin/mk-parallel-restore
 
Installing /usr/bin/mk-profile-compact
 
Installing /usr/bin/mk-find
 
Installing /usr/bin/mk-table-checksum
 
Installing /usr/bin/mk-fifo-split
 
Installing /usr/bin/mk-error-log
 
Installing /usr/bin/mk-visual-explain
 
Installing /usr/bin/mk-variable-advisor
 
Installing /usr/bin/mk-kill
 
Installing /usr/bin/mk-heartbeat
 
Installing /usr/bin/mk-purge-logs
 
Installing /usr/bin/mk-query-advisor
 
Installing /usr/bin/mk-parallel-dump
 
Installing /usr/bin/mk-merge-mqd-results
 
Installing /usr/bin/mk-duplicate-key-checker
 
Installing /usr/bin/mk-upgrade
 
Installing /usr/bin/mk-deadlock-logger
 
Installing /usr/bin/mk-slave-restart
 
Installing /usr/bin/mk-slave-find
 
Installing /usr/bin/mk-loadavg
 
Installing /usr/bin/mk-table-sync
 
3、     文档帮助
man /usr/bin/mk-slave-delay
 
/usr/bin/mk-slave-delay &ndash;help
 
4、     mk-slave-delay使用
示例:
 
mk-slave-delay &ndash;delay 1m &ndash;interval 15s &ndash;run-time 10m slavehost
 
延时运行10分钟,slave滞后master1分钟,15秒检查下次延时情况。
 
详细参数说明:
 
Usage: mk-slave-delay [OPTION...] SLAVE-HOST [MASTER-HOST]
 
Options:
 
&ndash;ask-pass            Prompt for a password when connecting to MySQL
 
&ndash;charset=s       -A  Default character set
 
&ndash;config=A            Read this comma-separated list of config files; if
 
specified, this must be the first option on the command
 
line
 
&ndash;[no]continue        Continue replication normally on exit (default yes)
 
&ndash;daemonize           Fork to the background and detach from the shell
 
&ndash;defaults-file=s -F  Only read  options from the given file
 
&ndash;delay=m             How far the slave should lag its master (default 1h).
 
Optional suffix s=seconds, m=minutes, h=hours, d=days;
 
if no suffix, s is used.
 
&ndash;help                Show help and exit
 
&ndash;host=s          -h  Connect to host
 
&ndash;interval=m          How frequently mk-slave-delay should check whether the
 
slave needs to be started or stopped (default 1m).
 
Optional suffix s=seconds, m=minutes, h=hours, d=days;
 
if no suffix, s is used.
 
&ndash;log=s               Print all output to this file when daemonized
 
&ndash;password=s      -p  Password to use when connecting
 
&ndash;pid=s               Create the given PID file when daemonized
 
&ndash;port=i          -P  Port number to use for connection
 
&ndash;quiet           -q  Don&rsquo;t print informational messages about operation
 
&ndash;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.
 
&ndash;set-vars=s          Set these MySQL variables (default wait_timeout=10000)
 
&ndash;socket=s        -S  Socket file to use for connection
 
&ndash;use-master          Get binlog positions from master, not slave
 
&ndash;user=s          -u  User for login if not current user
 
&ndash;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 &lsquo;#&rsquo; | while read host port
 
do
 
echo ” /usr/bin/mk-slave-delay  -h $host -P $port &ndash;interval=$interval  &ndash;delay=$delay &”
 
echo ” /usr/bin/mk-slave-delay  -h $host -P $port &ndash;interval=$interval  &ndash;delay=$delay &”>>$log_file
 
/usr/bin/mk-slave-delay  -h $host -P $port &ndash;interval=$interval  &ndash;delay=$delay &
 
sleep 1
 
done
 
}
 
### 取消延时
 
my_slave_start(){
 
echo “my_slave_start”
 
ps aux |grep “mk-slave-delay -h” -i |grep -v “grep” |  awk &lsquo;{print $2,$14,$16}&rsquo; | 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.”
 
}

看完上述内容,你们掌握MySQL中怎么实现延时备份的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. mysql复制延时排查
  2. 怎么在MySQL中实现延时复制库

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:mysql中dumpfile与outfile函数的区别是什么

下一篇:如何解决某些HTML字符打不出来的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》