Gentoo Archives: gentoo-user-ru

From: Sergey Kobzar <sergey.kobzar@××××.ru>
To: gentoo-user-ru@l.g.o
Subject: Re: [gentoo-user-ru] LVM snapshot
Date: Fri, 28 Jan 2011 19:44:01
Message-Id: 4D431C5F.9080509@mail.ru
In Reply to: Re: [gentoo-user-ru] LVM snapshot by Alex Efros
1 On 01/28/11 18:50, Alex Efros wrote:
2
3 > Это можно реализовать иначе - установив FLUSH TABLES WITH READ LOCK из
4 > скрипта, в котором потом сделать exec sh-скрипта для выполнения бэкапа
5 > через lvm - пока процесс с PID-ом установившим FLUSH TABLES не выйдет
6 > блокировка будет стоять, а когда он выйдет будет сделан автоматический
7 > UNLOCK TABLES.
8 >
9 > Вот пример (вспомогательный скрипт моей тулзы powerbackup), который
10 > запускает tar и использует отдельный mysql-аккаунт для работы:
11 >
12 > ---cut---
13 > #!/usr/bin/perl
14 > # mysql> GRANT RELOAD ON *.* TO _backup@localhost IDENTIFIED BY "_backup";
15 > use warnings;
16 > use strict;
17 > use DBI;
18 >
19 > chomp(my $user = `cat /etc/powerbackup/mysql.user`);
20 > chomp(my $pass = `cat /etc/powerbackup/mysql.pass`);
21 > my $dbh = DBI->connect('dbi:mysql:', $user, $pass, {RaiseError=>1});
22 > $dbh->do('FLUSH TABLES WITH READ LOCK');
23 >
24 > exec('tar', @ARGV);
25 > ---cut---
26
27 Да, можно залочить таблицы php/perl скриптом, потом вызвать shell скрипт
28 для бэкапа, потом снять лок в perl/php.
29
30 Можно все это дело вообще одним perl/shell скриптом реализовать, но мне
31 хотелось использовать именно shell дабы не прыгать от одного скрипта к
32 другому, т.к. многие вещи удобно делать из shell, а не извращаться с
33 perl/php. Да и доставлять ничего не придется.
34
35 Видимо другого варианта нет, или же просто забить на ошибку... Вроде бы
36 и так все работает.

Replies

Subject Author
Re: [gentoo-user-ru] LVM snapshot Sergiy Borodych <bor@×××××××××.ua>