Страница 1 из 1
предупреждение размера базы
Добавлено: 2008-10-22 11:52:54
weec
наверняка все знают, на мой взгляд простой, метод проверки размера базы и ограничение пользователей на запись
хотелось бы услышать что либо совершенное
Re: предупреждение размера базы
Добавлено: 2008-10-22 12:10:54
zg
пхпмуадмин умеет размер считать, по крону можно скрипт накатать, который будет чекать и лишать пользователя привилегии вносить в базу записи. Или поставить лимит в самом мускуле.
Re: предупреждение размера базы
Добавлено: 2009-01-13 14:15:14
generik
zg писал(а):пхпмуадмин умеет размер считать, по крону можно скрипт накатать, который будет чекать и лишать пользователя привилегии вносить в базу записи. Или поставить лимит в самом мускуле.
В MySQL есть возможность ограничивать рамер конкретной базы?
Re: предупреждение размера базы
Добавлено: 2009-01-13 14:57:45
zg
generik писал(а):В MySQL есть возможность ограничивать рамер конкретной базы?
насколько мне известно, нет. В мануале ничего про размер не сказано
http://dev.mysql.com/doc/refman/5.1/en/grant.html. Обычно это делается через квоты файловой системы.
Re: предупреждение размера базы
Добавлено: 2009-01-13 15:12:03
generik
zg писал(а):generik писал(а):В MySQL есть возможность ограничивать рамер конкретной базы?
насколько мне известно, нет. В мануале ничего про размер не сказано
http://dev.mysql.com/doc/refman/5.1/en/grant.html. Обычно это делается через квоты файловой системы.
Да, через квоты я знаю. Но если допустим условие таково что у пользователя есть 5 баз и нужно каждую ограничить в определенный размер. Через системные квоты получится только на все базы общий обьем ограничить.
В принципе я решил попробовать наваять или найти скрипт который будет чекать обьем базы и в случае превишения указанного лимита снимать права на INSERT с базы.
Поскольку программер с меня никакой буду кумекать

Насколько я понял что бы допустим на баше такое ваять нужно использовать циклы?
Re: предупреждение размера базы
Добавлено: 2009-01-13 15:18:04
zg
generik писал(а):Да, через квоты я знаю. Но если допустим условие таково что у пользователя есть 5 баз и нужно каждую ограничить в определенный размер. Через системные квоты получится только на все базы общий обьем ограничить.
а что мешает задать квоту на папку с конкретной базой?
generik писал(а):В принципе я решил попробовать наваять или найти скрипт который будет чекать обьем базы и в случае превишения указанного лимита снимать права на INSERT с базы.
самое простое и эффективное решение -)))
generik писал(а):Поскольку программер с меня никакой буду кумекать

Насколько я понял что бы допустим на баше такое ваять нужно использовать циклы?
на баше ваять нежелательно, лучше на шелле, а так смотря чего будет хотеться от скрипта. Если скрипт сложный, то лучше на пхп ваять (или чего знаешь), если не очень, то на sh.
Re: предупреждение размера базы
Добавлено: 2009-01-13 15:25:38
generik
zg писал(а):generik писал(а):Да, через квоты я знаю. Но если допустим условие таково что у пользователя есть 5 баз и нужно каждую ограничить в определенный размер. Через системные квоты получится только на все базы общий обьем ограничить.
а что мешает задать квоту на папку с конкретной базой?
У меня в системе есть юзер user1 у него есть 5 баз db1 db2 db3 db4 db5 мне нужно что бы на все его базы был лими по 50 Мб на каждую. Через системные квоты будет нереально.
generik писал(а):В принципе я решил попробовать наваять или найти скрипт который будет чекать обьем базы и в случае превишения указанного лимита снимать права на INSERT с базы.
самое простое и эффективное решение -)))
Я так же надеюсь что способ будет нормальный
generik писал(а):Поскольку программер с меня никакой буду кумекать

Насколько я понял что бы допустим на баше такое ваять нужно использовать циклы?
на баше ваять нежелательно, лучше на шелле, а так смотря чего будет хотеться от скрипта. Если скрипт сложный, то лучше на пхп ваять (или чего знаешь), если не очень, то на sh.
Чего я знаю?

я только вот начал изучать sh

) так что до php и других языков мне еще как до неба
Re: предупреждение размера базы
Добавлено: 2009-01-13 22:21:50
Alex Keda
чё за квоты на папку?
я чё-то в UFS упустил чтоле?
Re: предупреждение размера базы
Добавлено: 2009-01-13 22:43:06
zg
гм...
Код: Выделить всё
zg# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad4s1a 496M 145M 311M 32% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ad4s1d 4.8G 555M 3.9G 12% /root
/dev/ad4s1h 496M 432M 24M 95% /tmp
/dev/ad4s1e 24G 15G 7.2G 68% /usr
/dev/ad4s1f 24G 3.1G 19G 14% /usr/ports
/dev/ad4s1g 496M 265M 191M 58% /var
/dev/ad6s1c 144G 20G 113G 15% /backup
zg#
Mounted on - не папки? -))))
Re: предупреждение размера базы
Добавлено: 2009-01-13 23:00:52
Alex Keda
это точки монтирования.
по одной на юзера - поверь, это пеербор
Код: Выделить всё
serv# find . -type d | wc -l
366
serv# pwd
/home2/mysql
serv#
юзеров около сотни
Re: предупреждение размера базы
Добавлено: 2009-01-14 7:28:25
zg
lissyara писал(а):по одной на юзера - поверь, это пеербор
гм.. чёт я не подумал, муся же пашет от одного юзверя, так что квоты на диск тут не подойдут -))) значит остаётся скрипт
Re: предупреждение размера базы
Добавлено: 2009-01-24 13:48:11
Volodymyr
Не уверен что угадал с языком, но все же тут довольно понятно. (с) Bahadir Malkoc
Код: Выделить всё
<?php
mysql_connect("localhost","root","");
$result = mysql_query("SHOW TABLE STATUS FROM test;");
while($array = mysql_fetch_array($result)) {
$total = $array[Data_length]+$array[Index_length];
echo '
Table: '.$array[Name].'<br />
Data Size: '.$array[Data_length].'<br />
Index Size: '.$array[Index_length].'<br />
Total Size: '.$total.'<br />
Total Rows: '.$array[Rows].'<br />
Average Size Per Row: '.$array[Avg_row_length].'<br /><br />
';
}
?>
Ну или по простому. $total = размер таблицы. Сумма размеров таблиц = размер БД. Если размер БД привысит твой лимит меняешь права пользователя запрещая Инсертить, апдейтить и реплейсить. Если Размер БД станет меньше - опять разрешаеш это делать, ну и желательно письмо какое-то пользователю накатать с тем что произошло. Если не разберешься что и как я и так буду писать панельку для управление квотами БД, могу поделится (PHP).
Все что надо знать.
SHOW TABLE STATUS Syntax
GRANT Syntax
Не лишним может оказаться проверка и оптимизация БД перед определение ее размера.