我们有一个昨天的“完整备份文件(daily_3101013.sql)”它的大小是 1TB 。我们使用 Percona-XTRA BACKUP 进行完整的bakup。所以现在我想从我的完整备份文件(daily_3101013.sql)中获取一个表备份/数据用于恢复/导入目的。
遇到恢复表的问题。你得到的错误应该是“从存储引擎得到错误-1”。
我该怎么做?
请在这里帮助我。
答案 0 :(得分:1)
我已经创建了一个bash脚本,可以将完整的数据库转储吐出到每个表的一个SQL文件中。
结帐并下载要点Split MySQL dump SQL file into one file per table
提取单个表格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*