簡體   English   中英

如何從fullbackup提取單個表數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM