我可以在myTable工作台中成功地执行“用于导出的刷新表”。然后我可以复制我需要的cfg和ibd文件,然后我可以回到工作台运行“解锁表”,一切都很好。但我想从Windows批处理文件中执行此操作。但是,如果我运行以下bat文件:
mysql -username u -password < prepareTableForCopy.txtprepareTableForCopy.txt包含以下内容:
use mydata;
FLUSH TABLES myTable FOR EXPORT;我没有错误,但当我查看数据文件夹时,我需要复制的文件不在那里。看来,一旦运行刷新和脚本返回,文件就会消失。
如何解决这个问题,以便实现我的目标,即有一个.bat文件来准备表的导出,并将正确的文件复制到另一个目录。拉链文件然后打开表?
发布于 2015-10-10 18:50:50
你的问题是保持两个会话
.ibd文件请注意以下事项
.ibd文件。要执行的步骤
这给出了25秒的时间来复制.ibd文件。
这是Windows文件
@echo off
rem
rem Setup Path to MySQL Folders
rem
set BASE_FOLDER="C:\Program Files\MySQL\MySQL Server 5.6"
set DATADIR=%BASE_FOLDER%\data
rem
rem Setup Path to .ibd file and Destination Folder
rem
set COPY_FROM_DB=mydata
set TABLE_TO_COPY=mytable
set IBD_TO_COPY=%DATADIR%\%COPY_FROM_DB%\%TABLE_TO_COPY%.ibd
rem
rem Setup Destination Folder
rem
set TARGET_FOLDER=D:\BackupFolder
rem
rem Setup MySQL Username and Password
rem
set MYSQL_USER=root
set MYSQL_PASS=rootpassword
set MYSQL_CONN=-u%MYSQL_USER% -p%MYSQL_PASS%
rem
rem Setup Session to Lock Table and Hold Lock for 30 seconds in the Background
rem Pause 5 Seconds
rem Perform Physical Copy
rem
set TIME_TO_SLEEP=30
set TIME_TO_PAUSE=5
set SQL=FLUSH TABLES %TABLE_TO_COPY% FOR EXPORT ; DO SLEEP(%TIME_TO_SLEEP%)
start mysql %MYSQL_CONN% -D%COPY_FROM_DB% -ANe"%SQL%"
mysql %MYSQL_CONN% -D%COPY_FROM_DB% -ANe"DO SLEEP(%TIME_TO_PAUSE%)"
copy %IBD_TO_COPY% %TARGET_FOLDER%\.注意:如果复制时间超过30秒,您可以更改TIME_TO_SLEEP和TIME_TO_PAUSE。
https://dba.stackexchange.com/questions/117635
复制相似问题