1

Тема: Как импортировать дамп большого размера?

Доброго времени суток!
Очень расчитываю на Вашу помощь!

Итак, есть файл с расширением .sql. Объемом ~ 45 МБ. это бэкап базы форума phpBB. Сделан он был администратором удаленного вэб-сервера на котором висел форум... Бэкап был общий всего проекта (html+php+img+etc) этот .sql файл я извлек из архива бэкапа: /sql/data. Так вот через Админ панель phpBB я не могу востановить БД. Отсюда вывод через phpMyAdmin.. Но начнем с того что я не вкурсе того как работать с этой оболочкой, и в связи с этим к Вам просьба - помочь!

Зарание Спасибо!

2

Re: Как импортировать дамп большого размера?

3o3o
Работать с phpMyAdmin-ом ты можешь, прочитав обучающие статьи на этом сайте в разделе "Статьи", при возникновении вопросов обращаться к документации, FAQ и форуму.

Но, являясь удобным средством администрирования баз данных MySQL, phpMyAdmin пока не избавился от неудобств при экспорте/импорте дампов очень больших размеров (а у тебя именно большой дамп), поэтому для этих целей пока лучше вопользоваться другим инструментом. Например, вот этим:
http://forum.php-myadmin.ru/viewtopic.p … 1233#p1233

Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)

3

Re: Как импортировать дамп большого размера?

Да, это пожалуй, самое неудобное в PMA... к сожалению, веб-интерфейс накладывает свои ограничения на размер загружаемых файлов.

4

Re: Как импортировать дамп большого размера?

nickspring и все, все, все. smile
К сожалению данные ограничения накладывает не веб интерфейс, как таковой, а настройки PHP интерпретатора. По умолчанию, принятому на абсолютном большинстве хостингов, параметр max_execution_time, отвечающий за максимальное время выполнения скрипта, в конфигурационном файле PHP, стоит на 30 секундах. То есть любой скрипт не может выполняться более 30 секунд, и если это происходит, то выполнение прерывается и вызывается ошибка.

В основном (default) конфигурационном файле phpMyAdmin существует директива отвечающая за длительность выполнения скрипта - $cfg['ExecTimeLimit'], которая по умолчанию стоит на 300 секунд. Но её выполнение зависит от функции PHP - set_time_limit(), выполнение которой возможно, только в случае выключенной конфигурационной директивы PHP - safe_mode (безопасный режим), что на хостингах, зачастую, встречается.

То есть решением проблемы импорта дампа большого размера, может быть следующее:
Если вы можете изменить конфигурационный файл PHP - php.ini, то можно временно заменить значение директивы max_execution_time, либо выключить "безопасный режим" и затем установить необходимое значение директивы $cfg['ExecTimeLimit'] в конфигурационном файле phpMyAdmin (config.inc.php).
Если "безопасный режим" выключен, то всё предельно просто, необходимо только установить директиву $cfg['ExecTimeLimit'], в конфигурационном файле phpMyAdmin (config.inc.php), в то значение, которое будет вас устраивать (это если вы считаете, что не хватит установленых пяти минут). Для справки: значение считается в секундах - то есть: 60 - минута; 300 - пять минут; 0 (ноль) - бесконечность.

В случае если вы не имеете доступ к конфигурационным файлам (а, как правило, так и бывает), то необходимо воспользоваться сторонними программными средствами управления БД. Для MySQL таким средством может быть MySQL Administrator, созданный разработчиками данной БД. Только не забудьте в CPanel (если используется именно она) установить соответствующие настройки доступа.

Хотя особо усидчивые могут импортировать содержимое дампа вручную, частями, через phpMyAdmin. Но при размере дампа около 50 мегабайт, данное ковыряние затянется надолго.

Если честно, то хотелось бы закрыть данной статьёй вопросы по импорту и экспорту дампов большого размера с помощью phpMyAdmin. Надо понимать, что phpMyAdmin - это не средство восстановления и сохранения дампов БД, а средство управления данными БД.

5 (изменено: SvoYak, 2007-01-10 15:46:11)

Re: Как импортировать дамп большого размера?

У меня сайт расположен на jino-net.ru. база весит 4,5 метра. из инструментов они дают пхпмайадмин. но при попытке экспорта удаеться скачать лишь 2 с гаком метра. возможно ли как-то экспортировать всю базу без потерь только с помощью phpmyadmin v 2.6.3-pl1? Заранее благодарен
ЗЫ или база как-то ужимаеться в файле?

6

Re: Как импортировать дамп большого размера?

В такой старой версии phpMyAdmin ещё не было возможности выбрать разбивку экспортируемого дампа, поэтому можно только экспортировать частями, то есть отдельные таблицы. Войдите в вашу БД и выберите Экспорт, после чего выберите одну или несколько таблиц и экспортируйте, затем то же самое проделайте с оставшимися таблицами. При импорте, сначала надо будет создать БД с именем и параметрами той, с которой вы экспортировали, и затем импортировать ваши дампы в эту созданную БД. Это не сложно, просто долго, хотя 4.5 метра - это ещё не смертельно, я знаю человека, который таким макаром 50 метров перетаскал. smile

7

Re: Как импортировать дамп большого размера?

Есть бэкап форума на vBulletin 3.6.8, сделанный муадмином
это единственное что осталось и к сожалению нет возможности воспользоваться думпером

Вес распакованного файла 31,4 МБ, в .gz соответственно 7,20 МБ
Необходимо импортировать базу на локальном серваке:
связка appserv-win32-2.5.9

    * Apache 2.2.4
    * PHP 5.2.3
    * MySQL 5.0.45
    * phpMyAdmin-2.10.2

Само собой прочла темы по импорту больших бэкапов + FAQ 1.16
прописала по ентим данным в php.ini

post_max_size = 80M
memory_limit = 80M
upload_max_filesize = 60M
sql.safe_mode = Off

в конф файле phpMyAdmin (config.inc.php)

$cfg['ExecTimeLimit']    = 0; 

И всё равно (Максимальный размер: 2,048КБ) :'(
Что и где править, что не так делаю, подскажите плизз

8

Re: Как импортировать дамп большого размера?

Shell*
Если максимальный размер на странице импорта не изменился, значит вы что-то не то делали, или не перезагрузили веб-сервер.

Попробуйте создать в корне phpMyAdmin папку upload, в конфигурационный файл добавьте строку
$cfg['UploadDir'] = './upload';
Загрузите в данный каталог дамп с помощью ftp, и выберите его на странице импорта. Это избавит от ограничения размера загружаемого с помощью PHP файла, указанного в директиве upload_max_filesize.

9

Re: Как импортировать дамп большого размера?

Hanut спасиба http://xdnet.ru/forum/images/smilies/bp.gif

10 (изменено: NewLeaX, 2008-03-23 19:54:44)

Re: Как импортировать дамп большого размера?

Hanut сказал:

особо усидчивые могут импортировать содержимое дампа вручную, частями, через phpMyAdmin.

Подскажите как это сделать частями, если импорт идет ведь целой таблицы (как минимум насколько я понимаю)
Т.е. например у меня есть самая большая jos_content, она весит под 1,5 метра, а входит всего 16 кб.
Все остальное я в принципе перенести могу, но как разбить на части базу одной этой таблицы?

Ой, кажется тут же начала понимать.
Я всегда когда вопрос задаю вслух, чаще всего сама на него и отвечаю.

Внизу есть параметр:
"Дамп из  (...) строк, начиная с записи # 0"

big_smile

neutral ужасно делить все это по 16 кб... у меня нет доступа к php.ini, а хостер молчит весь занятой... это никак не обойти больше да?

11

Re: Как импортировать дамп большого размера?

NewLeaX
Если у вас есть SSH доступ, то импортируйте дамп через командную строку.

mysql -uuser -ppass db_name < backup-file.sql

Можно поискать специализированные скрипты для импорта дампов, но здесь я ничего конкретного посоветовать не могу.

12

Re: Как импортировать дамп большого размера?

а это ограничение по времени действует на ssh?
а то тоже импортирую базу, даже не базу, а таблицу ~50 Мб, операция вроде завершается успешно, а потом смотрю, таблица импортирована далеко не полностю.

13

Re: Как импортировать дамп большого размера?

JeФoks
На командную строку никакие ограничения не распространяются. Я бы предположил ошибку в дампе, но странно, что она не выводится.

14

Re: Как импортировать дамп большого размера?

Установил XAMPP. Открываю config.inc.php. Но там нету строчки:
$cfg['ExecTimeLimit'] =

Подскажите куда мне ее там самому вписать? Подозреваю что после:
/* Advanced phpMyAdmin features */

15

Re: Как импортировать дамп большого размера?

Versus71 сказал:

Подскажите куда мне ее там самому вписать?

Это глобальная переменная, поэтому разницы нет на какую строку вы ее добавите. Кроме секунд можно указать 0 для отключения таймаута полностью.
$cfg['ExecTimeLimit'] = 0;

Для импорта дампа большого размера, лучше создайте в корне phpMyAdmin каталог upload, загрузите в него дамп и добавьте в конфигурационный файл config.inc.php строку:
$cfg['UploadDir'] = './upload';
После этого на странице импорта в phpMyAdmin появится выпадающий список с возможностью выбрать дамп. Этот метод значительно лучше и с его помощью можно импортировать дампы любого размера.

16

Re: Как импортировать дамп большого размера?

Hanut
Понятно. Попробую и ваш вариант. Благодарю за скорый ответ.

17

Re: Как импортировать дамп большого размера?

в архив проще запаковать
.sql файл 52 Mb в архиве .gz вышел 3Mb