powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Архивирование БД помесячно(каждый раз в новую базу)
25 сообщений из 30, страница 1 из 2
Архивирование БД помесячно(каждый раз в новую базу)
    #39316778
ЮраСка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Уважаемые коллеги, подскажите пожалуйста, есть ли у кого готовый механизм архивирования БД (небольшая БД в 3 таблицы, с накоплением в 2 месяца поминутно(около 50мб.), каждый день БД перезатирается новыми значениями).
Цель: создавать ежемесячные архивы, то есть брать целиком предыдущий месяц, например каждое 1-е число текущего месяца и класть информацию в отдельную БД под названием, например: "201608" или "201609", август и сентябрь 2016 соответственно.

Буду рад любым механизмам!
Спасибо!
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39316814
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮраСкакаждый день БД перезатирается новыми значениями).
Если каждый день перезатираются значения, то как они накопяться за месяц?
Вопрос 2 - версия Access?
Вопрос 3 - База разделенная или все в одном файле?
Пока достаточно.
С уважением.
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39316863
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простейший механизм - это тупое копирование БД с изменением её имени, и последующей, если надо, чисткой "лишних" записей. Можно при определённых условиях даже клиентов не отключать...
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317013
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮраСка, я на форуме уже упоминал инструмент резервного копирования cobian backup. Бесплатно, множество настроек и возможностей. Подойдёт?
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317021
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TarasiosЮраСка, я на форуме уже упоминал инструмент резервного копирования cobian backup. Бесплатно, множество настроек и возможностей. Подойдёт?
Дык в архивах должны быть данные за месяц.
В теме это указано.
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317023
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROIЮраСкакаждый день БД перезатирается новыми значениями).
Если каждый день перезатираются значения, то как они накопяться за месяц?
Вопрос 2 - версия Access?
Вопрос 3 - База разделенная или все в одном файле?
Пока достаточно.
С уважением.

ТС так и не ответил на мои вопросы.
Дальше гадать неинтерестно.
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317322
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,
ну а в чём проблема то? Делается отдельный файл базы.
Из основной базы по кнопочке, или по условию (скажем, наступление каждого первого числа месяца) делаются такие операции:
1. Удаляются таблицы из доп. базы
2. В основной базе по запросу делается выборка за период, результат кидается в доп. базу.
3. Копировалка создаёт файл (в чистом виде или сжатом, архивном) с датой (и временем) создания в качестве имени, ныкает его в нужный каталог.
Дела на пять минут.
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317343
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaПростейший механизм - это тупое копирование БД с изменением её имени, и последующей, если надо, чисткой "лишних" записей. Можно при определённых условиях даже клиентов не отключать...

Именно так и делаю.
Автоматом один раз в день, при открытии программы.
Вполне нормально.
жаль, но это не спасёт от случая краха базы.
Тут нужно вести лог файлы (например текстовые)
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317374
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58это не спасёт от случая краха базыВ случае краха спасает только бэкап.

час58нужно вести лог файлы (например текстовые)Никто не мешает лить данные сразу в 2 БД параллельно (эдакая "репликация вручную"), причём сами БД расположить на независимых серверах. Вероятность, что сдохнут сразу обе, весьма невелика.
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317379
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,
почему только раз в день, при открытии?
Тут надо исходить из скорости внесения в базу новых данных, и, соответственно, отсюда уже определять частоту сохранения бэккапов. Да хоть каждые пять минут делайте копии, зато потом, при крахе базы (а от этого никто не застрахован), перечень потерянных данных микроскопичен, и набивается заново элементарно. Ну или как минимум - ущерб минимален.
Ну и если что - или на другой комп дубль базы кидайте, или вообще в "облако".
Кста, ТС вообще потерялся, тут уже идёт чисто общение "советчиков" )))
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317407
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TarasiosROI,
ну а в чём проблема то? Делается отдельный файл базы.
Из основной базы по кнопочке, или по условию (скажем, наступление каждого первого числа месяца) делаются такие операции:
1. Удаляются таблицы из доп. базы
2. В основной базе по запросу делается выборка за период, результат кидается в доп. базу.
3. Копировалка создаёт файл (в чистом виде или сжатом, архивном) с датой (и временем) создания в качестве имени, ныкает его в нужный каталог.
Дела на пять минут.
Вы наверно ошиблись у меня с этим проблем нет.
Это вы ТС объясните.
С уважением.
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317417
ЮраСка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
(потерялся, т.к. часовые пояса рабочего времени не совпадают :) +6 МСК :) писал вчера в конце рабочего дня... )

попробую ответить всем поочередно...

ROI

"Если каждый день перезатираются значения, то как они накопяться за месяц?
Вопрос 2 - версия Access?
Вопрос 3 - База разделенная или все в одном файле?
Пока достаточно.
С уважением."

1. накопления падают каждую минуту (по нескольким ID), новые значения пишутся в конец по дате и времени... старые значения постепенно исчезают (вытираются), т.к. пишет все это дело OPC-сервер, у него стоит жесткое ограничение по времени, по сроку хранения (2 месяца), то есть новые значения пишутся, а ранние значения уходят...
ну как то так... не знаю как еще объяснить... (выложу попозже структуру БД)

2. 2007

3. База - все в одном файле mdb

Далее опишу БД (например база температур наружного воздуха за 2 месяца по настоящее время, по нескольким объектам):

в БД 3 таблицы

1. TagTable
2. FloatTable
3. StringTable (в работе не участвует, пустая, но она создается, т.к. ее создает OPC-сервер)

в скринах выложу 2 таблицы участвующие в работе...



Akina

"Простейший механизм - это тупое копирование БД с изменением её имени, и последующей, если надо, чисткой "лишних" записей. Можно при определённых условиях даже клиентов не отключать..."

руками надоело это делать, поэтому хочется автоматизировать...



Tarasios, ROI

"ЮраСка, я на форуме уже упоминал инструмент резервного копирования cobian backup. Бесплатно, множество настроек и возможностей. Подойдёт?"

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


"ROI,
ну а в чём проблема то? Делается отдельный файл базы.
Из основной базы по кнопочке, или по условию (скажем, наступление каждого первого числа месяца) делаются такие операции:
1. Удаляются таблицы из доп. базы
2. В основной базе по запросу делается выборка за период, результат кидается в доп. базу.
3. Копировалка создаёт файл (в чистом виде или сжатом, архивном) с датой (и временем) создания в качестве имени, ныкает его в нужный каталог.
Дела на пять минут."

1. удалять из основной не нужно, а нужно чтобы каждый месяц ложился в свой файл и назывался например "201608" (август) или "201609" (сентябрь, который должен упасть в свой файл 1-го октября...) и т.д.
2. именно так ;)
3. да

Дела на пять минут, для профи... я к сожалению дилетант в этом... поэтому и пришел сюда :)




ну и про бэкапы....

бэкапы баз данных сделать, не долго, да и это не проблема вовсе... базы небольшие, самая большая разрастается до 120 мб максимум, а так как она перезатирается, то больше не вырастает...

я в скрине выложил одну из многочисленных баз, таких у меня пока 8, через месяц будет в 2 раза больше и т.д.
большая система, которая собирает показания с разных датчиков..., отсюда из этих баз строится система работы с отчетностью на ASP; внутренним софтом OPC-сервера строятся по запросам пользователей тренды (графики), - данные подгружаются опять же из оперативной базы сроком в 2 месяца...там дальше настройки... посуточно, почасово и т.д., все очень гибко...
Оперативные отчеты работают на основе этой базы (я ее называю "оперативная" - 2 месяца), относительно быстро происходит выборка...
встал вопрос о создании системы архивной отчетности, - подобие оперативным отчетам, только данные должны браться из архивных баз разделенных по месяцам....

вот как то так все... кажется на все ответил...
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317420
ЮраСка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почитал про спец ПО
К сожалению copian backup не подойдет в моем случае, т.к. нужно выборку делать за 1 месяц, а у меня оперативная база в 2 месяца (это необходимость, ее не обойти)
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317440
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮраСка1. накопления падают каждую минуту (по нескольким ID), новые значения пишутся в конец по дате и времени... старые значения постепенно исчезают (вытираются), т.к. пишет все это дело OPC-сервер, у него стоит жесткое ограничение по времени, по сроку хранения (2 месяца), то есть новые значения пишутся, а ранние значения уходят...
ну как то так... не знаю как еще объяснить... (выложу попозже структуру БД)
Это что за зверь OPC-сервер который все режет?
И получается что Access просто клиент?
Чем дальше в лес, тем толше партизаны
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317476
ЮраСка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROIЮраСка1. накопления падают каждую минуту (по нескольким ID), новые значения пишутся в конец по дате и времени... старые значения постепенно исчезают (вытираются), т.к. пишет все это дело OPC-сервер, у него стоит жесткое ограничение по времени, по сроку хранения (2 месяца), то есть новые значения пишутся, а ранние значения уходят...
ну как то так... не знаю как еще объяснить... (выложу попозже структуру БД)
Это что за зверь OPC-сервер который все режет?
И получается что Access просто клиент?
Чем дальше в лес, тем толше партизаны

SCADA системы :) (Человеко-машинный интерфейс - "HMI" по ихнему :) )

"SCADA
Программный пакет, предназначенный для разработки или обеспечения работы в реальном времени систем сбора, обработки, отображения и архивирования информации об объекте мониторинга или управления. SCADA может являться частью АСУ ТП, АСКУЭ, системы экологического мониторинга, научного эксперимента, автоматизации здания и т. д. SCADA-системы используются во всех отраслях хозяйства, где требуется обеспечивать операторский контроль за технологическими процессами в реальном времени. Данное программное обеспечение устанавливается на компьютеры и, для связи с объектом, использует драйверы ввода-вывода или OPC/DDE серверы. Программный код может быть как написан на языке программирования, так и сгенерирован в среде проектирования. Википедия"

в общем было определено специальными людьми, что БД оперативная должна быть именно 2 месяца :) не больше! не меньше! :)
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317479
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮраСкаROIпропущено...

Это что за зверь OPC-сервер который все режет?
И получается что Access просто клиент?
Чем дальше в лес, тем толше партизаны

SCADA системы :) (Человеко-машинный интерфейс - "HMI" по ихнему :) )

"SCADA
Программный пакет, предназначенный для разработки или обеспечения работы в реальном времени систем сбора, обработки, отображения и архивирования информации об объекте мониторинга или управления. SCADA может являться частью АСУ ТП, АСКУЭ, системы экологического мониторинга, научного эксперимента, автоматизации здания и т. д. SCADA-системы используются во всех отраслях хозяйства, где требуется обеспечивать операторский контроль за технологическими процессами в реальном времени. Данное программное обеспечение устанавливается на компьютеры и, для связи с объектом, использует драйверы ввода-вывода или OPC/DDE серверы. Программный код может быть как написан на языке программирования, так и сгенерирован в среде проектирования. Википедия"

в общем было определено специальными людьми, что БД оперативная должна быть именно 2 месяца :) не больше! не меньше! :)
Про ситемы реального времени я знаю не по наслышке.
Вы скажите как тут Access прикручен?
С уважением.
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317576
ЮраСка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROIЮраСкапропущено...


SCADA системы :) (Человеко-машинный интерфейс - "HMI" по ихнему :) )

"SCADA
Программный пакет, предназначенный для разработки или обеспечения работы в реальном времени систем сбора, обработки, отображения и архивирования информации об объекте мониторинга или управления. SCADA может являться частью АСУ ТП, АСКУЭ, системы экологического мониторинга, научного эксперимента, автоматизации здания и т. д. SCADA-системы используются во всех отраслях хозяйства, где требуется обеспечивать операторский контроль за технологическими процессами в реальном времени. Данное программное обеспечение устанавливается на компьютеры и, для связи с объектом, использует драйверы ввода-вывода или OPC/DDE серверы. Программный код может быть как написан на языке программирования, так и сгенерирован в среде проектирования. Википедия"

в общем было определено специальными людьми, что БД оперативная должна быть именно 2 месяца :) не больше! не меньше! :)
Про ситемы реального времени я знаю не по наслышке.
Вы скажите как тут Access прикручен?
С уважением.

с экрана живые (реальные) показания падают в базу... и т.д.
З.Ы. sql использовать нет возможности... да и в Access ничем не хуже...
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317586
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮраСка,
Код: vbnet
1.
2.
3.
4.
5.
Akina 

"Простейший механизм - это тупое копирование БД с изменением её имени, и последующей, если надо, чисткой "лишних" записей. Можно при определённых условиях даже клиентов не отключать..."

руками надоело это делать, поэтому хочется автоматизировать...



Зачем же руками???
Речь идёт про автоматическое архивирование.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Public Function FUN_V_ARHIV()    ' Архивация "CLN_TBL.mdb" в папку ARHIV
    Dim OTKUDA As String
    Dim KUDA As String
    Dim FILE_ARHIV_NAME As String

    On Error GoTo FUN_V_ARHIV_Error
    '-----------------------------------------------------------------------------

    FILE_ARHIV_NAME = FUN_FILE_NAME_IN("Архив", "mdb")
    OTKUDA = Nz(DLookup("ZNACHENIE", "TUNING_TBL", "ID  = 'Папка_Таблиц'"))
    OTKUDA = OTKUDA & "\" & "CLN_TBL.mdb"
    KUDA = CurrentProject.Path & "\ARHIV\CLN_TBL_" & FILE_ARHIV_NAME
    Set fso = New Scripting.FileSystemObject

    fso.CopyFile OTKUDA, KUDA
    Call MESS("Создан Архив данных.")


    '-----------------------------------------------------------------------------
    On Error GoTo 0
    Exit Function
FUN_V_ARHIV_Error:

    Call ZAPIS_V_TEXT_FILE(CurrentProject.Path & "\Ошибки программы.txt", "функция: FUN_V_ARHIV в модуле: ARHIV_MOD" & vbTab & Nz(Err.Description))

End Function
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317593
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮраСкас экрана живые (реальные) показания падают в базу... и т.д.
З.Ы. sql использовать нет возможности... да и в Access ничем не хуже...
Ничего не пойму.
Как понять "с экрана падают в базу"
Да Access не хуже.
Как вы им данные "достаете"
Вы внятно можете объяснить всю связку?
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317628
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮраСкаруками надоело это делать, поэтому хочется автоматизировать...
Ок. Раз уж
ЮраСкая к сожалению дилетант в этом... поэтому и пришел сюда
то предлагаю реализовать следующее:
1) Пишется VBS-скрипт, который реализует создание новой БД и копирование в неё информации за прошедшие месяцы. Само собой, он как минимум проверяет, что такой БД пока не существует, а как максимум - что вся информация за целевой месяц из основной БД имеется в резервной.
2) Создаётся задание планировщика на запуск этого скрипта первого числа каждого месяца, с запуском при пропуске срока задания. Крайне желательно, чтобы это задание выполнялось на той физической машине, в файловой системе которой располагается исходная база данных.
3) Ежемесячно контролируется выполнение скрипта, создание очередной архивной БД и корректное копирование в неё требуемой информации.
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317639
ЮраСка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaЮраСкаруками надоело это делать, поэтому хочется автоматизировать...
Ок. Раз уж
ЮраСкая к сожалению дилетант в этом... поэтому и пришел сюда
то предлагаю реализовать следующее:
1) Пишется VBS-скрипт, который реализует создание новой БД и копирование в неё информации за прошедшие месяцы. Само собой, он как минимум проверяет, что такой БД пока не существует, а как максимум - что вся информация за целевой месяц из основной БД имеется в резервной.
2) Создаётся задание планировщика на запуск этого скрипта первого числа каждого месяца, с запуском при пропуске срока задания. Крайне желательно, чтобы это задание выполнялось на той физической машине, в файловой системе которой располагается исходная база данных.
3) Ежемесячно контролируется выполнение скрипта, создание очередной архивной БД и корректное копирование в неё требуемой информации.

а в коде есть где то условие, что он выбирает именно месяц... ?
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317648
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮраСкаа в коде есть где то условие, что он выбирает именно месяц... ?Берём тупо предыдущий месяц, и всё...
Код: vbnet
1.
WHERE format([table].[datetime], "yyyyMM") = format(dateadd("m", -1, date()), "yyyyMM")
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317649
ЮраСка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROIЮраСкас экрана живые (реальные) показания падают в базу... и т.д.
З.Ы. sql использовать нет возможности... да и в Access ничем не хуже...
Ничего не пойму.
Как понять "с экрана падают в базу"
Да Access не хуже.
Как вы им данные "достаете"
Вы внятно можете объяснить всю связку?

Если по простому, то примерно вот так будет:

Датчик -> контроллер -> SCADA система ->
-> 1. На экраны пользователям (операторы и т.д.)
-> 2. В БД пишет... Инициатор SCADA система, через ODBC. И выставляется частота записей: - по изменению значения, - 1 раз в промежуток времени (раз в минуту, раз в секунду, 2 раза в минуту.... и т.д. тут уже как душе угодно, в нашем случае ОДИН РАЗ в минуту), - еще есть непрерывная запись, то есть если железо серверов где берет и куда пишет позволяет, то пишет каждую секунду!

таким образом, в нашем случае, накапливается 2 месяца, потом перезатирает более ранние значения... например на скрине начальные записи стоят 30.07.2016, завтра на этом месте будет 31.07.2016 .... и т.д.

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

ну вот как то так...
если что упустил, спрашивайте...
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317655
ЮраСка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaЮраСкаа в коде есть где то условие, что он выбирает именно месяц... ?Берём тупо предыдущий месяц, и всё...
Код: vbnet
1.
WHERE format([table].[datetime], "yyyyMM") = format(dateadd("m", -1, date()), "yyyyMM")



а куда вставить? :)
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317661
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или чтобы побыстрее работало, (только при условии, что поле [datetime] индексированное), собираем даты первого дня текущего и предыдущего месяца и пишем 2 неравенства:
Код: vbnet
1.
2.
WHERE [table].[datetime] >= DateSerial(Year(Date),Month(Date)-1,1)
  AND [table].[datetime] < DateSerial(Year(Date),Month(Date),1)
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Архивирование БД помесячно(каждый раз в новую базу)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]