打印本文 打印本文 关闭窗口 关闭窗口
使用mysqldump进行Mysql 备份
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2308  更新时间:2009/4/22 20:48:54  文章录入:mintao  责任编辑:mintao
-v, --verbose  

冗长模式。打印出程序所做的更多的信息。  

-V, --version  

打印版本信息并且退出。  

-w, --where=''''where-condition''''  

只导出被选择了的记录;注意引号是强制的!  

"--where=user=''''jimf''''" "-wuserid>1" "-wuserid<1" 

 

1.2、最常见的mysqldump的一个备份: 

虽然mysqldump支持的命令有很多,对于大多数人而言,我们只需要使用-opt这个命令就已经足够了,为你的数据库做一个完整的备份:

 

mysqldump --opt database > backup-file.sql

 

但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的:  

 

mysqldump --opt database | mysql --host=remote-host -C database

 

1.3、使用mysqldump导出的文件恢复数据库

由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:

 

shell> mysqladmin create target_db_name  

shell> mysql target_db_name < backup-file.sql

 

就是

shell> mysql 库名 < 文件名 

二、使用mysqldump定时备份数据库的脚本

2.1、备份脚本

使用脚本每天定期执行数据库备份操作,对每个使用mysql数据库的人来说都很有必要,这样的脚本网上有很多,这里摘抄一个朋友的脚本 dbbackup:

 

这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。

 

dbbackup代码:

 

#!/bin/bash

#This is a ShellScript For Auto DB Backup

#Powered by aspbiz

#2004-09

 

#Setting

#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式

#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy

#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz

DBName=mysql

DBUser=root

DBPasswd=

BackupPath=/root/

LogFile=/root/db.log

DBPath=/var/lib/mysql/

#BackupMethod=mysqldump

#BackupMethod=mysqlhotcopy

#BackupMethod=tar

#Setting End

 

 

NewFile="$BackupPath"db$(date +%y%m%d).tgz

DumpFile="$BackupPath"db$(date +%y%m%d)

OldFile="$BackupPath"db$(date +%y%m%d --date=''''5 days ago'''').tgz

 

echo "-------------------------------------------" >> $LogFile

echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile

echo "--------------------------" >> $LogFile

#Delete Old File

if [ -f $OldFile ]

then

  rm -f $OldFile >> $LogFile 2>&1

  echo "[$OldFile]Delete Old File Success!" >> $LogFile

else

  echo "[$OldFile]No Old Backup File!" >> $LogFile

fi

 

if [ -f $NewFile ]

then

  echo "[$NewFile]The Backup File is exists,Can''''t Backup!" >> $LogFile

else

  case $BackupMethod in

  mysqldump)

     if [ -z $DBPasswd ]

     then

        mysqldump -u $DBUser --opt $DBName > $DumpFile

     else

        mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile

     fi

     tar czvf $NewFile $DumpFile >> $LogFile 2>&1

上一页  [1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口