Биллинговая система Nodeny
24 Ноября 2024, 02:40:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2]
  Печать  
Автор Тема: y2010x6x30  (Прочитано 11661 раз)
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #15 : 05 Июля 2010, 11:30:48 »

Выдерни питание у работающего сервера.
Поимеешь сразу кучу проблем - побитая фс и ессно побитая база.
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #16 : 05 Июля 2010, 13:45:06 »

пробовал;
написал скрипт кторый пишет в цикле с таблицу данные - не получилось.лад попробую еще
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #17 : 05 Июля 2010, 14:22:13 »

ну на самом то деле у тебя база сама по себе не упадет.
тебе проще в rc.local вставить проверку таблиц при некорректном выключении и автоматическое исправление если на то пошло.
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #18 : 05 Июля 2010, 20:09:02 »

пробовал;
написал скрипт кторый пишет в цикле с таблицу данные - не получилось.лад попробую еще
а если скрипт заклинит?
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #19 : 05 Июля 2010, 20:10:55 »

я вот не пойму...неужели так часто у кого-то падают базы?
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #20 : 05 Июля 2010, 20:17:17 »

я вот не пойму...неужели так часто у кого-то падают базы?
за последний год, у меня не разу не падала
поэтому я не вижу смысла в скриптах, а в случае падения, даже мануала хватает
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #21 : 05 Июля 2010, 20:29:44 »

я тоже вот думаю, что смысла в скрипте нет абсолютно.
база упадет, если упадет файловая система.
а если упадет файловая система ext2, то "Да хранит тебя Господь, если не делал бэкапы"

должна запустится автоматом fsck
а следом за ней поставь mysql repair и делов-то, а не колбасить каждый раз биллинг
« Последнее редактирование: 05 Июля 2010, 20:35:53 от stimels » Записан
Fredik
NoDeny
Старожил
*

Карма: 5
Offline Offline

Сообщений: 362


Просмотр профиля
« Ответ #22 : 05 Июля 2010, 22:46:19 »

...............................

а следом за ней поставь mysql repair и делов-то, а не колбасить каждый раз биллинг

а у тебя так и реализовано?
не поделишся ?
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #23 : 05 Июля 2010, 23:01:24 »

...............................

а следом за ней поставь mysql repair и делов-то, а не колбасить каждый раз биллинг

а у тебя так и реализовано?
не поделишся ?
+1
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #24 : 06 Июля 2010, 10:07:01 »

база упадет, если упадет файловая система.
не обязательно. да и в рс конф прописать fsck.

а если упадет файловая система ext2,
всегда считал что ufs

следом за ней поставь mysql repair и делов-то, а не колбасить каждый раз биллинг
и интересно какое время при старте займет это дело когда база в 5г?

а в 98% падают только  таблицы  дневного тарфика. вот их то и имеет смысл проверить - можно даже не в бидинг писать а просто перед стартом nodeny.sh и после старта мускула написать простенький скрипт который их проверит.



Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #25 : 06 Июля 2010, 12:38:00 »

...............................

а следом за ней поставь mysql repair и делов-то, а не колбасить каждый раз биллинг

а у тебя так и реализовано?
не поделишся ?
+1
в линухе, в /etc/rc.sysinit есть процедура проверки системы, при неправильном выключании системы
есть строки

Код:
if [ -f /fsckoptions ]; then
        fsckoptions=`cat /fsckoptions`
fi

if [ -f /forcefsck ] || strstr "$cmdline" forcefsck ; then
        fsckoptions="-f $fsckoptions"
elif [ -f /.autofsck ]; then
        [ -f /etc/sysconfig/autofsck ] && . /etc/sysconfig/autofsck
        if [ "$AUTOFSCK_DEF_CHECK" = "yes" ]; then
                AUTOFSCK_OPT="$AUTOFSCK_OPT -f"
        fi
        if [ -n "$AUTOFSCK_SINGLEUSER" ]; then
                echo
                echo $"*** Warning -- the system did not shut down cleanly. "
                echo $"*** Dropping you to a shell; the system will continue"
                echo $"*** when you leave the shell."
                [ -n "$SELINUX_STATE" ] && echo "0" > $selinuxfs/enforce
                sulogin
                [ -n "$SELINUX_STATE" ] && echo "1" > $selinuxfs/enforce
        fi
        fsckoptions="$AUTOFSCK_OPT $fsckoptions"
fi

if [ "$BOOTUP" = "color" ]; then
        fsckoptions="-C $fsckoptions"
else
        fsckoptions="-V $fsckoptions"
fi

ну и дальше описываются варианты условий, при каких делать только рид-онли на фс итд.

можно вставить проверку таблиц с префиксом y2010x итд
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #26 : 06 Июля 2010, 14:19:23 »

гдето так

touch /usr/local/etc/rc.d/mysqlr.pl

chmod +x /usr/local/etc/rc.d/mysqlr.pl

#!/usr/bin/perl

use DBI;
use Time::localtime;
use Time::HiRes qw (gettimeofday tv_interval);

#даные для сондинения с базой
$user='root';
$pw='pas';
$name='bill';
$server='localhost';
$port="3306";
$mysql_connect_timeout=10;

$DSN="DBI:mysql:database=$name;host=$server;mysql_connect_timeout=$mysql_connect_timeout";
$dbh=DBI->connect($DSN,$user,$pw,{PrintError=>1});
sub mtime
{
 my $t=localtime(shift);
 return sprintf("%dx%dx%d ",$t->year+1900,$t->mday,$t->mon+1);
}
$tab=&mtime(time());
$table='v'.$tab;
my $sth = $dbh->prepare(qq{repair table $table});
$sth->execute();
$table='x'.$tab;
my $sth = $dbh->prepare(qq{repair table $table});
$sth->execute();
$table='y'.$tab;
my $sth = $dbh->prepare(qq{repair table $table});
$sth->execute();
$table='z'.$tab;
my $sth = $dbh->prepare(qq{repair table $table});
$sth->execute();

exit;
Записан
Страниц: 1 [2]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!