* [gentoo-user-ru] LVM snapshot
@ 2011-01-28 12:39 Sergey Kobzar
2011-01-28 13:09 ` Богун Дмитрий
0 siblings, 1 reply; 9+ messages in thread
From: Sergey Kobzar @ 2011-01-28 12:39 UTC (permalink / raw
To: gentoo-user-ru
Приветствую.
Пишу скрипт для бэкапа mysql базы с пом. lvm snapshot. Кусок кода:
mysql --user=$MYSQL_USER --password=$MYSQL_PASS << EOF
FLUSH TABLES WITH READ LOCK;
system sync;
system lvcreate --snapshot --name $SNAP --size $SNAP_SIZE
/dev/${VG}/${LV} > /dev/null 2>&1;
UNLOCK TABLES;
EOF
При создании снэпшота (system lvcreate --snapshot) вываливается ошибка:
File descriptor 3 (socket:[265123]) leaked on lvcreate invocation.
Parent PID 29203: sh
но вроде бы все работает.
Google ничего внятного не выдал.
Кто-ть может объяснить что это такое?
Спасибо.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [gentoo-user-ru] LVM snapshot
2011-01-28 12:39 [gentoo-user-ru] LVM snapshot Sergey Kobzar
@ 2011-01-28 13:09 ` Богун Дмитрий
2011-01-28 13:16 ` Sergey Kobzar
0 siblings, 1 reply; 9+ messages in thread
From: Богун Дмитрий @ 2011-01-28 13:09 UTC (permalink / raw
To: gentoo-user-ru
В Птн, 28/01/2011 в 14:39 +0200, Sergey Kobzar пишет:
> Пишу скрипт для бэкапа mysql базы с пом. lvm snapshot. Кусок кода:
>
> mysql --user=$MYSQL_USER --password=$MYSQL_PASS << EOF
> FLUSH TABLES WITH READ LOCK;
> system sync;
> system lvcreate --snapshot --name $SNAP --size $SNAP_SIZE
> /dev/${VG}/${LV} > /dev/null 2>&1;
> UNLOCK TABLES;
> EOF
>
> При создании снэпшота (system lvcreate --snapshot) вываливается ошибка:
> File descriptor 3 (socket:[265123]) leaked on lvcreate invocation.
> Parent PID 29203: sh
>
> но вроде бы все работает.
> Google ничего внятного не выдал.
>
> Кто-ть может объяснить что это такое?
Вероятно ему не нравится унасленованный от мускуля файловый дескриптор.
Вот и ругается.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [gentoo-user-ru] LVM snapshot
2011-01-28 13:09 ` Богун Дмитрий
@ 2011-01-28 13:16 ` Sergey Kobzar
2011-01-28 13:47 ` Богун Дмитрий
0 siblings, 1 reply; 9+ messages in thread
From: Sergey Kobzar @ 2011-01-28 13:16 UTC (permalink / raw
To: gentoo-user-ru
On 01/28/11 15:09, Богун Дмитрий wrote:
> В Птн, 28/01/2011 в 14:39 +0200, Sergey Kobzar пишет:
>> Пишу скрипт для бэкапа mysql базы с пом. lvm snapshot. Кусок кода:
>>
>> mysql --user=$MYSQL_USER --password=$MYSQL_PASS<< EOF
>> FLUSH TABLES WITH READ LOCK;
>> system sync;
>> system lvcreate --snapshot --name $SNAP --size $SNAP_SIZE
>> /dev/${VG}/${LV}> /dev/null 2>&1;
>> UNLOCK TABLES;
>> EOF
>>
>> При создании снэпшота (system lvcreate --snapshot) вываливается ошибка:
>> File descriptor 3 (socket:[265123]) leaked on lvcreate invocation.
>> Parent PID 29203: sh
>>
>> но вроде бы все работает.
>> Google ничего внятного не выдал.
>>
>> Кто-ть может объяснить что это такое?
> Вероятно ему не нравится унасленованный от мускуля файловый дескриптор.
> Вот и ругается.
Т.е. можно тупо игнорировать?
Плохо то, что если:
1. перенапривать stderr в /dev/null, но если будет другая ошибка можно
не увидеть
2. забить, но ошибка примелькается и другую тоже можно не заметить
3. Нельзя обработь ошибки (exit code) при выполнении lvcreate --snapsho
корректно.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [gentoo-user-ru] LVM snapshot
2011-01-28 13:16 ` Sergey Kobzar
@ 2011-01-28 13:47 ` Богун Дмитрий
2011-01-28 14:12 ` Edward Hades
0 siblings, 1 reply; 9+ messages in thread
From: Богун Дмитрий @ 2011-01-28 13:47 UTC (permalink / raw
To: gentoo-user-ru
В Птн, 28/01/2011 в 15:16 +0200, Sergey Kobzar пишет:
> >> Пишу скрипт для бэкапа mysql базы с пом. lvm snapshot. Кусок кода:
> >>
> >> mysql --user=$MYSQL_USER --password=$MYSQL_PASS<< EOF
> >> FLUSH TABLES WITH READ LOCK;
> >> system sync;
> >> system lvcreate --snapshot --name $SNAP --size $SNAP_SIZE
> >> /dev/${VG}/${LV}> /dev/null 2>&1;
> >> UNLOCK TABLES;
> >> EOF
> >>
> >> При создании снэпшота (system lvcreate --snapshot) вываливается ошибка:
> >> File descriptor 3 (socket:[265123]) leaked on lvcreate invocation.
> >> Parent PID 29203: sh
> >>
> >> но вроде бы все работает.
> >> Google ничего внятного не выдал.
> >>
> >> Кто-ть может объяснить что это такое?
> > Вероятно ему не нравится унасленованный от мускуля файловый дескриптор.
> > Вот и ругается.
> Т.е. можно тупо игнорировать?
А Вам обязательно выполнять его из-под мухуля?
> Плохо то, что если:
> 1. перенапривать stderr в /dev/null, но если будет другая ошибка можно
> не увидеть
> 2. забить, но ошибка примелькается и другую тоже можно не заметить
> 3. Нельзя обработь ошибки (exit code) при выполнении lvcreate --snapsho
> корректно.
Если вылезти из-под мускуля и выполнять все из sh, то все эти проблемы
исчезнут.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [gentoo-user-ru] LVM snapshot
2011-01-28 13:47 ` Богун Дмитрий
@ 2011-01-28 14:12 ` Edward Hades
2011-01-28 16:50 ` Alex Efros
2011-01-28 19:38 ` Sergey Kobzar
0 siblings, 2 replies; 9+ messages in thread
From: Edward Hades @ 2011-01-28 14:12 UTC (permalink / raw
To: gentoo-user-ru
2011/1/28 Богун Дмитрий <vugluskr@vugluskr.org.ua>:
> А Вам обязательно выполнять его из-под мухуля?
Видимо, чтобы снапшот был в связном (consistent) состоянии, он
делается пока таблицы залочены.
--
Edward "Hades" Toroshchin,
dr_lepper on irc.freenode.org
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [gentoo-user-ru] LVM snapshot
2011-01-28 14:12 ` Edward Hades
@ 2011-01-28 16:50 ` Alex Efros
2011-01-28 19:43 ` Sergey Kobzar
2011-01-28 19:38 ` Sergey Kobzar
1 sibling, 1 reply; 9+ messages in thread
From: Alex Efros @ 2011-01-28 16:50 UTC (permalink / raw
To: gentoo-user-ru
Hi!
On Fri, Jan 28, 2011 at 03:12:04PM +0100, Edward Hades wrote:
> > А Вам обязательно выполнять его из-под мухуля?
> Видимо, чтобы снапшот был в связном (consistent) состоянии, он
> делается пока таблицы залочены.
Это можно реализовать иначе - установив FLUSH TABLES WITH READ LOCK из
скрипта, в котором потом сделать exec sh-скрипта для выполнения бэкапа
через lvm - пока процесс с PID-ом установившим FLUSH TABLES не выйдет
блокировка будет стоять, а когда он выйдет будет сделан автоматический
UNLOCK TABLES.
Вот пример (вспомогательный скрипт моей тулзы powerbackup), который
запускает tar и использует отдельный mysql-аккаунт для работы:
---cut---
#!/usr/bin/perl
# mysql> GRANT RELOAD ON *.* TO _backup@localhost IDENTIFIED BY "_backup";
use warnings;
use strict;
use DBI;
chomp(my $user = `cat /etc/powerbackup/mysql.user`);
chomp(my $pass = `cat /etc/powerbackup/mysql.pass`);
my $dbh = DBI->connect('dbi:mysql:', $user, $pass, {RaiseError=>1});
$dbh->do('FLUSH TABLES WITH READ LOCK');
exec('tar', @ARGV);
---cut---
--
WBR, Alex.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [gentoo-user-ru] LVM snapshot
2011-01-28 14:12 ` Edward Hades
2011-01-28 16:50 ` Alex Efros
@ 2011-01-28 19:38 ` Sergey Kobzar
1 sibling, 0 replies; 9+ messages in thread
From: Sergey Kobzar @ 2011-01-28 19:38 UTC (permalink / raw
To: gentoo-user-ru
On 01/28/11 16:12, Edward Hades wrote:
> 2011/1/28 Богун Дмитрий<vugluskr@vugluskr.org.ua>:
>> А Вам обязательно выполнять его из-под мухуля?
>
> Видимо, чтобы снапшот был в связном (consistent) состоянии, он
> делается пока таблицы залочены.
Верно.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [gentoo-user-ru] LVM snapshot
2011-01-28 16:50 ` Alex Efros
@ 2011-01-28 19:43 ` Sergey Kobzar
2011-02-04 21:30 ` Sergiy Borodych
0 siblings, 1 reply; 9+ messages in thread
From: Sergey Kobzar @ 2011-01-28 19:43 UTC (permalink / raw
To: gentoo-user-ru
On 01/28/11 18:50, Alex Efros wrote:
> Это можно реализовать иначе - установив FLUSH TABLES WITH READ LOCK из
> скрипта, в котором потом сделать exec sh-скрипта для выполнения бэкапа
> через lvm - пока процесс с PID-ом установившим FLUSH TABLES не выйдет
> блокировка будет стоять, а когда он выйдет будет сделан автоматический
> UNLOCK TABLES.
>
> Вот пример (вспомогательный скрипт моей тулзы powerbackup), который
> запускает tar и использует отдельный mysql-аккаунт для работы:
>
> ---cut---
> #!/usr/bin/perl
> # mysql> GRANT RELOAD ON *.* TO _backup@localhost IDENTIFIED BY "_backup";
> use warnings;
> use strict;
> use DBI;
>
> chomp(my $user = `cat /etc/powerbackup/mysql.user`);
> chomp(my $pass = `cat /etc/powerbackup/mysql.pass`);
> my $dbh = DBI->connect('dbi:mysql:', $user, $pass, {RaiseError=>1});
> $dbh->do('FLUSH TABLES WITH READ LOCK');
>
> exec('tar', @ARGV);
> ---cut---
Да, можно залочить таблицы php/perl скриптом, потом вызвать shell скрипт
для бэкапа, потом снять лок в perl/php.
Можно все это дело вообще одним perl/shell скриптом реализовать, но мне
хотелось использовать именно shell дабы не прыгать от одного скрипта к
другому, т.к. многие вещи удобно делать из shell, а не извращаться с
perl/php. Да и доставлять ничего не придется.
Видимо другого варианта нет, или же просто забить на ошибку... Вроде бы
и так все работает.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [gentoo-user-ru] LVM snapshot
2011-01-28 19:43 ` Sergey Kobzar
@ 2011-02-04 21:30 ` Sergiy Borodych
0 siblings, 0 replies; 9+ messages in thread
From: Sergiy Borodych @ 2011-02-04 21:30 UTC (permalink / raw
To: gentoo-user-ru
01/28/11 21:43, Sergey Kobzar написав(ла):
> On 01/28/11 18:50, Alex Efros wrote:
>
>> Это можно реализовать иначе - установив FLUSH TABLES WITH READ LOCK из
>> скрипта, в котором потом сделать exec sh-скрипта для выполнения бэкапа
>> через lvm - пока процесс с PID-ом установившим FLUSH TABLES не выйдет
>> блокировка будет стоять, а когда он выйдет будет сделан автоматический
>> UNLOCK TABLES.
>>
>> Вот пример (вспомогательный скрипт моей тулзы powerbackup), который
>> запускает tar и использует отдельный mysql-аккаунт для работы:
>>
>> ---cut---
>> #!/usr/bin/perl
>> # mysql> GRANT RELOAD ON *.* TO _backup@localhost IDENTIFIED BY
>> "_backup";
>> use warnings;
>> use strict;
>> use DBI;
>>
>> chomp(my $user = `cat /etc/powerbackup/mysql.user`);
>> chomp(my $pass = `cat /etc/powerbackup/mysql.pass`);
>> my $dbh = DBI->connect('dbi:mysql:', $user, $pass, {RaiseError=>1});
>> $dbh->do('FLUSH TABLES WITH READ LOCK');
>>
>> exec('tar', @ARGV);
>> ---cut---
>
> Да, можно залочить таблицы php/perl скриптом, потом вызвать shell скрипт
> для бэкапа, потом снять лок в perl/php.
>
> Можно все это дело вообще одним perl/shell скриптом реализовать, но мне
> хотелось использовать именно shell дабы не прыгать от одного скрипта к
> другому, т.к. многие вещи удобно делать из shell, а не извращаться с
> perl/php. Да и доставлять ничего не придется.
>
> Видимо другого варианта нет, или же просто забить на ошибку... Вроде бы
> и так все работает.
>
можна посмотреть еще на
* app-backup/mylvmbackup
Latest version available: 0.13
Latest version installed: 0.13
Size of files: 36 kB
Homepage: http://lenzg.net/mylvmbackup/
Description: mylvmbackup is a tool for quickly creating backups
of MySQL server's data files using LVM snapshots
License: GPL-2
--
Sergiy Borodych
http://bor.org.ua
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-02-04 21:31 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-28 12:39 [gentoo-user-ru] LVM snapshot Sergey Kobzar
2011-01-28 13:09 ` Богун Дмитрий
2011-01-28 13:16 ` Sergey Kobzar
2011-01-28 13:47 ` Богун Дмитрий
2011-01-28 14:12 ` Edward Hades
2011-01-28 16:50 ` Alex Efros
2011-01-28 19:43 ` Sergey Kobzar
2011-02-04 21:30 ` Sergiy Borodych
2011-01-28 19:38 ` Sergey Kobzar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox