Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Kadlec am 04.05.07 - 08:28:57

Titel: DB sperren während Systempflege
Beitrag von: Kadlec am 04.05.07 - 08:28:57
Hallo,

gibt es die Möglichkeit einen DB Zugriff während eines Updates zu sperren??

Gruss
Boris
Titel: Re: DB sperren während Systempflege
Beitrag von: Driri am 04.05.07 - 08:33:11
Spontan fällt mir nur ein, die ACL so zu setzen, daß kein Zugriff mehr erlaubt ist. Dann die User mit Zugriff auf die DB kicken und einmal dbcache flush an der Console absetzen.

Aber vielleicht hat einer der Admins noch eine weniger "drastische" Idee  ;)
Titel: Re: DB sperren während Systempflege
Beitrag von: Kadlec am 04.05.07 - 08:40:20
Die ACL wollte ich nicht angreifen.
Auf dem Testserver könnte ich das ja evt. noch mit einem Agenten lösen.
Später auf dem produktiven scheitert dies aber.

Boris
Titel: Re: DB sperren während Systempflege
Beitrag von: MadMetzger am 04.05.07 - 08:52:51
Das mit der ACL kannst du dir evtl mit diesem Tool (http://www-10.lotus.com/ldd/sandbox.nsf/ByCategory/81deffed8f49e561852568d4006c98e4?OpenDocument) erleichtern. Laut beschreiben kann es ACLs sichern und auch wiederherstellen, habe es nur noch nicht selbst ausprobiert.

Dann wäre es vielleicht kein Problem, den Zugriff mal kurz per ACL zu sperren und anschließend wieder freizugeben.

Es gibt, soweit ich mich recht erinnere auch einen notes.ini-Parameter, der den Zugriff auf den ganzen Server verbieten kann. Aber das ist dir wahrscheinlich zu weit gefasst.
Titel: Re: DB sperren während Systempflege
Beitrag von: DocNotes am 04.05.07 - 08:55:36
Mir würde spontan das Datenbank Script in den Datenbankressourcen einfallen. Dort einfach ein

call source.close

ausführen.

Habs aber nicht getestet!
Titel: Re: DB sperren während Systempflege
Beitrag von: Driri am 04.05.07 - 09:00:19
Das hat mich doch interessiert und ich hab mal schnell in die Admin-Hilfe geschaut. Demnach gibt es die Möglichkeit, eine Datenbank auf "Außer Betrieb" zu setzen. User, die die DB dann öffnen wollen, werden abgewiesen. Auch hier muß man allerdings die User kicken, die zum Zeitpunkt der Außerbetriebnahme die DB bereits geöffnet haben.

Das ganze geht im Admin-Client unter Dateien. Dort dann per rechte Maustaste das Menü öffnen und unter "Cluster" die Option "Außer Betrieb" setzen.

Der Artikel in der Admin-Hilfe heißt "Benutzern den Zugriff auf eine Datenbank verweigern".
Titel: Re: DB sperren während Systempflege
Beitrag von: MadMetzger am 04.05.07 - 09:11:11
Das ist ja eine ganz einfache Variante, habe ich noch nicht gekannt. Klingt aber gut...
Titel: Re: DB sperren während Systempflege
Beitrag von: Glombi am 04.05.07 - 09:13:18
... wenn die DB in einem Cluster ist!

Andreas
Titel: Re: DB sperren während Systempflege
Beitrag von: MadMetzger am 04.05.07 - 09:21:38
Tatsächlich, habe das gerade mal bei uns ausprobiert... Aber das steht da nicht so explizit in der Hilfe drin, dass es nur im Cluster geht. Dafür ist es aber auch logischerweise über das "Clusterwerkzeug" erreichbar.

Dann bleiben wohl nur ACL oder Server_Restricted (So heißt der Parameter), außer die Datenbank ist in einem Cluster.

EDIT: Infos zu dem Parameter findest du hier (http://domino-240.drcc.com/ref/notesini.nsf/all/9F9A3B9D38D2F5E5C125668A0042234B).
Titel: Re: DB sperren während Systempflege
Beitrag von: MaVo am 04.05.07 - 09:40:43
Da war MadMetzger schneller  :)

Die einzige Möglichkeit, die ich da kenne wäre diese...

im Admin-Client die Personen, die die DB Benutzer "droppen"

und anschließend in der Serverconsole folgenden Befehl eingeben:

set conf server_restricted=1

Somit werden alle erneuten Anmeldungen (leider für alle DBs) am Server verhindert.

Anschließend in der Serverconsole

set conf server_restricted=0


eingeben.

Gibt es noch eine andere alternative?
Titel: Re: DB sperren während Systempflege
Beitrag von: Glombi am 04.05.07 - 09:44:28
Ich mache es bei DBs, die nicht im Cluster sind, so:

1. Erstelle leere Kopie der DB mit ACL
2. Setze alle Gruppen - ausser Admin + Server - auf Kein Zugriff.
3. Führe Update durch
4. Kopiere die ACL der DB aus Schritt 1 per Admin Client in die Zwischenablage und füge diese in die DB ein

Was fällt mir sonst dazu ein?
- geschützter Dirlink
- oder  geschützter DB Link

Andreas
Titel: Re: DB sperren während Systempflege
Beitrag von: nd_adm am 04.05.07 - 09:50:14
Nach so einer Möglichkeit habe ich schon öfter gesucht ???...vielen Dank an das Forum...wieder was gelernt.
Titel: Re: DB sperren während Systempflege
Beitrag von: Driri am 04.05.07 - 09:54:11
Find ich aber klasse, daß das mit dem Clusterzwang für die Funktion nicht in der Hilfe steht. Ist zwar eigentlich zu erwarten, weils über den Menüeintrag "Cluster" aufgerufen wird, aber so ahnungslose Aushilfs-Admins wie mich erwischt es damit dann natürlich  :-\
Titel: Re: DB sperren während Systempflege
Beitrag von: Kadlec am 04.05.07 - 10:11:08
Erstmal Danke für die Antworten..aber so wird das nichts.
Alles was mit Admin zu tun hat scheidet aus.
ACL ändern..., auf dem Testserver kein Problem.
Produktiv wird das über ein Tool gemacht===>
Antrag stellen (kein Zugriff) ==> ca. 2-4 Std. später alles klar.
Das gleiche dann wieder zurück.

Anderer Ansatz:
Eigentlich geht es nur um eins, zwei Aktionen die gesperrt werden müssen, u.a. ein db.Search.

Ist es möglich mit dem Import ein Flag zu setzen (Profildoc, oder ein Keydoc)
und dieses beim start der entsprechenden Aktionen zu checken und entsprechend den Dienst verweigern??

Boris
Titel: Re: DB sperren während Systempflege
Beitrag von: ata am 04.05.07 - 14:58:05
Zitat
Eigentlich geht es nur um eins, zwei Aktionen die gesperrt werden müssen, u.a. ein db.Search.

Was verstehst du unter Aktionen? - Maskenaktionen? - Ansichtsaktionen? - Agenten?
Kannst du das eigentliche genauer beschreiben?

Toni
Titel: Re: DB sperren während Systempflege
Beitrag von: Kadlec am 04.05.07 - 17:05:35
Sorry für die präzise Auskunft.
Es sind Ansichtsaktionen die dann mit @Command([ToolsRunMacro]) einen Agenten starten.

Boris
Titel: Re: DB sperren während Systempflege
Beitrag von: MadMetzger am 05.05.07 - 10:47:25
Klar kann man das mit einem Profildokument oder per SetupDokument machen, nur darf man dann zur Wartung nicht vergessen dieses Flag zu setzen.