форум vBSupport.ru > vBulletin > All versions of vBulletin
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
PGP
Специалист
 
PGP's Avatar
Lightbulb Восстановление из бекапа отдельных данных
8

Сегодня пришлось повозиться.
Один юзер удалил свои сообщения, соответственно потерлись и все топики (со всеми сообщениями и аттачами) где он был топикстартером. (как это произошло отдельная история - тут ее обсуждать нет смысла).
Хватились не сразу. Прошло уже более недели, т.е. откат просто на недельной давности бекап был уже неприемлем.
Пришлось поизвращаться.
Выясняем ID пользователя.
Работаем напрямую с MySQL.
Разворачиваем во вторую базу бекап.

В нее в отдельные таблицы копируем нужные данные.
PHP Code:
CREATE TABLE Back_DB.vvv_access SELECT FROM Back_DB.vb3_access WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_album SELECT FROM Back_DB.vb3_album WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_attachment SELECT FROM Back_DB.vb3_attachment WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_customavatar SELECT FROM Back_DB.vb3_customavatar WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_customprofilepic SELECT FROM Back_DB.vb3_customprofilepic WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_forumread SELECT FROM Back_DB.vb3_forumread WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_infraction SELECT FROM Back_DB.vb3_infraction WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_moderator SELECT FROM Back_DB.vb3_moderator WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_passwordhistory SELECT FROM Back_DB.vb3_passwordhistory WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_paymentinfo SELECT FROM Back_DB.vb3_paymentinfo WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_picture SELECT FROM Back_DB.vb3_picture WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_pm SELECT FROM Back_DB.vb3_pm WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_pmreceipt SELECT FROM Back_DB.vb3_pmreceipt WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_post SELECT FROM Back_DB.vb3_post WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_postedithistory SELECT FROM Back_DB.vb3_postedithistory WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_posthash SELECT FROM Back_DB.vb3_posthash WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_visitormessage SELECT FROM Back_DB.vb3_visitormessage WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_visitormessage_hash SELECT FROM Back_DB.vb3_visitormessage_hash WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_reputation SELECT FROM Back_DB.vb3_reputation WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_sigparsed SELECT FROM Back_DB.vb3_sigparsed WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_thread SELECT FROM Back_DB.vb3_thread WHERE postuserid=USER_ID;
CREATE TABLE Back_DB.vvv_user SELECT FROM Back_DB.vb3_user WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_useractivation SELECT FROM Back_DB.vb3_useractivation WHERE userid=USER_ID;
CREATE TABLE Back_DB.vvv_userlist SELECT FROM Back_DB.vb3_userlist WHERE userid=USER_ID;
INSERT IGNORE INTO Back_DB.vvv_post SELECT FROM Back_DB.vb3_post WHERE threadid IN (SELECT threadid FROM Back_DB.vb3_thread WHERE postuserid=USER_ID
И далее вставляем эти данные в нашу актуальную БД.
PHP Code:
INSERT IGNORE INTO Actual_DB.vb3_access SELECT FROM Back_DB.vvv_access;
INSERT IGNORE INTO Actual_DB.vb3_album SELECT FROM Back_DB.vvv_album;
INSERT IGNORE INTO Actual_DB.vb3_attachment SELECT FROM Back_DB.vvv_attachment;
INSERT IGNORE INTO Actual_DB.vb3_customavatar SELECT FROM Back_DB.vvv_customavatar;
INSERT IGNORE INTO Actual_DB.vb3_customprofilepic SELECT FROM Back_DB.vvv_customprofilepic;
INSERT IGNORE INTO Actual_DB.vb3_forumread SELECT FROM Back_DB.vvv_forumread;
INSERT IGNORE INTO Actual_DB.vb3_infraction SELECT FROM Back_DB.vvv_infraction;
INSERT IGNORE INTO Actual_DB.vb3_moderator SELECT FROM Back_DB.vvv_moderator;
INSERT IGNORE INTO Actual_DB.vb3_passwordhistory SELECT FROM Back_DB.vvv_passwordhistory;
INSERT IGNORE INTO Actual_DB.vb3_paymentinfo SELECT FROM Back_DB.vvv_paymentinfo;
INSERT IGNORE INTO Actual_DB.vb3_picture SELECT FROM Back_DB.vvv_picture;
INSERT IGNORE INTO Actual_DB.vb3_pm SELECT FROM Back_DB.vvv_pm;
INSERT IGNORE INTO Actual_DB.vb3_pmreceipt SELECT FROM Back_DB.vvv_pmreceipt;
INSERT IGNORE INTO Actual_DB.vb3_post SELECT FROM Back_DB.vvv_post;
INSERT IGNORE INTO Actual_DB.vb3_postedithistory SELECT FROM Back_DB.vvv_postedithistory;
INSERT IGNORE INTO Actual_DB.vb3_posthash SELECT FROM Back_DB.vvv_posthash;
INSERT IGNORE INTO Actual_DB.vb3_visitormessage SELECT FROM Back_DB.vvv_visitormessage;
INSERT IGNORE INTO Actual_DB.vb3_visitormessage_hash SELECT FROM Back_DB.vvv_visitormessage_hash;
INSERT IGNORE INTO Actual_DB.vb3_reputation SELECT FROM Back_DB.vvv_reputation;
INSERT IGNORE INTO Actual_DB.vb3_sigparsed SELECT FROM Back_DB.vvv_sigparsed;
INSERT IGNORE INTO Actual_DB.vb3_thread SELECT FROM Back_DB.vvv_thread;
INSERT IGNORE INTO Actual_DB.vb3_user SELECT FROM Back_DB.vvv_user;
INSERT IGNORE INTO Actual_DB.vb3_useractivation SELECT FROM Back_DB.vvv_useractivation;
INSERT IGNORE INTO Actual_DB.vb3_userlist SELECT FROM Back_DB.vvv_userlist
Запись создана по большому счету не как полный how-to.
Кому надо - тот поймет как сделать.
А так это заметка, чтобы самому в случае подобного уже знать как и что.

PS Огромное спасибо FractalizeR за помощь ;)

UPD
В принципе можно обойтись из без создания промежуточных таблицы в бекапной БД:
PHP Code:
INSERT IGNORE INTO Actual_DB.vb3_access SELECT FROM Back_DB.vb3_access WHERE userid=USER_ID
....
и так далее... 

Last edited by PGP : 02-16-2010 at 05:51 PM.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Том
Продвинутый
 
Том's Avatar
Default
0

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

Если же юзер удалил сообщения "мягко", то для их восстановления вовсе необязательно устраивать такие танцы с бубном - достаточно стандартных средств форума и прав администратора.
 
 
FractalizeR
Знаток
Default
2

Вы пост-то прочитали прежде, чем высказываться?

Quote:
Originally Posted by PGP
Разворачиваем во вторую базу бекап.
Backup-то был, вот только полный откат на него неприемлем. Поэтому имеет смысл развернуть рядом старый backup, вытащить из него только посты удаленного пользователя и перенести их в актуальную базу. Только их.
 
 
Том
Продвинутый
 
Том's Avatar
Default
1

Извините, пожалуйста, не до конца разобрался. Поставил вам спасибку за моральный ущерб
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 05:06 PM.


Powered by vBulletin® Version 3.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.