1 |
Hi!
|
2 |
|
3 |
On Thu, Jan 11, 2007 at 10:18:59AM +0200, Anton Ananich wrote:
|
4 |
> 1) Собственно главный вопрос - в сабже :) Есть ли "серебряная пуля"? |
5 |
|
6 |
Смотря что именно вам нужно. Если есть возможность выключить сервер на
|
7 |
время бакапа, загрузиться с LiveCD и сделать dd - то это вполне себе
|
8 |
серебряная пуля. :) Дальше можно добавить оптимизацию для копирования
|
9 |
только изменившихся секторов диска и радоваться жизни.
|
10 |
|
11 |
А в общем случае, когда сервер выключать низзя, и приложения останавливать
|
12 |
тоже низзя, то надёжный бакап сделать невозможно в принципе (без поддержки
|
13 |
со стороны бакапящихся приложений). Дело в том, что если некое приложение
|
14 |
начало транзакцию при работе с базой данных, и в середине этой транзакции
|
15 |
база была забакаплена, то после восстановления этого бакапа база окажется
|
16 |
в не consistent состоянии. При этом под "транзакцией" я подразумеваю не
|
17 |
обязательно именно транзакцию в терминах SQL, а просто последовательность
|
18 |
операций которые нельзя прерывать. Такой транзакцией может быть и работа с
|
19 |
файлами на винте в каком-нить приложении, а не с базой данных.
|
20 |
|
21 |
И решить эту проблему невозможно никакими средствами - никакое
|
22 |
реплицирование базы данных или посекторное "прозрачное" дублирование
|
23 |
файловой системы не может _гарантировать_ что после восстановления бакапа
|
24 |
приложения смогут корректно работать и данные не будут повреждены.
|
25 |
|
26 |
Конечно, можно пытаться сделать относительно надёжный бакап с помощью,
|
27 |
например, блокировок базы данных которые гарантируют что все текущие
|
28 |
SQL-транзакции завершены в момент бакапа, и прочих техник которые пытаются
|
29 |
оптимизировать время бакапа (чем быстрее будет бакап, тем больше
|
30 |
вероятность что все файлы забакаплены примерно в "один и тот же момент")
|
31 |
а-ля постоянный фоновый бакап изменившихся секторов диска который реально
|
32 |
гарантирует snapshot файловой системы на конкретный момент времени...
|
33 |
|
34 |
Но даже при использовании таких техник бакапа необходимость молиться не
|
35 |
отменяется, т.к. гарантировать что всё заработает при восстановлении
|
36 |
бакапа всё равно нельзя ибо в системе всегда есть много транзакций которые
|
37 |
реализованы криво внутри приложений и не оформлены SQL-транзакциями,
|
38 |
состояние которых можно контролировать через базу.
|
39 |
|
40 |
--
|
41 |
WBR, Alex.
|
42 |
--
|
43 |
gentoo-user-ru@g.o mailing list |