Удалили пользователей, восстановить из старого дампа БД

Проблемы с установкой или работой phpBB 3.2.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Tugus
phpBB 1.4.4
Сообщения: 117
Зарегистрирован: 27.11.2018 12:43
Благодарил (а): 43 раза

Удалили пользователей, восстановить из старого дампа БД

Сообщение Tugus » 28.12.2018 10:54

Здравия! Вчера произошла авральная ситуация, удалили 80% пользователей. Есть старый дамп БД форума с большей частью пользователей. Возможно ли восстановить пользователей оттуда через phpmyadmin?

Аватара пользователя
Pazh
Former team member
Сообщения: 2194
Зарегистрирован: 09.11.2009 17:46
Благодарил (а): 41 раз
Поблагодарили: 454 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Pazh » 28.12.2018 10:58

Можно, но одним запросом этого не сделать
форум ЖК Вестердам Помощь в ЛС/email только за WM или ЯД

Аватара пользователя
Tugus
phpBB 1.4.4
Сообщения: 117
Зарегистрирован: 27.11.2018 12:43
Благодарил (а): 43 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Tugus » 28.12.2018 11:04

Pazh, Пробую через экспорт-импорт. Так не получится?

Аватара пользователя
Pazh
Former team member
Сообщения: 2194
Зарегистрирован: 09.11.2009 17:46
Благодарил (а): 41 раз
Поблагодарили: 454 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Pazh » 28.12.2018 11:06

При восстановлении все БД из бэкапа Вы потеряете все данные, которые были введены после создания бэкапа. Если Вам нужно восстановить только определенные данные, то если Вы не знаете хорошо структуру БД - то ничего не сможете самостоятельно сделать.
Юзеры удалялись с сообщениями или посты оставляли?
форум ЖК Вестердам Помощь в ЛС/email только за WM или ЯД

Аватара пользователя
Tugus
phpBB 1.4.4
Сообщения: 117
Зарегистрирован: 27.11.2018 12:43
Благодарил (а): 43 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Tugus » 28.12.2018 11:16

Pazh писал(а):
28.12.2018 11:06
Если Вам нужно восстановить только определенные данные, то если Вы не знаете хорошо структуру БД
да, этот вариант наш.
Pazh писал(а):
28.12.2018 11:06
Юзеры удалялись с сообщениями или посты оставляли?
имеется копия форума, где посты на месте, а пользователи даже если они авторы постов, удалены.

Что сделал теперь. Импортировал таблицу phpbb_users из дампа-запасника в дамп с удаленными. Они появились в списке пользователей на форуме (меню -> список пользователей). Но они не включились как авторы своих постов. Надо что-то еще сделать.

Аватара пользователя
Pazh
Former team member
Сообщения: 2194
Зарегистрирован: 09.11.2009 17:46
Благодарил (а): 41 раз
Поблагодарили: 454 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Pazh » 28.12.2018 11:18

Tugus писал(а):
28.12.2018 11:16
Импортировал таблицу phpbb_users из дампа-запасника в дамп с удаленными
В результате этого Вы потеряли всех зарегистрированных после создания дампа юзеров. Надеюсь бэкап текущей базы (до импорта таблицы phpbb_users) у Вас остался?
форум ЖК Вестердам Помощь в ЛС/email только за WM или ЯД

Аватара пользователя
Tugus
phpBB 1.4.4
Сообщения: 117
Зарегистрирован: 27.11.2018 12:43
Благодарил (а): 43 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Tugus » 28.12.2018 11:21

Pazh писал(а):
28.12.2018 11:18
Вы потеряли всех зарегистрированных после создания дампа юзеров.
не понял, почему так ? Импортировал из базы А (старая) таблицу с юзерами. Потом экспортировал ее в базу Б (актуальная). Перед этим в базе Б. переименовал таблицу с юзерами на phpbb_users_old. Хочу понимать, где косячу?
Pazh писал(а):
28.12.2018 11:18
Надеюсь бэкап текущей базы (до импорта таблицы phpbb_users) у Вас остался?
о, конечно. описываемые эксперименты все проводятся на копиях на локалке.

Аватара пользователя
Pazh
Former team member
Сообщения: 2194
Зарегистрирован: 09.11.2009 17:46
Благодарил (а): 41 раз
Поблагодарили: 454 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Pazh » 28.12.2018 11:24

Начинай:
1. Вам нужно восстановить таблицы phpbb_users и phpbb_user_group в (самое простое) отдельную БД - назовем ее DB2. А боевая база DB1
2. Выполнить запросы, заменив в них DB1 и DB2 на свои значения:

Код: Выделить всё

INSERT INTO DB1.phpbb_users select y.* from DB2.phpbb_users y where y.user_id not in (select x.user_id from DB1.phpbb_users x);
insert into DB1.phpbb_user_group select y.* from DB2.phpbb_user_group y where y.user_id not in (select x.user_id from DB1.phpbb_user_group x;
Отправлено спустя 13 минут 37 секунд:
3. А далее начинаются танцы с бубном с таблицей сообщений:

Код: Выделить всё

update db1.phpbb_posts p set p.poster_id = (select x.user_id from db1.phpbb_users x where x.username=p.post_username) where p.poster_id=1;
Отправлено спустя 8 минут 18 секунд:
а потом еще нужно восстановить удаленные записи в таблицах phpbb_acl_users, phpbb_attachments, phpbb_banlist, phpbb_bookmarks,
phpbb_drafts, phpbb_forums_watch, phpbb_poll_votes, phpbb_privmsgs_folder,
phpbb_privmsgs_rules, phpbb_privmsgs_to, phpbb_profile_fields_data,
phpbb_user_notifications, phpbb_warnings, phpbb_zebra
примерно по сценарию из пункта 2 запрос 1
Далее синхронизировать все подфорумы.

Возможно проще сделать наоборот (если бэкап свежий) - восстановить его, и на него накатаить именения из текущей БД (с удаленными юзерами) - нужно сравнивать.

Еще как вариант - если БД не большая, то экспортировать полностью обе БД и сравнить например в WinMerge или KDiff3 оба файла и слить их в один - возможно - это будет самый простой для Вас способ - начните с него. Если БД не большая
форум ЖК Вестердам Помощь в ЛС/email только за WM или ЯД

Аватара пользователя
Tugus
phpBB 1.4.4
Сообщения: 117
Зарегистрирован: 27.11.2018 12:43
Благодарил (а): 43 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Tugus » 28.12.2018 12:07

Pazh, бекап от 27 ноября. Тогда заканчивался переезд на движок с другого движка. Поэтому новых юзеров месяц несколько шт, не страшно потерять. То есть по логике можно просто закинуть тот бекап как рабочий на хостинг и руками скопировать в него все появившиеся за месяц посты, присвоив авторство, чьи они в оригинале. Через админку.
В чем большое НО. почти месяц наводили порядок в темах. Их чистили, переносили, создавали новые разделы, правили ссылки внутри постов (много) и чистили руками сообщения от кусов бб-кодов от старой сборки и все в таком духе.

Объем. юзеров было за 6 тыс, юзеров с постами где-то треть или четверть из них. DB 200 000 Kb.

Вопрос. Танцы с бубном по сравнению с описанным более простой вариант?
Pazh писал(а):
28.12.2018 11:46
2. Выполнить запросы, заменив в них DB1 и DB2 на свои значения:

Аватара пользователя
romaamor
phpBB 3.0.0 RC2
Сообщения: 1525
Зарегистрирован: 31.03.2012 20:28
Откуда: Одесса
Благодарил (а): 522 раза
Поблагодарили: 126 раз

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение romaamor » 28.12.2018 12:08

Pazh писал(а):
28.12.2018 11:46
Возможно проще сделать наоборот (если бэкап свежий) - восстановить его, и на него накатаить именения из текущей БД (с удаленными юзерами) - нужно сравнивать.
А ещё проще установить расширение - авто быкап. Или взять за правило делать копию хоть раз в три дня.

Аватара пользователя
Pazh
Former team member
Сообщения: 2194
Зарегистрирован: 09.11.2009 17:46
Благодарил (а): 41 раз
Поблагодарили: 454 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Pazh » 28.12.2018 12:12

Tugus, в таком случае я бы советовал идти длинной, но надежной дорОгой - постепенно вручную восстанавливать удаленные данные в текущей БД из бэкапа.
romaamor, поздно пить Боржоми, когда почки отвалились
форум ЖК Вестердам Помощь в ЛС/email только за WM или ЯД

Аватара пользователя
Tugus
phpBB 1.4.4
Сообщения: 117
Зарегистрирован: 27.11.2018 12:43
Благодарил (а): 43 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Tugus » 28.12.2018 12:16

romaamor, Копии делались на хостинге, а сегодня выяснили что с ними что-то пошло не так, хостер написал, разбираются.
romaamor писал(а):
28.12.2018 12:08
установить расширение - авто быкап
принято к сведению. Спасибо!
Pazh, блин. всяко не айс

Аватара пользователя
Pazh
Former team member
Сообщения: 2194
Зарегистрирован: 09.11.2009 17:46
Благодарил (а): 41 раз
Поблагодарили: 454 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Pazh » 28.12.2018 12:18

Tugus, читай личку, к сожалению - легко не будет.
Последний раз редактировалось Pazh 28.12.2018 12:18, всего редактировалось 1 раз.
форум ЖК Вестердам Помощь в ЛС/email только за WM или ЯД

Аватара пользователя
Tugus
phpBB 1.4.4
Сообщения: 117
Зарегистрирован: 27.11.2018 12:43
Благодарил (а): 43 раза

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение Tugus » 28.12.2018 12:18

Pazh писал(а):
28.12.2018 11:46
2. Выполнить запросы, заменив в них DB1 и DB2 на свои значения:
То есть, в таблицах с юзерами указывается, к какой БД они принадлежат? Не смейтесь за глупые вопросы, у меня практически первое свидание с phpmyadmin :geek:

Аватара пользователя
romaamor
phpBB 3.0.0 RC2
Сообщения: 1525
Зарегистрирован: 31.03.2012 20:28
Откуда: Одесса
Благодарил (а): 522 раза
Поблагодарили: 126 раз

Re: Удалили пользователей, восстановить из старого дампа БД

Сообщение romaamor » 28.12.2018 12:20

Tugus писал(а):
28.12.2018 12:07
Поэтому новых юзеров месяц несколько шт, не страшно потерять
Ну для этого существует редирект.
Tugus писал(а):
28.12.2018 12:07
Поэтому новых юзеров месяц несколько шт, не страшно потерять.
Юзоры не долщны потерятся. Если Вы адекватно сделали бекап БД, и потом его заменили на хостинге.. Хотя это зависит от Вашего интернет провайдера.

Вернуться в «Поддержка phpBB 3.2.x»