AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
17.10.21 - 07:43:46
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Domino 9 und frühere Versionen
| |-+  ND8: Entwicklung (Moderatoren: Axel, Thomas Schulte, koehlerbv)
| | |-+  Selektive Repliken anlegen
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Selektive Repliken anlegen  (Gelesen 4836 mal)
mastertom
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 350


Yet another Domino-Day!


« am: 29.12.10 - 19:39:31 »

Hallo zusammen,

ich suche ein Script, dass es mir ermöglicht, von Server X die Datenbank Y als Replik auf Server Z anzulegen.

Idealer Weise wird dann auch gleich eine Replikationsformel hinterlegt, die z.B. nur 90 Tage alte Mails repliziert.

Ist das überhaupt mit Lotus Script / oder ggf. mit Formelsprache umsetzbar oder muß ich hier tatsächlich "Hand" anlegen?

Bin gespannt auf Eure Ansätze

Gespeichert

Gruß

Tom

-----------------------------------------------------

Einen Haufen User, die einem von der Arbeit abhalten wollen Smiley
pram
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1169



WWW
« Antworten #1 am: 30.12.10 - 00:45:27 »

Es gibt notesDatabase.createReplica. In Verbindung mit dem NotesDbDirectory sollte zumindest das Anlegen kein Problem sein.
Wie man jetzt aber die Replizierformel ändert, weiß ich nicht, ggf. steckt sie in diesem speziellen Dokument:
Set doc = db.GetDocumentByID("FFFF0800")

Gruß
Roland
Gespeichert

Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework
eknori
@Notes Preisträger
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11563


« Antworten #2 am: 30.12.10 - 10:11:51 »

Du musst zunachst einen ReplicaStub anlegen. Dafür gibt es in LS aber keinen direkten Befehl.

Über notesDatabase.CreateReplica( newServer$, newDbFile$ ) kann man zwar eine neue replik erstellen, es wird aber sofort repliziert.

Daher müssen wir mal wieder zur API greifen

Declaration
Code:
Declare Function W32_NSFDbOpen Lib "nnotes.dll" Alias "NSFDbOpen" _
(Byval dbname As String, dbHandle As Long ) As Long
Declare Function W32_NSFDbClose Lib "nnotes.dll" Alias "NSFDbClose" _
(Byval dbHandle As Long ) As Long
Declare Function W32_NSFDBCREATE Lib "NNOTES.DLL" Alias "NSFDbCreate" _
(Byval dbname As String, Byval dbClass As Single, Byval forceIt As Single) As Long
Declare Function W32_NSFDBREPLICAINFOSET Lib "NNOTES.DLL" Alias "NSFDbReplicaInfoSet" _
(Byval dbHandle As Long, replInfoStruct As Long) As Long
Declare Function W32_NSFDBREPLICAINFOGET Lib "NNOTES.DLL" Alias "NSFDbReplicaInfoGet" _
(Byval dbHandle As Long, replInfoStruct As Long) As Long

Function CreateReplStub
Code:
Function CreateReplStub(S_Server As String, S_Db As String, T_Server As String, T_Db As String, forceit As Single) As Long
Dim S_DbString As String
Dim T_DbString As String
Dim dbhandle As Long
Dim retNoteID As Long
Dim noteClass As Long
Dim replInfo(5) As Long

Select Case Ucase$(S_Server)
Case "LOCAL"
S_DbString = S_Db
Case "LOKAL"
S_DbString = S_Db
Case ""
S_DbString = S_Db
Case Else
S_DbString = S_Server + "!!" + S_Db
End Select

Select Case Ucase$(T_Server)
Case "LOCAL"
T_DbString = T_Db
Case "LOKAL"
T_DbString = T_Db
Case ""
T_DbString = T_Db
Case Else
T_DbString = T_Server + "!!" + T_Db
End Select

'get the replica info struct from Source DB

rc = W32_NSFDBOPEN(S_DbString, dbhandle)
rc = W32_NSFDBREPLICAINFOGET(dbhandle, replInfo(0))
rc = W32_NSFDBCLOSE(dbhandle)

'crete new DB and asign replikaInfo

rc = W32_NSFDBCREATE(T_DbString, DBCLASS_NOTEFILE, forceIt)
Print "Create",rc
rc = W32_NSFDBOPEN(T_DbString, dbhandle)
Print "Open", rc
rc = W32_NSFDBREPLICAINFOSET(dbhandle, replInfo(0))
Print "Set", rc
rc = W32_NSFDBCLOSE(dbhandle)
Print "close", rc

End Function

aufgerufen wird der code dann beispielsweise:
Code:
Sub Click(Source As Button)
rc = CreateReplStub("comm3/singultus/de", "mail\bgates.nsf", "comm2/singultus/de", "mail\bgates.nsf", True)
End Sub

Der code erstellt einen replica stub in dem du jetzt über
notesReplicationEntry.Formula = formula$ die Replikationsformel setzen kannst.

Ein bisschen ErrorHandling solltest du auch noch einbauen. Habe den Code auf das Nötigste abgespeckt.
Gespeichert
mastertom
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 350


Yet another Domino-Day!


« Antworten #3 am: 30.12.10 - 18:00:17 »

Wow... das liest sich sehr schlüssig... da werde ich mich gleich mal dransetzen :-)

Vielen Dank für die Unterstützung... Ich melde mich dann entsprechender Erfolgsmeldung :-)


Gespeichert

Gruß

Tom

-----------------------------------------------------

Einen Haufen User, die einem von der Arbeit abhalten wollen Smiley
0xse
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 507



« Antworten #4 am: 03.01.11 - 11:51:59 »

Bis auf die Anlage des Replik-Rumpfes findest du alles hier:
http://atnotes.de/index.php/topic,47655.0.html
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #5 am: 03.01.11 - 14:26:44 »

Wenn die Bedingungen gegeben sind, dann geht das Anlegen eines Replica Stubs sogar noch einfacher: Die Quell-Replik wird mittels NotesReplication.Disabled auf "nicht replizierbar" gesetzt. Dann mit CreateReplica eine Replik erzeugen - wegen des Flags wird daraus nur ein Stub. Anschliessend das erforderliche weitere Vorgehen bzgl. Replication Formula und dann NotesReplication.Disabled wieder auf False setzen.

HTH,
Bernhard
Gespeichert
ronka
Senior Mitglied
****
Offline Offline

Beiträge: 343


Was macht der hier denn, muß der überall sein ?


WWW
« Antworten #6 am: 12.10.21 - 21:18:10 »

ich weiss, sehr alten thread.. aber ich muss hier einmal etwas melden.

Ich habe aktuell die aufgabe beim Merge von 4 Server zu einen neuen mit DAOS, genau dieses zu tun, replik stumf anlegen, DAOS enabeln und dann erst replizieren.

Wenn der Replication disabeld ist, bekommt der CreateReplica ein User Defined error, und geht damit nicht. Leider.
Gespeichert

das neueste von Domino 10 auf den AdminCamp in September -> www.AdminCamp.de
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6632


Geht nicht, gibt's (fast) nicht... *g*


WWW
« Antworten #7 am: 13.10.21 - 07:46:00 »

Der Ansatz von Ulrich funktioniert einwandfrei, den setze ich hier auch ein. Nach Aufruf von CreateReplStub kannst Du dann ganz einfach die Replizierformel setzen:
Code:
Set dbTarget = New NotesDatabase( targetServer, targetPath )
Set repl = dbTarget.Replicationinfo
Set replEntry = repl.Getentry("-", "CN=TargetServerName/O=Certifier", True)
replEntry.Formula = replFormula
Call replEntry.Save
Call repl.Save
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
CarstenH
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 445



« Antworten #8 am: 13.10.21 - 10:41:28 »

Wenn man keine Replizierungsformel braucht sondern nur die eigentliche Replikation bis zum Aktivieren des DAOS unterdrücken möchte geht es noch viel einfacher ohne Script und API-Tricks:

1) Alle gewünschten DB's im Adminclient markieren und Replikation deaktivieren.
2) Die DB's im Adminclient auf den Zielserver ziehen und bestätigen.

Dank AdminP sind wenige Minuten später die leeren Repliken angelegt.

Jetzt kann man in Ruhe den DAOS aktivieren und danach die Replikation gleich wieder freigeben, den Rest macht der Replikator.

HTH
Carsten
Gespeichert
ronka
Senior Mitglied
****
Offline Offline

Beiträge: 343


Was macht der hier denn, muß der überall sein ?


WWW
« Antworten #9 am: 13.10.21 - 21:13:51 »

Wenn es doch so einfach wäre...

Server 1 bis 6, die daten haben von sih UND Server 7 bi 15 ( ! ) und aus historische gründen mit einen verzeichnis struktur /alteServername/verzeichnis/unterverzeichnis/Datenbank.nsf liegen nicht an den Stelle wo sie zukünftig liegen sollten.,

Dazu gibtr es notes 7 8 und 9 Servern (wenigstens ehemalige), und mehrere Replieken in unterschiedliche verzeichnisse. Und einige knapp an der 64 GB grenze dran..

Das habe ich schon "kontrolliert" und alle Replieken zusammen gefunden.

Dann muss ein neuen Pfad gemacht werden wo die zukunftige Datenbanke auf den neuen Server liegen sollten..

Und klar Ulrichs lösung funktioniert. Den verwende ich auch, der andere mit Replizierung ausschalten, direkt über mein Posting, darüber war meine Meldung gemeint.. Entschuldigung wenn das nicht klar war.

Neue Server ist Domino 11, und mit DAOS für den Anhänge die sicherlich über all doppelt und dreifach vorhanden sind. Daten werden auch nur per PULL geholt, sonnst könnten die DB's kaputt gehen mit den 64 GB Grenze.
Gespeichert

das neueste von Domino 10 auf den AdminCamp in September -> www.AdminCamp.de
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6632


Geht nicht, gibt's (fast) nicht... *g*


WWW
« Antworten #10 am: 14.10.21 - 15:06:25 »

Dann mache auf jedne Fall ein Create_R10_Databases in die INI des Servers bevor Du die Repliken erstellst. Dann ist wenigstens die Grenze bei 265GB...
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
ronka
Senior Mitglied
****
Offline Offline

Beiträge: 343


Was macht der hier denn, muß der überall sein ?


WWW
« Antworten #11 am: 14.10.21 - 19:40:23 »

Guter hinweis, ich war der FALSCHE meinung das den R11 Server das selber tun würde.. gemacht.

Replizierung voin 2 TB daten dauert dann einen weile.
Gespeichert

das neueste von Domino 10 auf den AdminCamp in September -> www.AdminCamp.de
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6632


Geht nicht, gibt's (fast) nicht... *g*


WWW
« Antworten #12 am: 15.10.21 - 09:03:17 »

durchaus... bezüglich "automatisch": Erinnerst Du Dich an das Debakel beim automatischen Update des ODS von Version 4 auf Version 5 mit Datenverlust, korrupten Datenbanken, etc.? Seither hat sich IBM und jetzt auch HCL nie mehr getraut eine neue ODS OHNE einen entsprechenden INI- Parameter automatisch zu aktivieren...
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
ronka
Senior Mitglied
****
Offline Offline

Beiträge: 343


Was macht der hier denn, muß der überall sein ?


WWW
« Antworten #13 am: 15.10.21 - 13:43:13 »

Ich habe es verdrängt :-)

Jedenfalls läuft es jetzt und müssen sehr viele Datenbanken mittels Pull Repliziert werden zum neuen.

Verbindungsdokumente mit Pull Only erstellt, und von 18 bis 8 laufen lassen. Damit tagsüber das netzwerk nicht so belastet wird.

Mal sehen ob es am Montagmorgen fertig ist.
Gespeichert

das neueste von Domino 10 auf den AdminCamp in September -> www.AdminCamp.de
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: