MySQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。

  ◆1、创建备份文件夹

  #cd /www

  #makedir backup

  ◆2、编写运行脚本

  #vi autobackup

  写入以下内容:

  filename=`date +%Y%m%d`

  mysql_bin_dir/mysqldump –opt dataname -u user -ppassword | gzip > /www/mysqlbackup/name${filename}.sql.gz

  保存退出

  说明:

  (1)mysql_bin_dir:mysql的bin路径;

  (2)dataname:数据库名;

  (3)user:数据库用户名;

  (4)password:用户密码;

  (5)name:自定义备份文件前缀标识。

  如上例,将自动备份mysql数据库,并以gzip压缩方式存储,文件名为name20080101.gz的形式。

  ◆3、为脚本添加执行权限

  #chmod +x autobackup

  ◆4、让crontab来完成定期执行的任务

  这一步中,Redhat的方法会不一样,后面专门给出。

  编辑crontab:

  #vi /etc/crontab

  在最后一行中加入:

  01 5 * * * root /www/autobackup

  每天5点运行脚本,也可以修改5为其他指定时间。

  Redhat方法:

  Redhat的crontab采用按时间调用4个目录(/etc/cron.hourly:每小时;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中脚本出来运行的方式。

  Redhat中只需要将刚才编辑的脚本复制到相应的目录即可。

  ◆5、重启crontab

  #/etc/rc.d/init.d/crond restart

  完成。

Mysqldump 命令小记 -opt

默认Mysqldump导出的SQL文件中不但包含了导出的数据,还包括导出 数据库中所有数据表的结构信息。
 
  –opt:此Mysqldump命令参数是可选的,如果带上这个选项代表激活了Mysqldump命令的quick,add-drop-table,add-locks,extended-insert,lock-tables参数,也就是通过–opt参数在使用Mysqldump导出My sql数据库信息时不需要再附加上述这些参数。
 
  –quick:代表忽略缓冲输出,Mysqldump命令直接将数据导出到指定的SQL文件。
  –add-drop-table:顾名思义,就是在每个CREATE TABEL命令之前增加DROP-TABLE IF EXISTS语句,防止数据表重名。
 
  –add-locks:表示在INSERT数据之前和之后锁定和解锁具体的数据表,你可以打开Mysqldump导出的SQL文件,在INSERT之前会出现LOCK TABLES和UNLOCK TABLES语句。
  –extended-insert (-e):此参数表示可以多行插入。

Logo

更多推荐