За последние 24 часа нас посетили 22873 программиста и 1234 робота. Сейчас ищет 781 программист ...

Как сделать бэкап огромной базы данных

Тема в разделе "MySQL", создана пользователем Mick_20, 1 фев 2023.

Метки:
  1. Mick_20

    Mick_20 Активный пользователь

    С нами с:
    10 дек 2012
    Сообщения:
    19
    Симпатии:
    1
    Адрес:
    Россия, Новосибирск
    Здравствуйте,

    Столкнулся с проблемой выполнения бэкапа базы данных.
    У сайта на LMS Moodle сильно разрослась БД.
    Сейчас весит около 8 Гб. Есть таблицы, которые весят по 2-3 Гб.

    Сделать чз phpmyadmin даже частями не могу. Не хватает времени выполнения.
    Доступа через SSH нет и не предвидится.

    Подскажите какие еще есть способы сделать бэкап большой базы данных? :(
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    738
    Адрес:
    Татарстан
    https://sypex.net/ отличная штука
    еще перед экпортом попробуйте сделать оптимизацию БД
     
  3. Mick_20

    Mick_20 Активный пользователь

    С нами с:
    10 дек 2012
    Сообщения:
    19
    Симпатии:
    1
    Адрес:
    Россия, Новосибирск
    пробовал как-то эту программу давно
    она не работала
    где-то читал с какой-то версии PHP она перестала работать
    у меня PHP 7.3

    когда последний раз вы использовали эту программу и на какой версии PHP ?
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    738
    Адрес:
    Татарстан
    не помню.. давно было
    ну adminer попробуйте
     
  5. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    862
    Симпатии:
    132
    То есть даже не почесался запустить, убрать сообщения об ошибках (continue -> continue 2 + заменить устаревший конструктор класса)?
    Я фигею, дорогая редакция, не знаю, как таких держат.
     
  6. Mick_20

    Mick_20 Активный пользователь

    С нами с:
    10 дек 2012
    Сообщения:
    19
    Симпатии:
    1
    Адрес:
    Россия, Новосибирск
    mysql_unbuffered_query можно поменять на mysqli_query
    или есть аналог в новом PHP ?
    --- Добавлено ---
    Запустил, ругалась на устаревшие mysql_*
    Заменил. Ошибок нет, но дальше страницы входа не пускает.
     
  7. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Код (Text):
    1. SELECT  *
    2. INTO OUTFILE "/usr/local/htdocs/tablename_20000.csv"
    3. FROM `tablename`
    4. LIMIT 20000 , 20000;
    Опытным путем подберите количество строк.
    /usr/local/htdocs/ должна существовать и быть доступной для записи.
    tablename_20000.csv в ней существовать не должен, перезапись невозможна.
     
    Mick_20 нравится это.
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Забудь про phpmyadmin. Бэкап любого объема делается через mysqldump. Полезно исключить "лишние" таблицы со временными или генерируемыми данными типа поискового индекса. Их всегда можно создать заново.

    Вывод mysqldump зипуем, а при восстановлении наоборот разжимаем. Пример:
    Код (Text):
    1.  
    2. mysqldump -h localhost --ignore-table=tmp1 --ignore-table=cachesmth -u username --single-transaction -p mydbname | gzip > backup.sql.gz
    распаковываем
    Код (Text):
    1.  
    2. cat backup.sql.gz | gzip -d | mysql -h localhost -u username -p mydbname
    --- Добавлено ---
    На всякий случай сохрани структуру таблиц в отдельном бэкапе - пригодится для воссоздания тех самых производных и кеш-таблиц, которые можно пропускать в стандартных бэкапах.
    Код (Text):
    1.  
    2. mysqldump --no-data -u username -p mydbname > structure.sql
     
    Mick_20 нравится это.
  9. Mick_20

    Mick_20 Активный пользователь

    С нами с:
    10 дек 2012
    Сообщения:
    19
    Симпатии:
    1
    Адрес:
    Россия, Новосибирск
    Запустил, ругался на устаревшие mysql_error() и mysql_connect()
    заменил на mysqli_error() и mysqli_connect()

    ошибок не выводит болшьше
    через SSH я правильно понял?
    --- Добавлено ---
    спасибо попробую.
     
  10. Mick_20

    Mick_20 Активный пользователь

    С нами с:
    10 дек 2012
    Сообщения:
    19
    Симпатии:
    1
    Адрес:
    Россия, Новосибирск
    пишет access denied
    доступа к серверу базы данных нет, чтобы создать там путь для файла
     
  11. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Он должен уже существовать. Физически. MySQL не имеет прав для создания директорий и перезаписи файлов. Политика безопасности. Иначе каждая SQL инъекция будет заканчиваться перезаписью любого файла на сервере.
    Кроме того, даже, если там есть какие-то хитрые настройки для "INTO OUTFILE" вы всегда можете сгенерировать csv с помощью PHP, непосредственно в браузер.
     
    #11 Drunkenmunky, 2 фев 2023
    Последнее редактирование: 2 фев 2023
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    обычно - да, через тоннель ssh. но сами по себе команды не требуют этого. если на хосте с мускулем порт наружу открыт, то можно и так.
     
  13. igorhh

    igorhh Новичок

    С нами с:
    16 янв 2024
    Сообщения:
    14
    Симпатии:
    0
    Консолями
     
  14. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    862
    Симпатии:
    132
    Нет там консоли, внимательно почитай.
     
  15. igorhh

    igorhh Новичок

    С нами с:
    16 янв 2024
    Сообщения:
    14
    Симпатии:
    0
    Пиши телеграм помогу
     
  16. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    тема год назад создана, наверное @Mick_20 уже разобрался так или иначе)))
     
    Mick_20 и igorhh нравится это.
  17. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    862
    Симпатии:
    132
    и что самое интересное, рецепт сюда не пульнул ;)
     
    igorhh нравится это.
  18. igorhh

    igorhh Новичок

    С нами с:
    16 янв 2024
    Сообщения:
    14
    Симпатии:
    0
    Ok, можно рецепт?
     
  19. Дюран

    Дюран Активный пользователь

    С нами с:
    9 мар 2018
    Сообщения:
    257
    Симпатии:
    19
    Видел на какой то из тем дублей он писал что Adminer-ом справился
     
  20. igorhh

    igorhh Новичок

    С нами с:
    16 янв 2024
    Сообщения:
    14
    Симпатии:
    0
    Консолями
    --- Добавлено ---
    Консолями