Table (Tablespace) für bestimmte Anwendungen sperren?
- Dieses Thema hat 2 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 13 Jahre, 3 Monaten von
Anonym.
-
AuthorPosts
-
20. Mai 2010 um 12:44 Uhr #4083
AnonymInaktivHallo zusammen,
ich grübele bereits seit einiger Zeit über eine Fragestellung, für die ich leider keine zufriedenstellende Lösung habe.
Das ganze findet in einem Migrationsprojekt statt. Daten müssen von einer Tabelle
DB02.PDXXXTÂ in eine Tabelle DB01.PDXXXT transferiert (kopiert) werden. Die Daten in DB01.PDXXXT
Dafür wollen wir LOAD-Utilities RESUMES(YES) mit CURSOR statements nutzen. Vorteil: Es geht schnell und auch DB2-Lokations-übergreifend funktioniert das prima.
Außerdem gibt es noch die Tabellen DB03.PDXXXT bis DB26.PDXXXT. Diese Tabellen sind bei der Migration nicht betroffen.
Migrationsschritte:
1. Sperren der Tablespaces aller DB01.PDxxxT und DB02.PDxxxT (wir haben 1:1 Table-Tablespace Beziehungen) ==> START TABLESPACE ReadOnly
2. Load Utilities ausführen
jetzt kommts!
3. Durch neu zu schreibende Programme müssen die Daten in DB01.PDxxxT jetzt per UPDATE + DELETE bereinigt werden. In dieser Zeit darf nur das neue Migrationsprogramm UPDATE /DELETE /INSERT ausführen.
Alle anderen Anwendungen sollen ReadOnly-Zugriff oder gar keinen Zugriff bekommen.Über den Tablespace-Status RO / RW läßt sich das ja nicht anwendungsspezifisch regeln. :-[
Welche Möglichkeit ist hier angemessen, damit nur das Migrationsprogramm Zugriff hat?
GRANTS / REVOKES ???
Welche Empfehlung / Tips habt ihr in einer solchen Situation?
Besten Dank im voraus für euer Mitdenken.
Gruß Klaus
22. Mai 2010 um 19:44 Uhr #4239
AnonymInaktivHallo Klaus,
so ganz ad-hoc fällt mir [highlight]RLF[/highlight] ein: Unter Umständen könntest Du alle anderen Prozesse/Pläne/User aussperren, aber die gewünschten/erlaubten durchlassen. 😎
Die in dieser Migrationsphase nicht autorisierten User/Rollen einfach zu REVOKE’n ist aber sicherlich besser, sofern sich eine scharfe Grenze ziehen läßt. 🙂
Pläne oder Packages könnte man schlicht DROPpen?!
DB2 in den MAINT Modus versetzen und nur der SYSADM führt die gewünschten Prozesse aus?! (Zugegeben nicht sehr praktikabel! :-[)
Gruß
GernotPS: V8 oder V9?
4. Juni 2010 um 13:25 Uhr #4354
AnonymInaktivganz spontan würde ich die Tabelle nach dem Laden RENAMEn und das Migrationsprogramm mit dem geänderten Tabellen-Namen laufen lassen. Nachher Tabelle wieder zurückrenamen, REBIND auf die ganzen Packages und gut ist.
-
AuthorPosts
You must be logged in to reply to this topic.