1 |
Hi! |
2 |
|
3 |
On Fri, Jan 28, 2011 at 03:12:04PM +0100, Edward Hades wrote: |
4 |
> > А Вам обязательно выполнять его из-под мухуля? |
5 |
> Видимо, чтобы снапшот был в связном (consistent) состоянии, он |
6 |
> делается пока таблицы залочены. |
7 |
|
8 |
Это можно реализовать иначе - установив FLUSH TABLES WITH READ LOCK из |
9 |
скрипта, в котором потом сделать exec sh-скрипта для выполнения бэкапа |
10 |
через lvm - пока процесс с PID-ом установившим FLUSH TABLES не выйдет |
11 |
блокировка будет стоять, а когда он выйдет будет сделан автоматический |
12 |
UNLOCK TABLES. |
13 |
|
14 |
Вот пример (вспомогательный скрипт моей тулзы powerbackup), который |
15 |
запускает tar и использует отдельный mysql-аккаунт для работы: |
16 |
|
17 |
---cut--- |
18 |
#!/usr/bin/perl |
19 |
# mysql> GRANT RELOAD ON *.* TO _backup@localhost IDENTIFIED BY "_backup"; |
20 |
use warnings; |
21 |
use strict; |
22 |
use DBI; |
23 |
|
24 |
chomp(my $user = `cat /etc/powerbackup/mysql.user`); |
25 |
chomp(my $pass = `cat /etc/powerbackup/mysql.pass`); |
26 |
my $dbh = DBI->connect('dbi:mysql:', $user, $pass, {RaiseError=>1}); |
27 |
$dbh->do('FLUSH TABLES WITH READ LOCK'); |
28 |
|
29 |
exec('tar', @ARGV); |
30 |
---cut--- |
31 |
|
32 |
-- |
33 |
WBR, Alex. |