Теоретический вопрос о сохранности базы

  • Автор темы Vagor.ini
  • Дата начала
V

Vagor.ini

Гость
#1
Интересует такой вопрос, какие возможности использует, уважаемые посетитель, при сохранении работоспособности БД.

Задача такая, имеется программа(Delphi 5), используется хранение различных данных в базе на основе компонента Absolute Database, все таблицы хранятся в одной базе (физически файл один).

Интересны мнения, как предложите хранить и когда создавать копию базы, для предотвращения потери данных или порчи БД. То что, нужно создавать резервную копию - это требование.

Спасибо за участие!
 
B

Barmutik

Гость
#2
Всё зависит от требований... если надо то можно хоть каждый час сохранять ...

Маленький шедулерчик и сохраняеш по расписанию.. можно даже в прогу встроить... была когда-то похожая ситуация с Аксессовской базой.
 
W

waterfall

Гость
#3
А когда у тя возникают ситуации, когда твоя база оказывается запорченной?
 
V

Vagor.ini

Гость
#4
waterfall
Тут только резервные реплики помогут (думаю так)...
 
B

Barmutik

Гость
#5
Тут два ваиранта:

1. Если формат базы известен то репэйр базы по правилам
2. Если формат не известен то восстановление из последней копии.

Сразу вопрос: А что ж за такая задача где настолько велика вероятноть запортить базу? Я поманию что база может быть испорчена только в результате отказа аппаратуры или сбоя ПО системного уровня .. твоя клиентская прога вообще поидее никак не может запортить базу ...
 
W

waterfall

Гость
#6
2 Vagor:
Ты всё-таки не ответил на мой вопрос...

И потом действительно - это ещё надо поискать такие ситуации когда у тя база запорется - она у тебя ж локальная и в одном файле...
При занесении данных в базу, если она поддерживает сессии, то
тут думаю не должно быть особых проблем + ещё контроль занесения данных. И если питание компа вдруг вырубится и сессия на занесение данных не будет закрыта, то данные просто не попадут в базу... Она вовсе не запорется. Главное всё грамотно спроектировать. Так что ты ещё раз подумай - а надо ли тебе это вообще BackUp-ить базу?
 
B

Barmutik

Гость
#7
Бакапить то надо .. всякое может быть .. просто вероятность физического запорчения базы как мне кажется крайне мала ...
 
V

Vagor.ini

Гость
#8
waterfall
Прости, писал про реплики и не в ту ветку попал... :)

Сбоя и порчи базы у меня вообще не возникает, но, как я сказал ранее, в одном физическом файле у меня хранятся таблицы которые в принципе пользователь будет заполнять данными и думаю если юзер сам запорет файл (удалит например...), он первым делом взвоет в тех. помощи (собственно ко мне)...

Ситуация еще и такая, что программа shareware - в принципе раз я за нее собираюсь взымать деньги, значит и предусмотреть элементарную защиту от ду..юзверей надо. Пока остановился, на беккапе при загрузке и завершении программы. Просто хочется узнать кто как еще делает...


Barmutik
просто вероятность физического запорчения базы как мне кажется крайне мала ...
Ох, если бы было так. Работаю я админом (Lotus Notes) и при полной защищенности серверных баз (сами лотусовские фишки) сколько интересных историй как юзеры портят личные адресные книги (адреса - фигня, но там содержатся настройки конектов для клиентcкой программы)...
 
W

waterfall

Гость
#9
Если бы был контроль при заполнении вводимых данных и хотя бы элементарный анализ, то я думаю вопрос про бэкапы так бы остро не стоял... Да и про саму базу ты толком так ничего и не сказал...
И как же это ты умудрился спроектировать базу, что юзер запросто как ты говоришь её может запороть? :) При занесении данных такая ситуация вообще должна быть исключена, особенно, если ты хочешь за свою прогу деньги получать...
 
W

waterfall

Гость
#10
Если бы был контроль при заполнении вводимых данных и хотя бы элементарный анализ, то я думаю вопрос про бэкапы так бы остро не стоял... Да и про саму базу ты толком так ничего и не сказал...
И как же это ты умудрился спроектировать базу, что юзер запросто как ты говоришь её может запороть? :) При занесении данных такая ситуация вообще должна быть исключена, особенно, если ты хочешь за свою прогу деньги получать...
 
W

waterfall

Гость
#11
И потом, ты случаем не htmlreader хотишь за бабки продавать?
 
V

Vagor.ini

Гость
#12
waterfall
контроль при заполнении вводимых данных и хотя бы элементарный анализ
обижаешь:) - контроль есть, да и при занесении данных, вряд ли как-то ее испортить... Опять же вопрос стоит как защитить физический файл... ладно проехали... бекапю при открытии и закрытии программы...

И как же это ты умудрился спроектировать базу, что юзер запросто как ты говоришь её может запороть?
я как раз проектирую базу в едином файле, но с множеством таблиц и возможностью обмениваться таблицами между пользователями программы(через копии базы)...

И потом, ты случаем не htmlreader хотишь за бабки продавать?
Нет, сейчас другим проектом занят
 
W

waterfall

Гость
#13
Просто HTML-Reader тебе было бы продавать не с руки, так как он расчитан на очень неопытного пользователя (я бы сказал совсем новичка, для написания homepage). И интерфейс проги я бы не назвал дружелюбным. Да и потом движок проги, что самое главное чужой...
Любой HomeSite + или Dreamweaver твою прогу превосходят по всем пунктам и поддерживают все новые стантарты HTML, XML и т.д. Macromedia есть THE BEST в этом плане. Тока не обижайся...

Ты собираешься какую прогу шароварить? По картам Таро?
 
V

Vagor.ini

Гость
#14
waterfall
Так, а кто говорил про продажу HtmlReader, естественно, согласен что редактор для быстрого редактирования html, и не собираюсь, конечное, тягаться с монстрами htmlстроения...

Ты собираешься какую прогу шароварить? По картам Таро?
Да
 
P

Pete

Гость
#15
А если при загрузке системы повесить сервис, который бы этот самый файл открывал, на чтение допустим. Тогда ОС бы не дала удалить файл базы. Бэкапа это конечно не отменяет, но от совершенно тупых пользователей думаю защитит.
 
V

Vagor.ini

Гость
#16
Pete
Это уже слишком:) сильная защита, но вариант заметил, спасибо...
 

admin

Well-Known Member
08.08.2003
2 754
1
#17
ИМХО самое важное - это защита БД, её своевременный юэкап и конечно же движок.
 
S

saver

Гость
#18
По твоим словам получается, что твоя прога не может похе...(ой) поломать БД..., и ты хочешь защитить её от нехороших пользователей... . Можно же просто делать при каждом запуске проги (или изменении БД) одну резервную копию (например в C:\Windows\System... незнаю кто туда полезит), причем копий этих 5 или 10 и каждый раз обновлять самую старую... Это стопудова сохранит твою БД и при этом можно будет откатить изменения... (как в Виндовс ХаЭр)... :)