Как разделить большой файл резервной копии MySql на несколько файлов?

У меня есть резервная копия SQL-файла 250 МБ, но ограничение на новом хостинге составляет всего 100 МБ ...

есть ли программа, которая позволяет разделить файл SQL на несколько файлов SQL?

похоже, люди отвечают не на тот вопрос ... так что поясню подробнее:

У меня есть только 250 МБ файл и только новый хостинг с помощью phpMyAdmin, который в настоящее время не имеет данных в базе данных. Мне нужно взять файл 250 МБ и загрузить его на новый хост, но есть ограничение на размер загружаемого файла резервной копии SQL 100 МБ. Мне просто нужно взять один файл, который слишком велик, и разделить его на несколько файлов, каждый из которых содержит только полные действительные операторы SQL (никакие операторы не могут быть разделены между двумя файлами).

5
задан Brian T Hannan
10.04.2023 14:01 Количество просмотров материала 2731
Распечатать страницу

9 ответов

С как разделить выход из mysqldump на более мелкие файлы?

первый дамп схемы (он точно подходит в 2 Мб, нет?)

mysqldump -d --all-databases

и восстановить его.

после сброса данных в отдельных операторов Insert, так что вы можете разделить файлы и восстановить их без необходимости их объединения удаленный сервер

mysqldump --all-databases --extended-insert=FALSE --no-create-info=TRUE
5
отвечен harrymc 2023-04-11 21:49

самый простой способ разделить файл резервной копии - использовать программное обеспечение sqldumpsplitter, что позволяет разделить файл БД на несколько файлов БД. Скачать здесь

или используйте эту команду терминала.

split-l 600 ./ путь/к / исходному / файлу.язык SQL. / путь/к/dest / файлу-

здесь, 600-это количество строк, которое вы хотите иметь в ваших файлах разделения. И два аргумента-источник и назначение файлов соответственно.

Примечание: Вы должны проверить разделенные файлы, вы не разделяете никакую команду.

6
отвечен GIRI 2023-04-12 00:06

этот код будет делать именно то, что вы хотите (и это с открытым исходным кодом):

https://web.archive.org/web/20160313044916/http://rodo.nl/index.php?page=mysql-splitter

Это позволяет разделить любой файл SQL на несколько небольших файлов (вы можете определить максимальный размер) синтаксис SQL будет храниться правильно, и он работает с "множественной вставки" синтаксис запроса.

надеюсь, что это помогает!

2
отвечен Will0 2023-04-12 02:23

я писал mysqldumpsplitter (скрипт), которая разделяет баз данных/таблиц, как описано в быстрый и простой способ. Смотрите все возможные варианты использования как извлечь из mysqldump.

sh mysqldumpsplitter.sh --source mysqldump-file.sql --extract DB --match_str database-name
1
отвечен mysql_user 2023-04-12 04:40

1) у вас есть возможность загрузить файл другим способом, например: SCP или FTP, а затем восстановить его из локального файла?

2) Ваш провайдер возьмет файл на CD и загрузит его для вас?

3) Вы можете восстановить файл на локальный сервер, а затем сделать серию резервных копий файлов из него, используя конкретные критерии, чтобы сохранить индивидуальные размеры вниз?

4) можно разбить файл вручную потом убираю команды SQL в конце файлов?

0
отвечен Linker3000 2023-04-12 06:57

вместо разделения файла можно использовать клиент MySQL на локальном компьютере и подключить его к удаленной базе данных MySQL. Я использую HeidiSQL и нашли его очень хорошим.

конечно, это может занять некоторое время, чтобы отправить 250 МБ операторов SQL через Интернет.

вы также можете попробовать BigDump

0
отвечен Hydaral 2023-04-12 09:14

вы можете разделить большой файл в Eclipse. Я попытался файл 105GB в Windows успешно:

просто добавьте библиотеку MySQLDumpSplitter к вашему проекту: http://dl.bintray.com/verace/MySQLDumpSplitter/jar/

быстрое примечание о том, как импортировать:

- In Eclipse, Right click on your project --> Import
- Select "File System" and then "Next"
- Browse the path of the jar file and press "Ok"
- Select (thick) the "MySQLDumpSplitter.jar" file and then "Finish"
- It will be added to your project and shown in the project folder in Package Explorer in Eclipse
- Double click on the jar file in Eclipse (in Package Explorer)
- The "MySQL Dump file splitter" window opens which you can specify the address of your dump file and proceed with split.
0
отвечен Alisa 2023-04-12 11:31

У меня тоже была эта проблема, и я решил кодировать чрезвычайно памяти и процессора эффективный кусок кода, который разбивает один .sql файл в несколько (один на таблицу).

Я должен был написать его, так как любое другое решение, которое я нашел, не работает достаточно хорошо. На реальном дампе 16GB мне удалось расколоть его менее чем за 2 минуты.

код и инструкции доступны на страница проекта на github

0
отвечен Andrea Baccega 2023-04-12 13:48

есть несколько вариантов, если вы можете запустить сценарий bash или perl. Попробуйте это один из yoodey.com

#!/usr/bin/perl -w
#
# splitmysqldump - split mysqldump file into per-database dump files.
use strict;
use warnings;
my $dbfile;
my $dbname = q{};
my $header = q{};
while (<>) {    

# Beginning of a new database section:
    # close currently open file and start a new one
    if (m/-- Current Database\: \`([-\w]+)\`/) {
    if (defined $dbfile && tell $dbfile != -1) {
        close $dbfile or die "Could not close file!"
    }
    $dbname = ;
    open $dbfile, ">>", "_dump.sql" or die "Could not create file!";
    print $dbfile $header;
    print "Writing file _dump.sql ...\n";
    }
    if (defined

$dbfile && tell $dbfile != -1) {
    print $dbfile $_;
    }
    # Catch dump file header in the beginning
    # to be printed to each separate dump file.
    if (!

$dbname) { $header .= $_; }
}
close $dbfile or die "Could not close file!"
0
отвечен Jrgns 2023-04-12 16:05

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх