2013-05-15 84 views
0

我有一個很大的sql文件(500MB),並希望將其拆分成塊。 我使用了shell命令split,但是它沒有在特殊模式(例如INSERT)之前拆分上下文感知,從而中斷了SQL語句。智能拆分大文本文件

目標是讓兩個250mb的文件仍然只包含有效的SQL命令。這可能嗎?

+0

如果你有你可能做錯了一個500MB的SQL文件,除非它是一個備份。如果是備份:以較小的塊創建備份:http://stackoverflow.com/questions/132902/how-do-i-split-the-output-from-mysqldump-into-smaller-files – dtech

+0

它用於遷移分貝到另一臺服務器。我使用phpmyadmin –

+0

然後在較小的文件中使用mysqldump創建轉儲,請參閱鏈接。 – dtech

回答

0

用途:

mysqldump -u admin -p database1 > /backup/db/database1.sql 

mysqldump -u admin -p --all-databases > /backup/db/all_databases.sql 

如果你只有MyISAM表,你可以使用:

mysqlhotcopy -u admin -p password123 database1 /backup 

更快的備份。 mysqlhotcopy不生成sql,但複製數據庫的文件。

對於恢復mysqldumped數據庫使用:

mysql -u admin -p database1 < database.sql 

mysql -u admin -p <all_databases.sql 

對於mysqlhotcopy的

要從mysqlhotcopy的備份恢復備份,只需複製來自備份的文件目錄複製到/ var/lib/mysql/{db-name}目錄。爲了安全起見,請確保在還原(複製)文件之前停止mysql。將文件複製到/ var/lib/mysql/{db-name}後,再次啓動mysql。

在這裏看到:http://www.thegeekstuff.com/2008/07/backup-and-restore-mysql-database-using-mysqlhotcopy/