<?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>惜分飞 &#187; rm mysql database</title>
	<atom:link href="https://www.xifenfei.com/tag/rm-mysql-database/feed" rel="self" type="application/rss+xml" />
	<link>https://www.xifenfei.com</link>
	<description>提供7*24专业数据库(Oracle,SQL Server,MySQL,PostgreSQL等)恢复和技术支持@Tel:17813235971</description>
	<lastBuildDate>Thu, 29 Oct 2026 15:31:46 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>又一起mysql rm删除数据库目录事故</title>
		<link>https://www.xifenfei.com/2020/05/mysql-rm-database-recovery.html</link>
		<comments>https://www.xifenfei.com/2020/05/mysql-rm-database-recovery.html#comments</comments>
		<pubDate>Mon, 11 May 2020 15:00:38 +0000</pubDate>
		<dc:creator><![CDATA[惜分飞]]></dc:creator>
				<category><![CDATA[MySQL恢复]]></category>
		<category><![CDATA[rm mysql]]></category>
		<category><![CDATA[rm mysql database]]></category>
		<category><![CDATA[删除mysql目录恢复]]></category>

		<guid isPermaLink="false">https://www.xifenfei.com/?p=8693</guid>
		<description><![CDATA[联系：手机/微信(+86 17813235971) QQ(107644445)  &#8230; <a href="https://www.xifenfei.com/2020/05/mysql-rm-database-recovery.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="xifenfeicopyright">
<p>联系：<a href="https://www.xifenfei.com/about_xifenfei" target="_blank">手机/微信(+86 17813235971)   QQ(107644445)</a><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&#038;uin=107644445&#038;site=qq&#038;menu=yes"><img src="https://www.xifenfei.com/wp-content/themes/img/site_qq.jpg" alt="QQ咨询惜分飞" title="QQ咨询惜分飞"/></a></p>
<p>标题：<a href="https://www.xifenfei.com/2020/05/mysql-rm-database-recovery.html" target="_blank">又一起mysql rm删除数据库目录事故</a></p>
<p>作者：<a href="https://www.xifenfei.com" target="_blank">惜分飞</a>©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]</p>
</div>
<p>有mysql用户直接使用rm命令删除了所在数据库目录文件夹(删除途中发现删除错误,直接强制终止使得部分删除,部分文件得以保留),如果数据库没有crash,这个问题不大,可以直接通过句柄进行恢复出来对应的ibd文件,然后进行一些特殊处理,数据理论上不会有丢失,参见:<a href="//www.xifenfei.com/2020/02/mysql-datadir-rm-recovery.html" title="mysql 数据库目录被删除恢复">mysql 数据库目录被删除恢复</a>.对于这次的情况,只能通过文件系统级别进行恢复,不过该数据库表比较多,大概删除了几千个文件,而且文件系统是ext4,导致大量文件目录被置空,而且该库还运行了一段时间<br />
<a href="//www.xifenfei.com/wp-content/uploads/2020/05/20200507231749.jpg"><img src="//www.xifenfei.com/wp-content/uploads/2020/05/20200507231749.jpg" alt="20200507231749" width="842" height="626" class="alignnone size-full wp-image-8694" /></a><br />
<hr />
看来文件恢复删除这条路,基本上很难走得通,可以通过底层碎片技术恢复,通过底层扫描,找到不少碎片<br />
<a href="//www.xifenfei.com/wp-content/uploads/2020/05/20200510173725.jpg"><img src="//www.xifenfei.com/wp-content/uploads/2020/05/20200510173725.jpg" alt="20200510173725" width="1396" height="530" class="alignnone size-full wp-image-8699" /></a><br />
<hr />
由于涉及的库表多,一个个处理太费时间,通过批量脚本直接解析扫描出来的碎片,并且对其进行入库处理<br />
DBLOGIN=&#8221;-uroot &#8221;<br />
DICT_DBNAME=test<br />
RECOVER_DBNAME=xifenfei<br />
WORK_PATH=&#8221;/nfs_share/mysql-xff&#8221;<br />
cd $WORK_PATH<br />
>/tmp/recover_table_list.$RECOVER_DBNAME<br />
>/tmp/recover_table_parser.$RECOVER_DBNAME<br />
>/tmp/recover_table_unload.$RECOVER_DBNAME<br />
rm -rf /tmp/recover_table_unload_$RECOVER_DBNAME.tmp<br />
echo &#8220;tee /tmp/recover_table_unload_$RECOVER_DBNAME.tmp&#8221; >/tmp/recover_table_unload.$RECOVER_DBNAME<br />
echo &#8220;SET @enable_trigger = 0;&#8221;>>/tmp/recover_table_unload.$RECOVER_DBNAME<br />
echo &#8220;SET FOREIGN_KEY_CHECKS=0;&#8221; >>/tmp/recover_table_unload.$RECOVER_DBNAME<br />
for TABLE_NAME_ID in `mysql $DBLOGIN $DICT_DBNAME -NBe &#8220;SELECT  SYS_TABLES.NAME FROM SYS_TABLES LEFT JOIN SYS_INDEXES ON SYS_TABLES.ID = SYS_INDEXES.TABLE_ID WHERE SYS_INDEXES.NAME IN (&#8216;PRIMARY&#8217;, &#8216;GENERAL_CLUSTERED_INDEX&#8217;) AND SYS_TABLES.NAME LIKE &#8216;${RECOVER_DBNAME}/%&#8217;&#8221;`<br />
do<br />
PKEY=`mysql $DBLOGIN $DICT_DBNAME -NBe &#8220;SELECT  SYS_INDEXES.ID FROM SYS_TABLES LEFT JOIN SYS_INDEXES ON SYS_TABLES.ID = SYS_INDEXES.TABLE_ID WHERE SYS_INDEXES.NAME IN (&#8216;PRIMARY&#8217;, &#8216;GENERAL_CLUSTERED_INDEX&#8217;) AND SYS_TABLES.NAME=&#8217;$TABLE_NAME_ID&#8217;&#8221;`<br />
echo $TABLE_NAME_ID&#8217;,&#8217;$PKEY >>/tmp/recover_table_list.$RECOVER_DBNAME<br />
TABLE_NAME=$(echo `echo $TABLE_NAME_ID`|awk -F&#8221;/&#8221; &#8216;{print $2}&#8217; )<br />
#echo $TABLE_NAME<br />
PAGE=&#8221;pages-ibdata1/FIL_PAGE_INDEX/`printf &#8216;%016u&#8217; ${PKEY}`.page&#8221;<br />
echo &#8220;./c_parser -5f $PAGE -b pages-ibdata1/FIL_PAGE_TYPE_BLOB -t dictionary/$TABLE_NAME.sql > dumps/default/$TABLE_NAME 2> dumps/default/$TABLE_NAME.sql&#8221;  >>/tmp/recover_table_parser.$RECOVER_DBNAME<br />
echo &#8220;source dumps/default/$TABLE_NAME.sql&#8221; >>/tmp/recover_table_unload.$RECOVER_DBNAME<br />
echo &#8220;select &#8216;$TABLE_NAME.sql&#8230;&#8230;done&#8217;;&#8221;>>/tmp/recover_table_unload.$RECOVER_DBNAME<br />
done<br />
echo /tmp/recover_table_parser.$RECOVER_DBNAME<br />
echo /tmp/recover_table_unload.$RECOVER_DBNAME<br />
恢复之后数据整体入库,查询部分没有覆盖表,效果尚可,最大限度抢救了数据<br />
<a href="//www.xifenfei.com/wp-content/uploads/2020/05/20200511225518.png"><img src="//www.xifenfei.com/wp-content/uploads/2020/05/20200511225518.png" alt="20200511225518" width="1508" height="623" class="alignnone size-full wp-image-8696" /></a><br />
<hr />
<div id="crp_related"><ul><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2010/07/mysql%e6%95%b0%e6%8d%ae%e7%ae%a1%e7%90%86.html" rel="bookmark" class="crp_title">mysql数据管理</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2014/12/%e4%bd%bf%e7%94%a8%e5%b7%a5%e5%85%b7%e7%9b%b4%e6%8e%a5%e6%8a%bd%e5%8f%96mysql%e6%95%b0%e6%8d%ae%e5%ad%97%e5%85%b8.html" rel="bookmark" class="crp_title">[MySQL异常恢复]使用工具直接抽取MySQL数据字典</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2022/07/mysql-ibd-undelete-error-recovery.html" rel="bookmark" class="crp_title">mysql ibd文件反删除恢复之后异常处理</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/06/format-disk-mysql-recovery.html" rel="bookmark" class="crp_title">文件系统格式化MySQL数据库恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2010/08/mysql%e6%95%b0%e6%8d%ae%e5%ba%93%e5%a4%87%e4%bb%bd%e5%8a%a0%e5%bc%ba%e7%89%88.html" rel="bookmark" class="crp_title">mysql数据库备份加强版</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2015/08/mysql%e6%81%a2%e5%a4%8d%e6%95%b0%e6%8d%ae%e5%ad%97%e5%85%b8%e8%a1%a8%e8%ae%b2%e8%a7%a3.html" rel="bookmark" class="crp_title">[MySQL异常恢复]恢复数据字典表讲解</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2020/03/horseleader-db-recovery.html" rel="bookmark" class="crp_title">.horseleader加密数据库恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2020/01/mysql-encrypted-recovery.html" rel="bookmark" class="crp_title">mysql数据库被加密恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2020/04/ncov-oracle-recovery.html" rel="bookmark" class="crp_title">.ncov加密oracle数据库恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2020/08/coincidenceleague-db-recovery.html" rel="bookmark" class="crp_title">coincidenceleague加密数据库恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2020/05/mysql-ibd-encrypted-recovery.html" rel="bookmark" class="crp_title">mysql ibd文件被加密恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2020/03/digital-suffix-encrypted-database-recovery.html" rel="bookmark" class="crp_title">数字后缀名加密数据库恢复</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>https://www.xifenfei.com/2020/05/mysql-rm-database-recovery.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
