Страница 1 из 1

Online резервирование базы в облако

Добавлено: 24 мар 2013, 20:01
sinit
Есть задача обеспечения максимальной надежности базы FB2.5 на ноуте.
Т.е. периодически он виснет, его перегружают принудительно,...
Нашел, что есть сервисы типа
mozy.com
http://infobox.ru/backup/
которые обеспечивают бекап файлов по расписанию в облако и особо гордятся тем, что поддерживают SQL-базы данных, файлы, с которыми сейчас ведется работа. Причем делают бекап, отслеживать изменения в рамках файла, чтобы не бэкапировать все.
Упоминаются базы MSSQL, MySQL.
Никто с FB не пробовал подобное?

Re: Online резервирование базы в облако

Добавлено: 24 мар 2013, 22:08
kdv
скорее нет, чем да. Дело вот в чем

- база данных - это файл произвольного доступа, то есть информация в нем меняется в разных местах. например, поэтому БД нельзя копировать во время работы (потому что копирование последовательное, а изменение случайное, и скопируется фигня)

- чтобы можно было скопировать БД во время работы, операции в ней нужно остановить, однозначно. Именно так работает online dump в InterBase и nbackup в Firebird. Когда они запускаются, запись идет не в БД, а в "дельта-файл", который "заливается" в БД после окончания копирования БД.
Вторым вариантом мог бы быть некий "сигнал" серверу, который останавливает работу с БД до тех пор, пока она не будет скопирована, и опять "сигнал" с разрешением продолжения работы.

- возможно, MS SQL использует нечто аналогичное сказанному выше, хотя, там изменения идут через tempdb, то есть, можно притормозить заливку tempdb в базу на определенное время, или просто копировать между чекпойнтами. Но у IB/FB нет transaction log, поэтому такие операции можно делать только как сказано выше

- если сервер ФБ работает в виртуальной машине, то да, всей виртуальной машине можно сделать suspend, ее скопировать, потом возобновить работу. Но в этом случае коннекты к БД будут скорее всего потеряны (не восстановятся после возобновления suspend, т.к. для внешних коннектов виртуальная машина "умерла"). Однако, база в этом случае будет целой, т.к. после выхода из suspend недописанные изменения будут сохранены в БД. Другое дело, что все "оборванные" коннекты будут считаться отмененными по rollback, но это уже не важно.
Но, при этом, базу из такой suspended виртуальной машины копировать нельзя, потому файл БД может оказаться кривым, точно так же, как если рубануть питание на сервере и после этого скопировать базу.

так что, вариант для ноута - делать обычный бэкап gbak-ом периодически, куда-то в сеть. Можно, например, устроить так:
- подключаем нечто типа Google Disk, Yandex Disk и т.д., настраиваем резервируемую папку
- в резервируемую папку кидаем бэкапы.
- Google disk будет сам автоматом закидывать новый или изменный файл в облако, и оттуда его можно вытащить с любого другого компа.
Но тут надо проверить, является ли сам подобный сервис "транзакционным" - т.е., если бэкап сохранен, и он начинает автоматом копироваться в сеть, и в этот момент выключить ноут (жестко вырубить аккумулятор, например) - файл в файловом облаке останется старым, или будет заменен "наполовину закачанным"?

Re: Online резервирование базы в облако

Добавлено: 24 мар 2013, 22:16
kdv
а насчет backup it от infobox - насколько я понял, технология VSS от Микрософта должна использоваться в софте. Потому что все равно должен действовать принцип, который я описал выше. Т.е. приложение с помощью VSS может сигнализировать системе, когда файл находится в целостном состоянии. А в IB/FB VSS не поддерживается (то есть, FB должен бы был вести себя как writer в отношении VSS).

Re: Online резервирование базы в облако

Добавлено: 24 мар 2013, 22:28
kdv
до кучи - время аплоада еще. если между клиентом и облаком обычный канал, то база даже в 1 гиг будет копироваться достаточно долго.

Re: Online резервирование базы в облако

Добавлено: 25 мар 2013, 11:29
sinit
Понятно, действительно чудес не бывает.
Метод с периодическим стандартным бэкапом в папку, которая в свою очередь уже бэкапится на он-лайн ресурсе вполне меня устроит, объем базы незначителен.
А вообще, указанные сервисы вроде как закачивают не весь файл целиком, а только его изменения. Может и немаленькие gbk также будут бэкапить быстро.

Re: Online резервирование базы в облако

Добавлено: 25 мар 2013, 11:32
hvlad
sinit,
теоритически - ему всё равно, кто там работает с файлом, так что должно работать и с FB.
Практически - нужно пробовать самому, как обычно.

kdv,
почитай о Volume Shadow Copy Service (VSS)
Грубо говоря, это nbackup\dump на уровне ОС, для всего тома. Так что поддержка со стороны БД тут не нужна.

Re: Online резервирование базы в облако

Добавлено: 25 мар 2013, 11:54
hvlad
hvlad писал(а):kdv,
почитай о Volume Shadow Copy Service (VSS)
Грубо говоря, это nbackup\dump на уровне ОС, для всего тома. Так что поддержка со стороны БД тут не нужна.
Гм, вчитался в подробности - я был о нём (VSS) лучшего мнения. Но он таки требует поддержки от приложения (БД): пишущее приложение должно уметь остановить запись на время создания теневой копии. С другой стороны, базы данных FB и так всегда целостны на диске (из-за careful writes), так что может быть повезёт и VSS будет пригоден и без поддержки со стороны FB...

Re: Online резервирование базы в облако

Добавлено: 25 мар 2013, 14:22
kdv
А вообще, указанные сервисы вроде как закачивают не весь файл целиком, а только его изменения.
да ну. где ему взять изменения??? Для этого он должен иметь оба файла на клиенте, а этого нет. Или, должен сравнивать файлы по сетке, а это значит перекачку архивного файла ИЗ сети к клиенту.
Так что никаких изменений, файл из папки клиента тупо загружается на сервер. Другое дело, что "транзакционность" есть, и старый файл заменяется новым только когда новый полностью получен.

Re: Online резервирование базы в облако

Добавлено: 25 мар 2013, 14:24
kdv
С другой стороны, базы данных FB и так всегда целостны на диске (из-за careful writes), так что может быть повезёт и VSS будет пригоден и без поддержки со стороны FB...
если копируется том целиком - не спорю, по идее тут может база будет и целая. Но это уже как минимум десятки и сотни гиг, а значит либо сервер ФБ с базой должен быть в облаке, либо должна быть локальная инфраструктура из виртуальных машин.
И вот тут уже, кстати, средства к VM позволяют копировать diff-ы, а не тома целиком.

Re: Online резервирование базы в облако

Добавлено: 26 мар 2013, 09:23
sinit
kdv писал(а):да ну. где ему взять изменения??? Для этого он должен иметь оба файла на клиенте, а этого нет. Или, должен сравнивать файлы по сетке, а это значит перекачку архивного файла ИЗ сети к клиенту.
Мда, возможно предыдущий файл на клиенте хранится(а клиентское ПО там ставить нужно), иначе непонятно как они это обеспечивают. Ибо они данный функционал заявляют:
наше интеллектуальное программное обеспечение обнаруживает изменения даже на уровне одного файла (на уровне блоков), что чрезвычайно удобно для больших файлов (например, файлов баз данных). Это позволяет сократить объем трафика, а главное сократить время создания бэкапов.

Re: Online резервирование базы в облако

Добавлено: 26 мар 2013, 10:51
kdv
мы про кого говорим? Если про Google Disk и аналоги, то тут изменения никак не отслеживаются. Если про софт инфобокса - она наверняка может делать инкременты.