MySQL的备份网络优化

目录

公司的MySQL服务器定时在凌晨4:00准时开始备份。

结果是会触发报警,net流量增高,cpu增高,磁盘io增高,这个是属于正常的,如何避免触发警报呢?

有4种方法:

一、优化io和cpu,让备份写磁盘的速度降下来,平稳的写入

1nice -n 10 ionice -c2 -n 7 /usr/bin/mysqldump -S /var/lib/mysql/mysql.sock -uroot --single-transaction --quick\  
2  --triggers -R --hex-blob --log-error=$db.log --databases $db > $basedir/$backdir/$db.sql

二、加快备份速度,多线程,让报警触发之前就结束备份

 1COMMIT_COUNT=0  
 2COMMIT_LIMIT=10  
 3for DB in `cat ListOfDatabases.txt`  
 4do  
 5    mysqldump -h... -u... -p... --hex-blob --routines --triggers ${DB} | gzip > ${DB}.sql.gz &
 6    (( COMMIT_COUNT++ ))
 7    if [ ${COMMIT_COUNT} -eq ${COMMIT_LIMIT} ]
 8    then
 9        COMMIT_COUNT=0
10        wait
11    fi
12done  
13if [ ${COMMIT_COUNT} -gt 0 ]  
14then  
15    wait
16fi  

三、用cstream来控制流速

-t = throughput in bytes/sec 1000000是一兆,每秒只允许写一兆

1mysqldump --single-transaction --quick -u <USER> -p<PASS> <Database> | cstream -t 1000000 > backup.sql  

四、用pv来控制流速

–rate-limit Limit the transfer to a maximum of RATE bytes per second. 单位可以是:1k 1m 1g 1t

1mysqldump --single-transaction --quick -u -p | pv --rate-limit 1m > db.sql  

Dell R730XD服务器如何确定是哪块硬盘坏了
给老旧的CentOS系统设置yum源
comments powered by Disqus