[英]How extract single table data from fullbackup?
我們有一個昨天的“完整備份文件(daily_3101013.sql)”,它的大小為1TB 。 我們正在使用Percona-XTRA BACKUP進行完整的bakup。 因此,現在我希望從我的完整備份文件(daily_3101013.sql)中備份一個表/數據,以進行恢復/導入。
還原表時遇到問題。 您遇到的錯誤應該是“來自存儲引擎的錯誤-1” 。
我怎樣才能做到這一點?
請在這里幫助我。
我創建了一個bash腳本,將整個數據庫轉儲吐到每個表一個SQL文件中。
簽出並下載要點,將MySQL轉儲SQL轉儲SQL文件分成每個表一個文件
要提取單個表,請運行mysql_splitdump.sh daily_3101013.sql mytable
。
#!/bin/bash
####
# Split MySQL dump SQL file into one file per table
# based on http://blog.tty.nl/2011/12/28/splitting-a-database-dump
####
if [ $# -lt 1 ] ; then
echo "USAGE $0 DUMP_FILE [TABLE]"
exit
fi
if [ $# -ge 2 ] ; then
csplit -s -ftable $1 "/-- Table structure for table/" "%-- Table structure for table \`$2\`%" "/-- Table structure for table/" "%40103 SET TIME_ZONE=@OLD_TIME_ZONE%1"
else
csplit -s -ftable $1 "/-- Table structure for table/" {*}
fi
[ $? -eq 0 ] || exit
mv table00 head
FILE=`ls -1 table* | tail -n 1`
if [ $# -ge 2 ] ; then
mv $FILE foot
else
csplit -b '%d' -s -f$FILE $FILE "/40103 SET TIME_ZONE=@OLD_TIME_ZONE/" {*}
mv ${FILE}1 foot
fi
for FILE in `ls -1 table*`; do
NAME=`head -n1 $FILE | cut -d$'\x60' -f2`
cat head $FILE foot > "$NAME.sql"
done
rm head foot table*
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.