<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jz&#039;s blog &#187; recover</title>
	<atom:link href="http://www.imjz.org/archives/tag/recover/feed" rel="self" type="application/rss+xml" />
	<link>http://www.imjz.org</link>
	<description>党说，这个可以访问！</description>
	<lastBuildDate>Thu, 15 Jul 2010 07:53:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>最简单的linux备份mysql数据库方法</title>
		<link>http://www.imjz.org/archives/51</link>
		<comments>http://www.imjz.org/archives/51#comments</comments>
		<pubDate>Wed, 09 Sep 2009 15:28:17 +0000</pubDate>
		<dc:creator>老毛</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[recover]]></category>
		<category><![CDATA[备份]]></category>
		<category><![CDATA[定时]]></category>
		<category><![CDATA[脚本]]></category>

		<guid isPermaLink="false">http://www.imjz.org/archives/51</guid>
		<description><![CDATA[<p>mysql备份说简单挺简单的，说难吧也挺难的。</p>
<p>何谓备份？当然要能恢复，备份才有意义。</p>
<p>用了很多备份方法貌似恢复时都比较容易失败，今天就介绍一个不仅能备份数据库（费话，不能备份数据库叫备份吗！），而且完完整整的保留了数据库状态，日志什么的一个都不少。恢复稳定、方便的备份方法。</p>
<p>其实就是直接打包数据库[......]</p><p class='read-more'><a href='http://www.imjz.org/archives/51'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>mysql备份说简单挺简单的，说难吧也挺难的。</p>
<p>何谓备份？当然要能恢复，备份才有意义。</p>
<p>用了很多备份方法貌似恢复时都比较容易失败，今天就介绍一个不仅能备份数据库（费话，不能备份数据库叫备份吗！），而且完完整整的保留了数据库状态，日志什么的一个都不少。恢复稳定、方便的备份方法。</p>
<p>其实就是直接打包数据库Data目录（MyISAM类型的数据库也可直接备份数据库名的目录）。</p>
<p>恢复时直接替换原来的Data目录就可以了。</p>
<p>哈哈，是不是很简单哈，是不是很失望哈，搞了半天就那么点东东。别急，下面就介绍一个备份数据库的脚本，虽然技术含量不是很高，但确实很方便。</p>
<p>编写这个脚本主要是为了实现在WEB页面简单备份、恢复Mysql数据库。当然也可以通过crontab 定时备份数据库。</p>
<blockquote><p>#!/bin/sh<br />
# 功能：<br />
#    备份数据库、恢复数据库、导出数据库备份列表、删除数据库备份文件<br />
#<br />
# 历史：<br />
#    2009-09-09    Lunas.JZ(http://imjz.org)     First release<br />
#<br />
# 调用方式 backup.sh [option1 option2]<br />
#     备份文件 backup.sh<br />
#        backup前缀为用户主动被份，recover前缀为恢复某一备份文件前程序自动备份。<br />
#     恢复备份文件 backup.sh &#8220;recover&#8221; &#8220;filename&#8221;<br />
#     导出备份文件列表 backup.sh &#8220;show&#8221; &#8220;search&#8221;<br />
#        search可为 &#8220;recover&#8221;、&#8221;backup&#8221;、或grep 正则表达式<br />
#     删除文件 backup.sh &#8220;delete&#8221; &#8220;filename1 filename2&#8243;</p>
<p>#数据库文件的存放目录<br />
SourcePath=&#8221;/usr/local/mysql&#8221;<br />
#数据库<br />
SourceDir=&#8221;data&#8221;<br />
#备份文件存放目录<br />
BackupPath=&#8221;/usr/local/mysql/backup_data&#8221;<br />
#备份日志地址<br />
LogFile=&#8221;/usr/local/mysql/backup_data/dbbackup.log&#8221;<br />
#导出备份文件列表地址<br />
ShowFile=&#8221;/usr/local/jboss/server/default/deploy/ROOT.war/WEB-INF/backuplist.properties&#8221;</p>
<p># &#8212;&#8212;&#8212;&#8212;&#8212;-备份&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
backup(){<br />
if [ "$1" ]<br />
then<br />
Prefix=&#8221;recover&#8221;<br />
else<br />
Prefix=&#8221;backup&#8221;<br />
fi</p>
<p>if [ -d "$BackupPath" ]<br />
then<br />
echo &#8220;[$BackupPath]The Backup Directory is exist!&#8221; &gt;&gt; $LogFile<br />
else<br />
mkdir &#8220;$BackupPath&#8221;<br />
echo &#8220;[$BackupPath]The Backup Directory Creating successful!&#8221; &gt;&gt; $LogFile<br />
fi</p>
<p>NewFile=&#8221;$BackupPath&#8221;/&#8221;$Prefix&#8221;\_$(date +%y%m%d%H%M).tar.gz<br />
echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221; &gt;&gt; $LogFile<br />
echo $(date +&#8221;%y-%m-%d %H:%M:%S&#8221;) &gt;&gt; $LogFile<br />
echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221; &gt;&gt; $LogFile<br />
echo &#8220;Backup Data.&#8221; &gt;&gt; $LogFile</p>
<p>if [ -f $NewFile ]<br />
then<br />
echo &#8220;[$NewFile]The Backup File is exists! Deleting&#8230;.&#8221; &gt;&gt; $LogFile<br />
rm -f $NewFile &gt;&gt; $LogFile 2&gt;&amp;1<br />
fi</p>
<p>tar czvf $NewFile -C $SourcePath $SourceDir &gt;&gt; $LogFile 2&gt;&amp;1</p>
<p>echo &#8220;[$NewFile]Backup Success!&#8221; &gt;&gt; $LogFile<br />
return 0<br />
}</p>
<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;恢复&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
recover(){<br />
BackupFileName=&#8221;$BackupPath&#8221;/&#8221;$1&#8243;<br />
SourceFileName=&#8221;$SourcePath&#8221;/&#8221;$SourceDir&#8221;</p>
<p>echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221; &gt;&gt; $LogFile<br />
echo $(date +&#8221;%y-%m-%d %H:%M:%S&#8221;) &gt;&gt; $LogFile<br />
echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221; &gt;&gt; $LogFile<br />
echo &#8220;Recover old data.&#8221; &gt;&gt; $LogFile</p>
<p>if [ -f "$BackupFileName" ]<br />
then<br />
echo &#8220;Backup existing data.&#8221; &gt;&gt; $LogFile<br />
backup &#8220;recover&#8221;</p>
<p>echo &#8220;[$SourceFileName]Deleting old Data&#8230;&#8221; &gt;&gt; $LogFile<br />
rm -rf $SourceFileName &gt;&gt; $LogFile 2&gt;&amp;1</p>
<p>echo &#8220;[$BackupFileName]Recovering data&#8230;&#8221; &gt;&gt; $LogFile<br />
tar xzvf $BackupFileName -C $SourcePath &gt;&gt; $LogFile 2&gt;&amp;1<br />
echo &#8220;[$BackupFileName]Recovering successful.&#8221; &gt;&gt;$LogFile<br />
else<br />
echo &#8220;[$BackupFileName]Recover files not found.&#8221; &gt;&gt;$LogFile<br />
echo &#8220;[ERROR]Recovering Failure.&#8221; &gt;&gt;$LogFile<br />
return 1<br />
fi<br />
return 0<br />
}</p>
<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;将备份文件输出到指定文件以便程序获取&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
showfile(){<br />
echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221; &gt;&gt; $LogFile<br />
echo $(date +&#8221;%y-%m-%d %H:%M:%S&#8221;) &gt;&gt; $LogFile<br />
echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221; &gt;&gt; $LogFile<br />
echo &#8220;View the backup files list.&#8221; &gt;&gt; $LogFile</p>
<p>if [ "$1" ]<br />
then<br />
ls -1B $BackupPath | grep &#8216;.tar.gz\&gt;&#8217; | grep $1 &gt; $ShowFile<br />
else<br />
ls -1B $BackupPath | grep &#8216;.tar.gz\&gt;&#8217; &gt; $ShowFile<br />
fi<br />
return 0<br />
}</p>
<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-删除备份文件&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
deletefile(){<br />
echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221; &gt;&gt; $LogFile<br />
echo $(date +&#8221;%y-%m-%d %H:%M:%S&#8221;) &gt;&gt; $LogFile<br />
echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221; &gt;&gt; $LogFile<br />
echo &#8220;Delete old backup files.&#8221;    &gt;&gt; $LogFile</p>
<p>if [ "$1" ]<br />
then<br />
echo &#8220;[$1]Deleting old backup files&#8230;&#8221; &gt;&gt; $LogFile<br />
cd &#8220;$BackupPath&#8221;<br />
rm -f $1 &gt;&gt; $LogFile 2&gt;&amp;1<br />
else<br />
echo &#8220;[ERROR]Missing Parameter!&#8221; &gt;&gt; $LogFile<br />
return 1<br />
fi<br />
return 0<br />
}</p>
<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-执行开始，根据参数选择调用方法&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
case &#8220;$1&#8243; in<br />
&#8220;show&#8221;)<br />
showfile &#8220;$2&#8243;<br />
exit &#8220;$?&#8221;<br />
;;<br />
&#8220;recover&#8221;)<br />
service mysqld stop &gt;/dev/null 2&gt;&amp;1<br />
recover &#8220;$2&#8243;<br />
temp=$?<br />
service mysqld start &gt;/dev/null 2&gt;&amp;1<br />
exit $temp<br />
;;<br />
&#8220;delete&#8221;)<br />
deletefile &#8220;$2&#8243;<br />
exit &#8220;$?&#8221;<br />
;;<br />
*)<br />
service mysqld stop &gt;/dev/null 2&gt;&amp;1<br />
backup<br />
temp=$?<br />
service mysqld start &gt;/dev/null 2&gt;&amp;1<br />
exit $temp<br />
;;<br />
esac</p></blockquote>
<p>下载地址：<a href="http://code.google.com/p/lunasjz/downloads/list" target="_blank">http://code.google.com/p/lunasjz/downloads/list</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imjz.org/archives/51/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
