В документации пишут, тчо нужно:
LOCK TABLES ...;
FLUSH TABLES;
# Вот здесь есть время скопиировать файлы баз
UNLOCK TABLES;Но, скажем, если эти команды загружаются из batch-файла, то как другая программа (например которая архивирует и копирует файлы) узнает когда были сброшены таблицы?
Или, скажем, как этот исполняемый batch-файл с sql-командами узнает, что файлы баз скопированы, и можно разблокировать таблицы?
Заранее спасибо.
примерно так#!/usr/bin/perl
$DB->Query ("LOCK TABLES ...;");
$DB->Query ("FLUSH TABLES ...;");
system ("cp /var/lib/mysql/БД/таблицы /mnt/backup/дата/БД/");
$DB->Query ("UNLOCK TABLES ...;");
>примерно так
>
>#!/usr/bin/perl
>$DB->Query ("LOCK TABLES ...;");
>$DB->Query ("FLUSH TABLES ...;");
>system ("cp /var/lib/mysql/БД/таблицы /mnt/backup/дата/БД/");
>$DB->Query ("UNLOCK TABLES ...;");Прошу прощения за навязчивость и за незнание Perl, но есть еще такой вопрос. В документации к MySQL указывается, что таблица разблокируется при разрыве соединения. Не будут ли после каждого DB->Query разрываться соединения и сбрасываться блокировки (ведь ответ зависит от внутреннего устройства Perl, с котоорым я почти не знаком)?
Вот, на всякий случай, точный текст из документации.
All tables that are locked by the current thread are implicitly unlocked when the thread issues another LOCK TABLES, or when the connection to the server is closed.Заранее спасибо.
а соединение не закрывается
>а соединение не закрывается
>
>http://search.cpan.org/~rudy/DBD-mysql-2.9008/lib/Mysql.pmДа, я еще в документации обнаружил, что примерно такой же скрипт поставляется вместе с mysql и называется mysqlhotcopy.