MySQL中怎么实现延时备份

39次阅读
没有评论

共计 4714 个字符,预计需要花费 12 分钟才能阅读完成。

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 中怎么实现延时备份的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计4714字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)