* [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 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
* 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
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