Резервирование удаляемых записей в другую базу
Модератор: kdv
Резервирование удаляемых записей в другую базу
Добрый день. Есть такая просьба о помощи к знающим людям.
Как можно забэкапить удаляемые из базы записи в другую базу?
Структура самой базы в принципе заранее известна, меняться вряд ли будет. Цель - простое их сохранение для возможности их дальнейшего просмотра.
Уже много вычитал про сторонние репликаторы, но надо бы программно реализовать на Delphi.
Глобально задача состоит в чистке базы (т.е удаляем из нее все уже ненужное, например пока по времени и еще кое-чего, потом бэкапоресторим ее, бэкапные архивы сохраняем, чтоб их тож можно было посмотреть). Удаляемые записи скидываем в имеющe.cz пустую копию базы и ее тоже бэкапим пока.
Про копирование таблиц в пределах одной базы уже много чего нашел (там все просто, буквально одним инсертом), а вот в другую пока не встречал.
Пока других идей у меня нет, буду делать копирование с перебором поле-запись-таблица через IBTable.
Заранее спасиб, если кто откикнется.
Как можно забэкапить удаляемые из базы записи в другую базу?
Структура самой базы в принципе заранее известна, меняться вряд ли будет. Цель - простое их сохранение для возможности их дальнейшего просмотра.
Уже много вычитал про сторонние репликаторы, но надо бы программно реализовать на Delphi.
Глобально задача состоит в чистке базы (т.е удаляем из нее все уже ненужное, например пока по времени и еще кое-чего, потом бэкапоресторим ее, бэкапные архивы сохраняем, чтоб их тож можно было посмотреть). Удаляемые записи скидываем в имеющe.cz пустую копию базы и ее тоже бэкапим пока.
Про копирование таблиц в пределах одной базы уже много чего нашел (там все просто, буквально одним инсертом), а вот в другую пока не встречал.
Пока других идей у меня нет, буду делать копирование с перебором поле-запись-таблица через IBTable.
Заранее спасиб, если кто откикнется.
через IBTable вообще никакие копирования данных делать нельзя, это написано тут
www.ibase.ru/devinfo/ibx.htm
и тут
www.ibase.ru/devinfo/impexp.htm
"сохранение для дальнейшего просмотра" - это как???
Перенос из одной БД в другую - это понятно, можно использовать двухфазный коммит (но обязательно все делать в транзакции snapshot).
www.ibase.ru/devinfo/ibtrans.htm
www.ibase.ru/devinfo/ibx.htm
и тут
www.ibase.ru/devinfo/impexp.htm
"сохранение для дальнейшего просмотра" - это как???
Перенос из одной БД в другую - это понятно, можно использовать двухфазный коммит (но обязательно все делать в транзакции snapshot).
www.ibase.ru/devinfo/ibtrans.htm
За советы спасиб. Особенно за двухфазный, не подумал.
Через тэйбл хотел пробовать, потому что через IBSQL пока не осенило как.
Просмотр: тупо посмотреть потом, что мы удаляли в прошлом.
И еще вопрос: читал топик про нотпускание файла базы после shutdown, решение кроме "ждать" так и не найдено? Потому что с делэями работает через раз, а чаще через много раз. Кто-то еще писал что SYSDBA shutdown пофигу, это ведь чушь?
Через тэйбл хотел пробовать, потому что через IBSQL пока не осенило как.
Просмотр: тупо посмотреть потом, что мы удаляли в прошлом.
И еще вопрос: читал топик про нотпускание файла базы после shutdown, решение кроме "ждать" так и не найдено? Потому что с делэями работает через раз, а чаще через много раз. Кто-то еще писал что SYSDBA shutdown пофигу, это ведь чушь?
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Чтобы "тупо посмотреть потом" необязательно данные выкидывать в отдельную базу. Могут и в этой полежать.
SYSDBA и владелец базы действительно могут подключиться несмотря на shutdown. Это не чушь ибо shutdown как раз для того и сделан чтобы они могли спокойно (от других пользователей) администрировать базу.
SYSDBA и владелец базы действительно могут подключиться несмотря на shutdown. Это не чушь ибо shutdown как раз для того и сделан чтобы они могли спокойно (от других пользователей) администрировать базу.
В том и смысл, что из текущий базы их надо выкинуть, н необходим их последующий просмотр. Все это будет делаться естественно, когда меньше всего народу, может ночью, может нет, и в принципе, все кто все-таки не отключиться сам после мессаджа, будут нещадно обрублены. А енто работает почему-то периодически. Мне кажется, что это уже винда не отпускает файлик базы, хэндл что ли открытым остается.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Ты говоришь что их надо выкинуть, я говорю что нет, так что возникает естественный вопрос: сколько гигабайт занимает твоя база?molann писал(а):В том и смысл, что из текущий базы их надо выкинуть
Отсюда возникает второй вопрос: с каких это пор удаление записей (пусть даже массовое) стало требовать монопольного доступа?molann писал(а):будут нещадно обрублены.
Весит-то она не шибко много, проблема в том, что записи лишние появляются очень часто и в больших кол-вах (хранятся типа отсчеты определеныые для аппаратуры и много всег еще), поэтому нужно их периодически жахать оттуда, ну и дырки соответсвенно поубивать. Вот для бэкапарестора и нужен монопольный доступ.
Если несложно, изложи тогда свое мнение, как поступить. А то я так еще долго буду все объяснять.
Если несложно, изложи тогда свое мнение, как поступить. А то я так еще долго буду все объяснять.
База бэкапится, архивчик ныкается, если все ок мы ее дропаем и ресторим на ее место старую. Так вот дропается она только периодически.
А с ее засиранием уже ниче не сделаешь, все уже работает достаточно давно и люди не дураки далеко, все что можно оптимизировать уже сделали. Я же говорю, в базу сыпятся необходимые для работы аппаратуры данные и т.д.
А с ее засиранием уже ниче не сделаешь, все уже работает достаточно давно и люди не дураки далеко, все что можно оптимизировать уже сделали. Я же говорю, в базу сыпятся необходимые для работы аппаратуры данные и т.д.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Дырки??? В базе нет дырок. Если хочется убивать ненужные данные - убивайте (хотя я бы подумал над тем зачем ненужные данные вообще в базу заносятся). После этого - backup без ключа -g (пофиг что он может идти несколько часов - запустите на ночь) и... все.molann писал(а):поэтому нужно их периодически жахать оттуда, ну и дырки соответсвенно поубивать.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Пока я тут всем пытаюсь объяснить, зачем мне надо так делать, сам уже в принципе все сделал. Осталось только добить то ли винду, то ли IB, чтоб они файл сразу отпускали после шатдауна.
Замена - чтобы у девайсов-клиентов была актуальная, без лишнего устаревшего-ненужного хлама минимальная по размеру база.
Замена - чтобы у девайсов-клиентов была актуальная, без лишнего устаревшего-ненужного хлама минимальная по размеру база.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05