数据是企业最宝贵的资源,作为运维人员备份数据库的数据是特别重要的一项工作,以下是个人查找资料以及个人总结所记录的mysql数据库备份脚本,记录在此作为学习和复习笔记。
(1)分库备份脚本
<code>#/bin/sh</code>
<code>#version 0.1</code>
<code>MYUSER=root</code>
<code>MYPASS=123123</code>
<code>#SOCKET=/data/3306/mysql.sock</code>
<code>MYLOGIN=</code><code>"mysql -u$MYUSER -p$MYPASS "</code>
<code>MYDUMP=</code><code>"mysqldump -u$MYUSER -p$MYPASS -B"</code>
<code>DATABASE=</code><code>"$($MYLOGIN -e "</code><code>show databases;</code><code>"|egrep -vi "</code><code>Data|_schema|mysql</code><code>")"</code>
<code>for</code> <code>dbname </code><code>in</code> <code>$DATABASE</code>
<code> </code><code>do</code>
<code> </code><code>MYDIR=</code><code>/server/backup/</code><code>$dbname</code>
<code> </code><code>[ ! -d $MYDIR ] && </code><code>mkdir</code> <code>-p $MYDIR</code>
<code> </code><code>$MYDUMP $dbname|</code><code>gzip</code> <code>>$MYDIR/${dbname}_$(</code><code>date</code> <code>+%F).sql.gz</code>
<code> </code><code>done</code>
(2)分库分表备份脚本:
<code>PASSWD=123123</code>
<code>MYLOGIN=</code><code>"mysql -u$USER -p$PASSWD "</code>
<code>MYDUMP=</code><code>"mysqldump -u$USER -p$PASSWD "</code>
<code>DATEBASE=</code><code>"$($MYLOGIN -e "</code><code>show databases;</code><code>"|egrep -vi "</code><code>Data|_schema|mysql</code><code>")"</code>
<code>for</code> <code>dbname </code><code>in</code> <code>$DATEBASE</code>
<code>do</code>
<code> </code><code>TABLE=</code><code>"$($MYLOGIN -e "</code><code>use $dbname;show tables;</code><code>"|sed '1d')"</code>
<code> </code><code>for</code> <code>tname </code><code>in</code> <code>$TABLE</code>
<code> </code><code>do</code>
<code>MYDIR=</code><code>/server/backup/</code><code>$dbname/${dbname}_$(</code><code>date</code> <code>+%F)</code>
<code> </code><code>[ ! -d $MYDIR ] && </code><code>mkdir</code> <code>-p $MYDIR</code>
<code> </code><code>$MYDUMP $dbname $tname |</code><code>gzip</code> <code>>$MYDIR/${dbname}_${tname}_$(</code><code>date</code> <code>+%F).sql.gz</code>
<code> </code><code>done</code>
<code>(3) 设置定时任务</code>
<code> </code><code>crontab</code>
<code> </code>
<code> </code><code>语法:</code>
<code> </code><code>* * * * * </code><code>command</code>
<code> </code><code>minute hour day month week </code><code>command</code>
<code>其中:</code>
<code>minute: 表示分钟,可以是从0到59之间的任何整数。</code>
<code>hour:表示小时,可以是从0到23之间的任何整数。</code>
<code>day:表示日期,可以是从1到31之间的任何整数。</code>
<code>month:表示月份,可以是从1到12之间的任何整数。</code>
<code>week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。</code>
<code>command</code><code>:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。</code>
<code>例如:</code>
<code>57 21 * * * </code><code>/bin/sh</code> <code>/bash/script/back_mysql</code><code>.s</code>
本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1866520,如需转载请自行联系原作者