2013-05-15 64 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/