как сделать резервную копию определеных данных?

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Аватара пользователя
Anticler
Сообщения: 28
Зарегистрирован: 28 мар 2007, 22:04

23 апр 2007, 16:41

мне необходимо закинуть кусок таблицы (напимер по дате) в отдельный файл и потом также высунуть отуда назад в таблицу в случае сбоя.
в итоге чтоб получилось резервное хранилище, состоящее из множесва кусков базы данных.
Аватара пользователя
SergeyS
Сообщения: 193
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

24 апр 2007, 04:21

что за таблица? какие данные содержатся в таблице? где хранится (может есть стандартные средства резервирования данных)?
Аватара пользователя
Anticler
Сообщения: 28
Зарегистрирован: 28 мар 2007, 22:04

24 апр 2007, 12:51

SergeyS писал(а):что за таблица? какие данные содержатся в таблице? где хранится (может есть стандартные средства резервирования данных)?
Таблица Paradox, содержит разные данные, включая мемо и блоб поля, хранится на локальном компьютере.
Насчет стандартных средств - мне необходимо, чтоб это выполняла моя программа
Аватара пользователя
SergeyS
Сообщения: 193
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

24 апр 2007, 12:59

Таблица Paradox, содержит разные данные, включая мемо и блоб поля
ну раз так, то создавай точную копию (структуру) нужной тебе таблицы, копируй нужные тебе записи из основной таблицы и сохраняй все это в другом месте.
Если потребуется восстановить данные, то можно будет в основной таблице удалить старые записи и вставить их из временной таблички.
Аватара пользователя
Anticler
Сообщения: 28
Зарегистрирован: 28 мар 2007, 22:04

24 апр 2007, 21:56

а как создать файлы таблиц со структурой?
и как потом при востановлении добавлять записи если есть автоинкриментные индексные поля?
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

25 апр 2007, 01:05

может тупо файл скопировать? ;)
Изображение
Аватара пользователя
SergeyS
Сообщения: 193
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

25 апр 2007, 04:16

&quot писал(а):и как потом при востановлении добавлять записи если есть автоинкриментные индексные поля
Ну тут есть два пути:
1. Отказаться от автоинкрементных полей и увеличивать id вручную
2. Не удалять записи из основной таблицы, а обновлять их на основе данных из временной таблицы

А может Игорь Акопян был прав, и в самом деле тупо скопировать весь файл?
Аватара пользователя
Anticler
Сообщения: 28
Зарегистрирован: 28 мар 2007, 22:04

26 апр 2007, 00:42

это я мог бы сделать давно, но мне необходимо, чтоб резервная база хранилась по частям.
дело в том, что база может достигать больших размеров и процесс архивирования может занять много времени, и при том - сколько ж будут потом весить все эти копии вместе... .
Аватара пользователя
Anticler
Сообщения: 28
Зарегистрирован: 28 мар 2007, 22:04

26 апр 2007, 00:45

SergeyS писал(а):Если потребуется восстановить данные, то можно будет в основной таблице удалить старые записи и вставить их из временной таблички.
Но если "вставить их из временной таблички", тогда индексы не сохранятся
Аватара пользователя
SergeyS
Сообщения: 193
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

26 апр 2007, 04:44

&quot писал(а):Но если "вставить их из временной таблички", тогда индексы не сохранятся
Сохранятся и ещё как. Или ты собираешься "ручками" их вставлять (в смысле не через BDE с таблицей работать а как с обычным бинарным файлом)?
Индексы обновляются каждый раз, когда ты модифицируешь таблицу и неважно как.
В принципе ты можешь реализовать свою идею, но зачем?
Насколько большой может быть твоя база?
До меня только сейчас дошло, ты хочешь делать последовательные бэкапы своей базы: за такое-то число, за такое и т.д., а если база свалится то восстанавливать её последовательно их списка этих файлов.
Слишком сложно.
Сколько ты планируешь будет жить твоя программа? Ты уверен что она станет очень большой? А если она станет очень большой сможет ли твоя программа шустро работать с paradox'овой табличкой.
У меня была программа на парадоксе, так там было около миллиона записей только в одной таблице - программа еле ползала, пришлось переходить на SQL

Если это коммерческий проект, то лучше сразу откажись от парадокса в пользу бесплатных SQL Server'ов (MySQL, FireBird...) тем более что система логов в них уже реализована. Если это для вуза - то забей на это, программы в институтах живут очень недолго (всегда находится новый талантливый программист, который говорит что сможет написать лучше :) ), если это курсовая или дипломная - тем паче.
Ответить