Автор | Сообщение |
|
| Администратор
|
Пост N: 2229
Зарегистрирован: 23.05.05
|
|
Отправлено: 16.01.12 10:36. Заголовок: Архивация в letodb
Хочу посоветоваться. Задача - сделать бэкап (архив) базы в произвольный момент времени. Пусть архиватор будет 7z, хотя это не принципиально. Утилита запускается на сервере, где установлен letodb, по определенному графику (хотя бы планировщиком). Входные параметры: каталог БД и список расширений файлов, которые надо поместить в архив. Предлагается такой алгоритм: сканируется все содержимое каталога БД, и формируется список @listfiles для архиватора. Если это не файл данных, он просто добавляется в список. Если это файл данных, то выполняется попытка его открыть монопольно. Если попытка успешная - файл закрывается и добавляется в список. Если нет - добавляется в список № 2 для 2-го прохода. Для 1-го прохода через run вызывается архиватор, и ему дается список файлов. Для 2-го прохода создается новый каталог, куда средствами letodb через команду copy to копируются открытые файлы, затем вызывается архиватор с командой добавления в архив файлов, которые не были заархивированы во время 1-го прохода. Какие будут идеи ?
|
|
|
Ответов - 127
, стр:
1
2
3
4
5
6
7
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 582
Зарегистрирован: 25.12.07
|
|
Отправлено: 18.01.12 12:15. Заголовок: PSP пишет: Вот, вкр..
PSP пишет: цитата: | Вот, вкратце. Можете пинать... |
| Ну, почему пинать Но это все "техника", "способы реализации". С помощью каких механизмов что-то реализовать, тут Паше виднее. Вопрос тогда с другой стороны, а к чему этой техникой идем? "Какой бэкап" идеален с нашей общей точки зрения? Когда есть чётко сформулированная цель тогда и средства подбирать удобнее :)
|
|
|
|
| постоянный участник
|
Пост N: 583
Зарегистрирован: 25.12.07
|
|
Отправлено: 18.01.12 12:18. Заголовок: Аппаратный сбой прив..
Аппаратный сбой приведет к порче бэкапа любого сервера, не думаю, что нужно принимать такую вероятность во внимание.
|
|
|
|
| постоянный участник
|
Пост N: 688
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.01.12 12:19. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | "Какой бэкап" идеален с нашей общей точки зрения? |
| В общем-то да. Кому-то проще развернуть RAID-5 и 1 раз в сутки копировать файлы. Но, честно говоря, я бы не отказался от наличия в LetoDB функции бэкапа.
|
|
|
|
| постоянный участник
|
Пост N: 584
Зарегистрирован: 25.12.07
|
|
Отправлено: 18.01.12 12:41. Заголовок: PSP пишет: Но, чест..
PSP пишет: цитата: | Но, честно говоря, я бы не отказался от наличия в LetoDB функции бэкапа. |
| Нет-нет, я о бэкапе, зеркалирование имеет все-таки несколько другой смысл. Можно ли принять за аксиому вот такое утверждение: "Полноценный бэкап - это моментальный снимок БД на момент старта процесса бэкапа. "Снимок" включает в себя все данные закомиченные к моменту старта и не включает данные более поздних транзакций". Частичное попадание данных одной транзакции в бэкап недопустимо. ?
|
|
|
|
| |
Пост N: 383
Зарегистрирован: 11.06.10
|
|
Отправлено: 18.01.12 12:44. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Можно ли принять за аксиому вот такое утверждение: |
|
Скорее да, чем нет.
|
|
|
|
| постоянный участник
|
Пост N: 689
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.01.12 12:48. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Можно ли принять за аксиому вот такое утверждение |
| Думаю, можно. По-крайней мере, это утверждение довольно чётко описывает цель. Но я не знаю, как такой снимок сделать в контексте LetoDB.
|
|
|
|
| постоянный участник
|
Пост N: 585
Зарегистрирован: 25.12.07
|
|
Отправлено: 18.01.12 14:40. Заголовок: AlexMyr пишет: Скор..
AlexMyr пишет: PSP пишет: Тогда, можно ли считать аксиомой второе утверждение: "Прерывание работы сервера во время работы процесса бэкапа недопустимо". Если это аксиома, то я думаю, очевидно, что никакое внешнее средство, типа 7z, нам здесь не помошник. Но реализация такой задачи фактически сводится к реализации snapshot-транзакций в сервере Лето. Snapshot-транзакции это и есть такие транзакции, которые видят только данные существовавшие на момент их старта, ну и свои, конечно. ReadCommited-транзакции видят все закоммиченные данные и свои любые... На каких механизмах это можно реализовать Паше, конечно, лучше знать. Но мне кажется логичным, что начать надо с анализа реализации ReadCommited-транзакций, для попытки понять можно ли "вписаться" в тот же механизм. Но про механизм Паша что-то не ответил... Если же это не аксиома, а реализация snapshot-а затруднительно, то задача сводится к реализации такой остановки сервера "по команде", а чем копировать данные становится уже не так важно. Давайте определяться, аксиома ли это?
|
|
|
|
| |
Пост N: 384
Зарегистрирован: 11.06.10
|
|
Отправлено: 18.01.12 15:01. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Тогда, можно ли считать аксиомой второе утверждение: "Прерывание работы сервера во время работы процесса бэкапа недопустимо". |
|
Что такое прерывание работы сервера? Если сам сервер создает бэкап без использования внешних средств, это есть прерывание работы, или все таки это нужная фича сервера? И в целом, что такое актуальный бэкап, насколько он актуален через два, три часа, 15 минут, когда данные вносятся сотнями за 10, 40 минут, за сутки? Про второе утверждение, не знаю, и да, и нет.
|
|
|
|
| постоянный участник
|
Пост N: 690
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.01.12 15:30. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | "Прерывание работы сервера во время работы процесса бэкапа недопустимо". |
| Это - не аксиома. Ответ зависит от конкретной задачи. Где-то "допустимо", где-то "недопустимо". Я предлагаю все-таки дождаться Пашу.
|
|
|
|
| постоянный участник
|
Пост N: 587
Зарегистрирован: 25.12.07
|
|
Отправлено: 18.01.12 15:34. Заголовок: AlexMyr пишет: Что ..
AlexMyr пишет: цитата: | Что такое прерывание работы сервера? Если сам сервер создает бэкап без использования внешних средств, это есть прерывание работы, или все таки это нужная фича сервера? |
| Ok. Действительно, надо уточнить. Давайте "прерывание работы сервера" определим как "существенную временную паузу в обслуживании клиентских подключений и откат незавершенных транзакций, существовавших на момент прерывания". AlexMyr пишет: цитата: | И в целом, что такое актуальный бэкап, насколько он актуален через два, три часа, 15 минут, когда данные вносятся сотнями за 10, 40 минут, за сутки? |
| Ну, исходя из первого утверждения, во временном отношении, бэкап абсолютно актуален только на момент своего старта Но, мне кажется, здесь и разница с зеркалкой кроется. Не всегда, данные нужны строго актуальные. Потребность откатится часто вызвана не физическим разрушением, а логическим. И прогер, и админ, да и юзер могут такого "наколбасить", что лучше откатиться
|
|
|
|
| |
Пост N: 385
Зарегистрирован: 11.06.10
|
|
Отправлено: 18.01.12 15:37. Заголовок: Паша, какие мысли? :..
Паша, какие мысли?
|
|
|
|
|
| постоянный участник
|
Пост N: 692
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.01.12 15:49. Заголовок: Что такое snapshot-т..
Что такое snapshot-транзакция (или уровень изоляции)? Как я понимаю, сессия, для которой установлен этот уровень, будет всегда получать данные, существовавшие на момент включения этого уровня до момента отключения, независимо от того, что происходит с данными между двумя этими моментами. Но для такого варианта нужно реализовывать полноценный механизм транзакций. Думаю, для LetoDB пока это не подходит. :)
|
|
|
|
| постоянный участник
|
Пост N: 589
Зарегистрирован: 25.12.07
|
|
Отправлено: 18.01.12 17:39. Заголовок: PSP пишет: Но для т..
PSP пишет: цитата: | Но для такого варианта нужно реализовывать полноценный механизм транзакций. |
| Конечно, нужен какой-то механизм. PSP пишет: цитата: | Думаю, для LetoDB пока это не подходит. :) |
| Тогда вариант с "прерыванием работы сервера" фактически единственный для реализации полноценного бэкапа... Кстати, а "родственник" ADS на dbf-ах бэкапит?
|
|
|
|
| |
Пост N: 2263
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.01.12 17:43. Заголовок: Sergey Spirin пишет:..
|
|
|
|
| постоянный участник
|
Пост N: 591
Зарегистрирован: 25.12.07
|
|
Отправлено: 18.01.12 18:27. Заголовок: Dima пишет: Да врод..
Dima пишет: Да, даже вот цитата оттуда "с нами перекликается": :) All backups can be performed while the database is in use and will provide a logically correct “snapshot” of the database at the time the backup is started. То есть, принципиально это реализуемо и для dbf-ов....
|
|
|
|
| постоянный участник
|
Пост N: 693
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.01.12 19:18. Заголовок: Sergey Spirin пишет:..
|
|
|
|
| постоянный участник
|
Пост N: 1076
Зарегистрирован: 09.10.06
|
|
Отправлено: 18.01.12 19:35. Заголовок: Ну вы здесь и наваял..
Ну вы здесь и наваяли Откуда можно скачать последнюю версию Leto, посмотреть так сказать.. типа :pserver:anonymous@hwgui.cvs.sourceforge.net:/cvsroot/hwgui
|
|
|
|
| постоянный участник
|
Пост N: 694
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.01.12 19:45. Заголовок: Петр пишет: Ну вы з..
Петр пишет: cvs -d:pserver:anonymous@letodb.cvs.sourceforge.net:/cvsroot/letodb checkout -r rel-1-mt letodb
|
|
|
|
| постоянный участник
|
Пост N: 592
Зарегистрирован: 25.12.07
|
|
Отправлено: 18.01.12 19:46. Заголовок: PSP пишет: Да, но б..
PSP пишет: Ух ты, перешел из этого топика на другой по ссылке и обнаружил эту статью: http://devzone.advantagedatabase.com/dz/content.aspx?Key=17&RefNo=090521-2178 Где четко разъясняется, что ADS-ный бэкап работает на принципе нашего "прерывания работы сервера" Гм.. Текущие транзакции он не откатывает, а пытается ждать когда они закончатся. И если не дождется, то вываливается с ошибкой
|
|
|
|
| постоянный участник
|
Пост N: 1077
Зарегистрирован: 09.10.06
|
|
Отправлено: 18.01.12 20:31. Заголовок: PSP пишет: cvs -d:p..
PSP пишет: цитата: | cvs -d:pserver:anonymous@letodb.cvs.sourceforge.net:/cvsroot/letodb checkout -r rel-1-mt letodb |
| А что от поддержки xHarbour уже отказались полностью?
|
|
|
Ответов - 127
, стр:
1
2
3
4
5
6
7
All
[только новые]
|
|