2013-05-15 2 views
0

У меня есть большой sql-файл (500mb) и вы хотите разбить его на куски. Я использовал разделение команд оболочки, но он не разделяет контекстно-зависимые объекты перед специальным шаблоном (например, INSERT) и, таким образом, нарушает инструкцию SQL.Сплит большой текстовый файл интеллектуальный

Цель состоит в том, чтобы иметь два файла 250 Мбайт, которые по-прежнему содержат только действительные команды SQL. Это возможно?

+0

Если у вас есть 500MB SQL файл, который вы, вероятно, делать что-то неправильно, если это не резервная копия. Если это резервная копия: создайте резервную копию в небольших кусках: http://stackoverflow.com/questions/132902/how-do-i-split-the-output-from-mysqldump-into-smaller-files – dtech

+0

Для переноса db на другой сервер. Я использую 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/

Смежные вопросы