首先,我将假定您无法仅复制数据/目录,因为如果您使用现有的快照/备份/恢复可能就足够了(并且将您的备份/还原过程测试到讨价还价中) 。
在这种情况下,如果两个表具有相同的结构,通常最快,讽刺的是,最简单的方法是在一端使用SELECT … INTO OUTFILE …,另一端使用LOAD DATA INFILE …。
对于简单的表,以下内容将起作用:
SELECT * FROM mytable INTO OUTFILE '/tmp/mytable.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\\\'
LINES TERMINATED BY '\\n' ;
LOAD DATA INFILE '/tmp/mytable.csv' INTO TABLE mytable
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\\\'
LINES TERMINATED BY '\\n' ;
我们还使用FIFO来实现很大的效果,以避免实际写入磁盘的开销,或者由于某种原因需要写入磁盘,以通过gzip进行管理。
即。
mkfifo /tmp/myfifo
gzip -c /tmp/myfifo > /tmp/mytable.csv.gz &
... SEL
ECT... INTO OUTFILE '/tmp/myfifo' .....
wait
gunzip -c /tmp/mytable.csv.gz > /tmp/myfifo &
... LOAD DATA INFILE /tmp/myfifo .....
wait
基本上,您可以将表格数据指向FIFO,您可以将其压缩,将其隐藏,或者通过网络将其隧道传输到您的心脏内容。