mysqldump: получил errno 32 на записи: "внезапно" много места еще...установка Drupal 6

на dev-сервере я попытался запустить тот же скрипт, который я использовал почти год, и в конце получил: mysqldump: получил errno 32 на write

на прошлой неделе IT sysadmin просто восстановил виртуальный сервер за несколько дней до резервного копирования, и все это сработало.

установка Drupal в порядке, и живой сервер в порядке (дубликат dev-сервера)...у нас есть около 30 или около того виртуальных серверов на одном поле, и IT-SysAdmin выделил довольно много ресурсы.

вот что я получаю с df-h на dev:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        18G  6.1G   12G  36% /
udev           1000M  4.0K 1000M   1% /dev
tmpfs           403M  228K  403M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none           1007M     0 1007M   0% /run/shm
/dev/sdb1       100G  8.1G   87G   9% /data
xxxx@dev1:~$ 

и основной вывод после выполнения моего скрипта в командной строке:

ошибка 1005 (HY000) в строке 5416: не удается создать таблицу 'content_type_ses_job_postings '(errno: 28) mysqldump: получил errno 32 на ошибка записи 2003 (HY000): не удается подключиться к серверу MySQL на '198.xx.xx.xx ' (111) обновлен IP-адрес сервера LDAP.

обратите внимание, что я понимаю, что последний ERROR 2003 о не подключение к серверу MySQL, даже когда все это работает так, хотя этого не должно произойти, я думаю, что это больше проблема пользователя, поскольку резервное копирование баз данных, сохранение, а затем импорт в "холдинг" БД, к которому я затем переключаюсь при обновлении контента, так что, возможно, это что-то, но это никогда не было конкретной проблемой.

Если error 32 связано с пространством, где может быть проблема пространства? Если это связано с разрешениями, в какой папке будет проблема с разрешениями? Однако, я не знаю как или что могло динамически изменять разрешения в любом месте as...Я уже говорил, что я запускаю эти скрипты около 8 месяцев без проблем?

основы dev-сервера

  • MySQL 5.5.24
  • Ubuntu0.12.04.1
  • PHP 5.3

1 ответов


странно

[root@*****]# perror 28
OS error code  28:  No space left on device
[root@*****]# perror 32
OS error code  32:  Broken pipe

поскольку mysqldump продолжает ломаться в случайных местах, это связано с пространством, и нет полного состояния диска, я бы заподозрил проблему на более глубоком уровне : пакет MySQL. Что такое пакет MySQL?

по словам страница 99 книги

BookImage

вот параграфы 1-3, объясняющие это:

код связи сети MySQL был написано в предположении что запросы всегда достаточно короткие, и поэтому можно послать к и обрабатывается сервером в одном чанке, который называется пакета в MySQL терминология. Сервер выделяет запоминающее устройство для временного буфера пакет, и он запрашивает достаточно, чтобы полностью подходит. Эта архитектура требуется предосторожность, чтобы избежать на сервере закончилась память- - - крышка по размеру пакета, который это вариант выполнен.

в кодекс интересов в отношении этот параметр находится в sql / net_serv.cc. Взгляните на my_net_read(), затем следуйте по вызову my_real_read() и платить особое внимание net_realloc().

эта переменная также ограничивает длину в результате многие строки functons. Вижу SQL и области.ГК и sql / intem_strfunc.cc для деталей.

учитывая это объяснение, делая массовые вставки, загрузит / выгрузит пакет MySQL довольно быстро. Это особенно верно, когда max_allowed_packet слишком мал для заданной нагрузки данных, поступающих на него.

я писал об этом раньше : сервер MySQL ушел, препятствуя импорту больших дампов

попробуйте увеличить max_allowed_packet для mysqldump to 1G следующим образом:

mysqldump --max-allowed-packet=1073741824 ...

и попробуйте mysqldump.

если это не сделайте это, затем сделайте следующее:

добавил Это к моему.cnf

[mysqld]
max_allowed_packet = 1G

затем войдите в MySQL как root@localhost и запустить этот

mysql> SET GLOBAL max_allowed_packet = 1024 * 1024 * 1024;

и попробуйте mysqldump.

дайте ему попробовать !!!