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 книги
вот параграфы 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.
дайте ему попробовать !!!