Проблемы с базой данных, размер около 2млн. сообщений

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
skv
phpBB 1.2.1
Сообщения: 24
Стаж: 17 лет 5 месяцев
Поблагодарили: 1 раз

Проблемы с базой данных, размер около 2млн. сообщений

Сообщение skv »

проблема появилась спонтанно...

беру любой форм или раздел, добавляю в него права пользователей, например группу или конкретного пользователя, после этого поле user_permission в таблице пользователей выростает до 1,5 мегабайт со всеми вытекающими. удаляю права , все становится ровно.

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

версия форума предпоследняя база mysql , движок до гюка и после сравнил побайтно, никаких изменений не было.

в какую сторону копать подскажите...
Последний раз редактировалось skv 01.08.2011 17:21, всего редактировалось 2 раза.
skv
phpBB 1.2.1
Сообщения: 24
Стаж: 17 лет 5 месяцев
Поблагодарили: 1 раз

Re: Проблемы с базой данных

Сообщение skv »

Никто мне не поможет ? или только мелкие вопросы решаются.. bb3x сдулся, решить проблемму не смог... но там хоть попытались, а ГУРУ молчат....

из последних попыток разобраться с проблеммой

движок чистый свежий только установленный, влил в него базу , обновил ее до 3.09.


вычистил таблицы acl_groups и acl_users,
затем методично начал добавлять права на форумы, при добавлении поле USER_PERMISSIONS растет в размерах пока не достигнет 1,5 мегабайт.

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

user_id 	user_type 	group_id 	user_permissions  	
1 	2 	831 	[BLOB - 1.1  КБ]	

---------
внутри

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

i1cjyo000000


i1cjyo000000

i1cjyo000000

i1cjyo000000
i1cjyo000000
причем переводов строки просто дофига...
весь килобайт цитировать смысла нету.
на сколько я понял, при входе в форум движок проверяет права каким то хитрым способом и должен обнулять это поле но этого почему то не происходит, и где искать проблему непонятно.

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

в логах апача и mysql ошибок нету :(

размер поля меняется в момент входа пользователя на форум, тоесть при открытии /index.php

пытаюсь найти файл который пишет в поле user_permissions права и самое главное удаляет их от туда.
никак немогу отыскать....
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 15 лет 1 месяц
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение NiGHt-LEshiY »

Покажите структуру таблиц phpbb_acl_groups, phpbb_acl_users
Сравните сами с этим
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение владимир1983 »

skv писал(а):проблема появилась спонтанно...
А если подумать, то..?
skv писал(а):например группу или конкретного пользователя
Значения одинаково увеличиваются вне зависимости?
Сколько пользователей у вас?
skv писал(а):база mysql
... синие белые красные. Подробней.
skv писал(а):внутри
Скрин покажите где это такое.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 15 лет 1 месяц
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение NiGHt-LEshiY »

includes/auth.php больше всего работает с user_permissions и выполняется в самом начале любой страницы, если не ошибаюсь
skv
phpBB 1.2.1
Сообщения: 24
Стаж: 17 лет 5 месяцев
Поблагодарили: 1 раз

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение skv »

NiGHt-LEshiY писал(а):Покажите структуру таблиц phpbb_acl_groups, phpbb_acl_users
Сравните сами с этим
Структура совпадает
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 15 лет 1 месяц
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение NiGHt-LEshiY »

Пока приходит в голову лишь.. хм.. даже не знаю. Если форумов _очень_ много, то в user_permissions будут описываться права для каждого форума. Это догадка, а не истина, если что. Сравните количество строк в поле user_permissions и количество форумов.
skv
phpBB 1.2.1
Сообщения: 24
Стаж: 17 лет 5 месяцев
Поблагодарили: 1 раз

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение skv »

skv писал(а):проблема появилась спонтанно...
А если подумать, то..?
да, выяснил подробности, глюк произошел после создания одного из разделов, создали новый подфорум, вылетела ошибка (конечно ее никто не заскриншотил)
skv писал(а):например группу или конкретного пользователя
Значения одинаково увеличиваются вне зависимости?
непонятно, я тестирую на гостях, ставлю группе Гости доступ на раздел или форум, в поле пермишенс записывается куча текста, точнее куча "n"...
Сколько пользователей у вас?
около 20тысяч. зерегиных, посещаемость около 4 тысяч в сутки.
поэтому 3 гиговая база за несколько дней превращается в 6 гиговую....

skv писал(а):база mysql
... синие белые красные. Подробней.
System Linux linux-jrrq 2.6.38.2-kvm #1 SMP PREEMPT Thu Apr 7 08:16:01 VLAST 2011 x86_64
Server API Apache 2.0 Handler
Virtual Directory Support disabled

PHP API 20090626
PHP Extension 20090626
Zend Extension 220090626
Zend Extension Build API220090626,NTS
PHP Extension Build API20090626,NTS
Debug Build no
Thread Safety disabled
Zend Memory Manager enabled
Zend Multibyte Support disabled
IPv6 Support enabled
Registered PHP Streams php, file, glob, data, http, ftp, compress.bzip2, https, ftps, compress.zlib, zip, phar
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filters string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, bzip2.*, convert.iconv.*, mcrypt.*, mdecrypt.*, zlib.*

Apache Version Apache/2.2.17 (Linux/SUSE)
Apache API Version 20051115

Сервер: Localhost via UNIX socket
Версия сервера: 5.1.53-log
Версия протокола: 10
MySQL-кодировка: UTF-8 Unicode (utf8)




skv писал(а):внутри
Скрин покажите где это такое.
gluk1.png
gluk2.png
Добавлено спустя 8 минут 25 секунд:
NiGHt-LEshiY писал(а):Пока приходит в голову лишь.. хм.. даже не знаю. Если форумов _очень_ много, то в user_permissions будут описываться права для каждого форума. Это догадка, а не истина, если что. Сравните количество строк в поле user_permissions и количество форумов.
Форумов много, но есть точка восстановления, до которой все было нормально, и форумов стало после этой точки на один больше, понятно что туда пишутся права для всех форумов. но это поле должно обнулятся , а оно не обнуляется.....

чтобы понять что происходит надо знать кто пишет в это поле и что он туда пишет.... поэтому и прошу разработчиков помочь....
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение владимир1983 »

Гость - Anonymous?
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 15 лет 1 месяц
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение NiGHt-LEshiY »

function acl_cache(&$userdata)
Строка 385 файла includes/auth.php

Нужный запрос:

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

$sql = 'UPDATE ' . USERS_TABLE . "
	SET user_permissions = '" . $db->sql_escape($userdata['user_permissions']) . "',
		user_perm_from = 0
	WHERE user_id = " . $userdata['user_id'];
$db->sql_query($sql);
skv
phpBB 1.2.1
Сообщения: 24
Стаж: 17 лет 5 месяцев
Поблагодарили: 1 раз

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение skv »

Да, но к пользователю привязки нету. если я добавлю прав на любой форум группе зарегистрированные пользователи, то у них будет тоже самое. если конкретному юзеру то у этого юзера произойдет тоже самое.
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 15 лет 1 месяц
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение NiGHt-LEshiY »

Может быть тогда includes/acp/acp_permissions.php?
Функция: set_permissions($mode, $permission_type, &$auth_admin, &$user_id, &$group_id)
Это около строки 658.
skv
phpBB 1.2.1
Сообщения: 24
Стаж: 17 лет 5 месяцев
Поблагодарили: 1 раз

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение skv »

такой код минимум два раза повторяется

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

    if ($hold_str)
                {
                        $userdata['user_permissions'] = $hold_str;

                        $sql = 'UPDATE ' . USERS_TABLE . "
                                SET user_permissions = '" . $db->sql_escape($userdata['user_permissions']) . "',
                                        user_perm_from = 0
                                WHERE user_id = " . $userdata['user_id'];
                        $db->sql_query($sql);
                }

                return;
if ($user_id !== false)
{
$user_id = (!is_array($user_id)) ? $user_id = array((int) $user_id) : array_map('intval', $user_id);
$where_sql = ' WHERE ' . $db->sql_in_set('user_id', $user_id);
}

$sql = 'UPDATE ' . USERS_TABLE . "
SET user_permissions = '',
user_perm_from = 0
$where_sql";
$db->sql_query($sql);

return;
Добавлено спустя 3 минуты 35 секунд:
6 утра, уже не думается... надо пару часов поспать.... завтра посмотрю строчку. спасибо ..
там надо отладчиком пройтись и выяснить какое условие не срабатывает для очистки этого поля...
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение rxu »

skv
Сколько всего форумов и какие у них ID (перечислите)?
Изображение
skv
phpBB 1.2.1
Сообщения: 24
Стаж: 17 лет 5 месяцев
Поблагодарили: 1 раз

Re: Проблемы с базой данных, размер около 2млн. сообщений

Сообщение skv »

форумов 480
ID от 1 до 538

а вот у последнего ID 1591112

Добавлено спустя 25 минут 35 секунд:
Удалил последний форум, вычистил упоминания о нем из всех таблиц, размер поля гостя уменьшился до 1,6 килобайта.


в связи с этим вопрос, в поле пермишнс должны быть какие то данные или все же оно должно быть нулевым ?
Если данные там какие то должны хранится , тогда проблемма решена.

rxu
спасибо за наводку...

autoincremet таблицы поправил, ID форумов создаются как надо.
Последний раз редактировалось skv 03.08.2011 5:35, всего редактировалось 2 раза.

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