Autor Thema: DB Komprimierung  (Gelesen 6535 mal)

Offline FRANKI

  • Senior Mitglied
  • ****
  • Beiträge: 346
  • Geschlecht: Männlich
  • vergiss nicht zu tanzen...
DB Komprimierung
« am: 02.09.03 - 12:50:13 »
Hallo alle zusammen,
hier eine ganz "einfache" Frage:

Kann man eine Datenbank per Agenten dazu kriegen, einen compress zu machen ??

Danke
FRANKI

Offline Markus Henke

  • Aktives Mitglied
  • ***
  • Beiträge: 143
  • Geschlecht: Männlich
Re:DB Komprimierung
« Antwort #1 am: 02.09.03 - 12:55:03 »
Hi,

es gibt keine Methode die das kann, aber wahrscheinlich gibt es dafür eine API. Ich denke die anderen hier können Dir bestimmt eine konkrete Antwort geben.

Gruß
Markus

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:DB Komprimierung
« Antwort #2 am: 02.09.03 - 12:57:22 »
Doch, eine Methode gibt es schon (NotesDatabase.Compact), aber die wirkt nur lokal ;-(

Warum soll das eigentlich ein Agent machen? Ein Programmdokument für den Server tut es doch auch.

Bernhard

Offline FRANKI

  • Senior Mitglied
  • ****
  • Beiträge: 346
  • Geschlecht: Männlich
  • vergiss nicht zu tanzen...
Re:DB Komprimierung
« Antwort #3 am: 02.09.03 - 13:01:57 »
Ich hab' hier eine DB in der ca 30000 Dokumente sind.
Die muß ich zu einem bestimmten Zeitpunkt löschen.
Anschließend wird die Datenbank dann neu aufgebaut, also es werden 30000 Dokumente erzeugt.
.....ist leider so und daran kann ich nichts ändern.
Ich hab nur das löschen in der Hand.
Danach würde ich die DB gerne dazu bewegen, sich auf normalgröße "gesundzuschrumpfen".

Das ist der Background.

Irgend eine Idee???

FRANKI

Driri

  • Gast
Re:DB Komprimierung
« Antwort #4 am: 02.09.03 - 15:32:41 »
Hi,

man kann über die Kommandozeile Datenbanken komprimieren, ich weiß aber nicht, ob das auch auf dem Server funktioniert.

Aufruf wäre z.B. ncompact.exe doc/log.nsf

Das kannst du ja per Execute ausführen, also z.B. :

@Command([Execute];"ncompact.exe doc\\log.nsf")

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:DB Komprimierung
« Antwort #5 am: 02.09.03 - 17:53:50 »
... ich würde das mit dem Programmdokument machen, es ist zeitlich steuerbar...

ata
Grüßle Toni :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:DB Komprimierung
« Antwort #6 am: 02.09.03 - 19:23:57 »
Auch wenn ich entsetzt bin, daß jeden Tag eine fünfstellige Dokumentenanzahl gelöscht wird, um sie dann neu 'reinzuziehen (brauchst Du Tipps, wie man das verhindern kann oder Argumente, warum man ggf. dann für solche Aktionen nicht Notes nehmen sollte?):
Folge ata's Tip und mach' ein Programmdokument für den betreffenden Server:
Programmname = compact
Befehlszeile = pfad\dateiname -L
Server = entsprechend angeben

Zeitplan: Im sicheren Abstand, nachdem Euer Kamikaze-Agent gelaufen ist (Log auswerten)

HTH,
Bernhard

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:DB Komprimierung
« Antwort #7 am: 02.09.03 - 19:28:31 »
... und verkürze in der Datenbank die Verweildauer für gelöschte Dokumente, deaktiviere "Ungelesene Dokumente markieren"

... und ich würde über Bernhards Anregung nachdenken, ob es nicht besser wäre nur upzudaten, wenn es was gibt, und ansonsten das Dokument zu belassen wie es ist, oder das System zu wechseln, ...

ata
Grüßle Toni :)

Offline FRANKI

  • Senior Mitglied
  • ****
  • Beiträge: 346
  • Geschlecht: Männlich
  • vergiss nicht zu tanzen...
Re:DB Komprimierung
« Antwort #8 am: 03.09.03 - 07:25:54 »
Danke für Eure Anregungen,

leider liegt der Sch.... mit dem löschen und neu Aufbauen definitiv nicht in meiner Hand.

Gruß
FRANKI

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:DB Komprimierung
« Antwort #9 am: 03.09.03 - 08:08:50 »
...  NotesDatabase.Compact funktioniert ja nur lokal.
Aber du kannst ja Konsolenkommandos über Script absetzen. Hier der notwendige Code

Declare Function NSFRemoteConsole Lib "NNotes.dll" Alias "NSFRemoteConsole" (Byval Server As String, Byval cmd As String, ret As Long) As Long
Declare Function OSLockObject Lib "NNotes.dll" Alias "OSLockObject" (Byval Handle) As String
Declare Sub OSUnlockObject Lib "NNotes.dll" Alias "OSUnlockObject" (Byval Handle)
Declare Sub OSMemFree Lib "NNotes.dll" Alias "OSMemFree" (Byval Handle)

Class remoteConsole
   Private IsError As Variant
   Private rc As Integer
   Private hBuffer As Long
   Private Server As String
   Private Command As String
   Private Result As String
   
   Sub New(inpServer As String)
      Dim server As New NotesSession
      If inpServer = "" Then
         Me.IsError = True
      Else
         Me.server=inpServer
         Me.IsError = False
      End If
   End Sub
   
   Function Execute(inpCommand As String) As String
      If Me.Server = "" Then
         Exit Function
      End If
      If inpCommand = "" Then
         Me.execute="You must specify a command"
         Me.iserror = True
         Exit Function
      Else
         Me.command = inpCommand
      End If
      
      Me.rc = NSFRemoteConsole(Me.server, Me.command, hBuffer)
      If Me.rc <> 0 Then
         Me.iserror = True
         Me.result="Error returned " & _
         " from console [" & Cstr(rc) & "]"
      Else
         Me.result = OSLockObject(hBuffer)
         Call OSUnlockObject(hBuffer)
         Call OSMemFree(hBuffer)
         Me.Iserror = False
      End If
      Me.execute = Me.result
   End Function
End Class

Sub Click(Source As Button)
   Dim exec As String
   Dim dummy As Variant
   Dim remConsole As New RemoteConsole ( "YOUR_SERVER_HERE" )
   Exec = "load compact....  deine Datenbank hier"
   dummy =  remConsole.Execute(exec)
End Sub
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:DB Komprimierung
« Antwort #10 am: 03.09.03 - 10:19:23 »
... kommt wie gerufen, kann ich gerade wo anders gebrauchen...

...danke...

ata  ;D
Grüßle Toni :)

Offline FRANKI

  • Senior Mitglied
  • ****
  • Beiträge: 346
  • Geschlecht: Männlich
  • vergiss nicht zu tanzen...
Re:DB Komprimierung
« Antwort #11 am: 03.09.03 - 13:16:24 »
Hallo Eknori,

ich stelle mich gerade etwas dumm an, Dein Script bekomme ich nicht zum laufen.
Ich habe einen Agenten erstellt und Dein Script hingeworfen.
dann gestartet  und.......
der Bildschirm flackert einmal, das wars....

Was habe ich falsch gemacht??

Danke
FRANKI

Offline HRaq

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 688
  • Geschlecht: Männlich
  • Erst hat man kein Glück, dann kommt noch Pech dazu
Re:DB Komprimierung
« Antwort #12 am: 03.09.03 - 13:32:59 »
Hi FRANKIE,

falls du dich doch für die Programmdokumente entscheiden solltest, würde ich vor das Compact ein Dokument für "updall Dateiname -R"
erstellen. Damit werden die Ansichtsindizes neu erstellt und alle anderen Indizes gelöscht. Das verkleinert die DB schon einmal. Noch idealer wäre es, danach noch ein Fixup (ebenfalls über Programmdokument) zu starten, falls das noch ins Zeitfenster passt.

Gruß Henning
Gruß Henning

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:DB Komprimierung
« Antwort #13 am: 03.09.03 - 15:16:32 »
@Franki

... du kannst im Log nachschauen, ob der Befehl erfolgreich abgesetzt wurde, dort sind die eintragungen der Konsole "protokolliert"

ata
Grüßle Toni :)

Offline FRANKI

  • Senior Mitglied
  • ****
  • Beiträge: 346
  • Geschlecht: Männlich
  • vergiss nicht zu tanzen...
Re:DB Komprimierung
« Antwort #14 am: 03.09.03 - 16:08:33 »
da steht leider nur:

Agent 'DBcompress' wurde am 03.09.2003 16:07:16 gestartet
Bearbeitet alle Dokumente in der Datenbank: insgesamt 6355
6355 Dokumente gefunden, die die Suchkriterien erfüllen
LotusScript Code ausgeführt
Agent 'DBcompress' wurde am 03.09.2003 16:07:16 beendet

und kompriemiert hat er nicht !!

Was ist verkehrt??

FRANKI

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz