public inbox for gentoo-user-ru@lists.gentoo.org
 help / color / mirror / Atom feed
* [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