计划备份mysql数据库

日期: 2009-03-05 作者:gzmaster 来源:TechTarget中国 英文

  1:mysql是我们使用最多的数据库,如果在日常中正确的对mysql数据进行备份,下面我们就来做这事,通过脚本来实现
   


 #!/bin/bash
    #backup My databases
    #by luox at 2008-10-24
    source /home/cacti/.bash_profile
    PATH=/home/cacti/local/mysql5.0.22/bin:/home/cacti/local/php5.2.6/bin:/home/cacti/local/apache2.2.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    #date +%Y-%m-%d
    #backup bbs database
    mysqldump -S /home/cacti/tmp/mysql.sock -u bbsuser -p’pDdWShDzwXSLzSCB’ –default-character-set=gbk –opt –extended-insert=false –hex-blob bbsuser >/home/cacti/backup/bbsuser_bak_`date +%Y-%m-%d`.sql
    #compress the bak files
    bzip2 /home/cacti/backup/bbsuser_bak_`date +%Y-%m-%d`.sql

    #remove 4 week old bak files
    find /home/cacti/backup/ -name ‘*.bz2’ -ctime +28 -exec rm {} ;

    通过上面的脚本就可以实现备份数据,简单介绍一下mysqldump这个命令的使用(上文中粗体bbsuser指的是数据库名)

    -S 指定数据库使用的sock文件,一个系统中可以运行多个不同端口的mysql,如果要连接这个数据库就需要用到这个参数来指定sock文件

    -u 指定用户,在这里,如果我们备份bbsuser数据库,只需要用到bbsuser这个用户就可以了。当然root用户也可以,只不过我们写在脚本里当然用权限小点更佳

    -p 指定密码,使用”将密码括起来

    –default-character-set= 用于设置数据库的格式,这和数据库使用默认的语言有关,可以连接到数据库里使用show variables;来查看当前,一般有utf8 gbk

    –opt实施备份可能是最常用的方法,因为备份速度上的优势

    –extended-insert=false 是为了导出为多行Insert,不然可能因为Insert语句过长出错

    –hex-blob 使用十六进制格式导出二进制字符串字段

    -A, –all-databases Dump all the databases. This will be same as –databases with all databases selected. 可以用于备份所有数据库

    PS:使用date +%Y-%m-%d 可以显示出当天的日期,我们在备份时也加个这参数可以起很好的标识备份文件日期作用。如果在mysqldump中引用date需要使用`date +%Y-%m-%d`

    2:bzip2 可以将文件压缩成bz2的文件,并且删除掉原来的,

    3:通过find来查找,然后根据时间,如果多于28天(4周)就进行删除。

    4:接下来还可以将这个脚本执行放到Crontab中,让脚本一天运行一次,就可以对数据进行很好的备份了。


 #backup my database
    5 0 * * * /home/cacti/backup/backupmysql.sh >/dev/null 2>&1

    3:数据库的导入:

 /home/cacti/local/mysql5.0.22/bin/mysql -S /home/cacti/tmp/mysql.sock -ubbsuser -p’pDdWShDzwXSLzSCB’ bbsuser </home/cacti/backup/bbsuser_bak_2008-10-24.sql

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

gzmaster
gzmaster

相关推荐