Архивирование базы

GROMILA

Well-known member
08.04.2004
297
0
#1
Привет всем.
Есть постоянно пополняемая база.
Есть ряд полуаналитических выборок по месяцам, датам и т.п.
В основном данные интересны за 2 последних года.
Но иногда нужна сквозная аналитика за все годы в виде отчета.

Расскажите кто как организовывал архивирование документов базы?
C применением каких средств?
Как пополняли архив?
 
S

Sandr

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

Это самый просто пример.. а ваще механизмов много испольуется, но кто ж их будет рассказывать на общедоступных формуах.. :(
 
R

root

#3
я так делал
Код:
	Dim nArchDb As New NotesDatabase("s1/s1","(Archive).nsf") 
Dim nSs As New NotesSession
Dim nDb As NotesDatabase
Dim nDoc As NotesDocument 
Dim nDocColl As NotesDocumentCollection
Set nDb = nSs.CurrentDatabase 
Formula1$={Form="WorkNote" }'условия отбора 
Set nDocColl = nDb.Search(Formula1$,Nothing,0) 
Set nDoc = nDocColl.GetFirstDocument 
While Not(nDoc Is Nothing)
Call		nDoc.CopyToDatabase(nArchDb) 
Set		 nDoc = nDocColl.GetNextDocument(nDoc) 
Wend
 
S

Sandr

#4

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

ЗЫ: Считаю это важнейшим моментов в архивировании...
 
R

root

#5
Вся семья ;)
Код:
Dim nArchDb As New NotesDatabase("s1/s1","(Archive).nsf") 
Dim nSs As New NotesSession
Dim nDb As NotesDatabase
Dim nDoc As NotesDocument 
Dim nDocColl As NotesDocumentCollection
Set nDb = nSs.CurrentDatabase 
Formula1$={Form="WorkNote"| @AllChildren }'условия отбора 
Set nDocColl = nDb.Search(Formula1$,Nothing,0) 
Set nDoc = nDocColl.GetFirstDocument 
While Not(nDoc Is Nothing)
Call		nDoc.CopyToDatabase(nArchDb) 
Set		 nDoc = nDocColl.GetNextDocument(nDoc) 
Wend
 

GROMILA

Well-known member
08.04.2004
297
0
#7
Что скажет сообщество по поводу ахивирования путем выгрузки в SQL Server?
 
S

Sandr

#8
А зачем? Если архив нуже "шоб лежал", то можно, а ели архивом пользуются, то не желательно... Ганять данные туда-сюда - неблагодарное дело...
 
R

root

#9
Для: GROMILA
Делал только базу с тестами, sql+lotus нормально работает.
 

GROMILA

Well-known member
08.04.2004
297
0
#10
А зачем? Если архив нуже "шоб лежал", то можно, а ели архивом пользуются, то не желательно... Ганять данные туда-сюда - неблагодарное дело...
Архив нужен только для построения аналитических отчетов.
никаких переиндексирующихся представлений ему не нужно.

объемы увеличиваются с каждым годом и база уже начинает занимать 1,5 ГБ
В SQL она займет от силы 50 МБ, ну может 100МБ

Root
расскажите какие технологии использовали и как все было организовано?