linux下改良版本MySQLdump来备份MySQL数据库
2022-11-12 09:21:05
内容摘要
这篇文章主要为大家详细介绍了linux下改良版本MySQLdump来备份MySQL数据库,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!因为MYSQLDUMP
文章正文
这篇文章主要为大家详细介绍了linux下改良版本MySQLdump来备份MySQL数据库,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
因为MYSQLDUMP会为整个库来加一个全局锁定。如果单纯用MYSQLDUMP进行全库备份会造成以下三个方面的影响。1、服务器CPU严重阻塞。2、磁盘I/O直线增加。3、所有的查询都成了慢查询。我现在的网站数据库大概是5个G左右,而且每天都有增大。表结构是MYISAM,INNODB,MEMORY三者混合。所以单纯用HOTCOPY工具恐怕有点困难。所以我今天简单变了一下我上次写的关于用OUTFILE来备份MYSQL的脚本。可以解决上面说的三个缺点。1、备份脚本内容[david_yeung@localhost~]$catfast_backup#!/bin/sh##Createdbydavidyeung.##20080707.##Backupmysql'sfulldata.#DBNAME=$1BACKUPDIR=/home/david_yeung/backup_newUSERNAME=backup_userPASSWD=123456TARNAME="$BACKUPDIR"/backup"$1"`date'+%Y%m%d'`#Addyourowndatabasenamehere.case"$1"inmy_site);;*)exit;;esac#Getallthetables'name.NUM=`/usr/local/mysql/bin/mysql-u$USERNAME-p$PASSWD-s-vv-e"showtables"-D$DBNAME|wc-l`HEADNUM=`expr${NUM}-3`TAILNUM=`expr${NUM}-7`ARR1=`/usr/local/mysql/bin/mysql-u$USERNAME-p$PASSWD-s-vv-e"showtables"-D$DBNAME|head-n"$HEADNUM"|tail-n"$TAILNUM"`ARR2=($ARR1)i=0while["$i"-lt"${#ARR2[@]}"]dotmpFileName=${ARR2[$i]}#Therealdumpprocess./usr/local/mysql/bin/mysqldump-u$USERNAME-p"$PASSWD""$DBNAME""$tmpFileName">>"$TARNAME"let"i++"done2、因为我们一直用存储过程,所以得单独备份出来。 [david_yeung@localhost~]$catfast_sp#!/bin/sh#Createdbydavidyeung20080122.##Backupsite'sroutine.TARNAME=/home/david_yeung/backup_new/spBackup"$1"`date'+%Y%m%d'`/usr/local/mysql/bin/mysqldump-ubackup_user-p123456-n-t-d-Rmy_site>"$TARNAME"3、丢到计划任务里面去,就不管了。[root@localhostbackup_new]#crontab-l001***/home/david_yeung/fast_backupmy_site00**5/home/david_yeung/fast_sp每天凌晨1点备份数据,每个周五凌晨备份存储过程。注:关于linux下改良版本MySQLdump来备份MySQL数据库的内容就先介绍到这里,更多相关文章的可以留意
代码注释