溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么實現(xiàn)延時備份

發(fā)布時間:2021-08-04 17:27:46 來源:億速云 閱讀:139 作者:Leah 欄目:數(shù)據(jù)庫

MySQL中怎么實現(xiàn)延時備份,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。


 
1、     maatkit工具集簡介
 
maatkit是一個包括多個實用MySQL的工具集,使用它們,可以讓你的MySQL服務器使用起來更加方便也更加安全。maatkit是開源的軟件,你可以自由的改進軟件并將自己作出的改進版本向社會發(fā)行傳播。
 
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秒檢查下次延時情況。
 
詳細參數(shù)說明:
 
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.”
 
}

看完上述內(nèi)容,你們掌握MySQL中怎么實現(xiàn)延時備份的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI