Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:oracle_quiesce_instance

Die Anmeldung an einer Oracle Datenbank für normale Anwender verhindern / einschränken - quiesce und restrict Status

schon länger, getestet mit 12c

Gelegentlich ergeben sich Situationen in denen sich nichts weiters in der Datenbank tun soll.

Zum Beispiel bein Einspielen von neuen PL/SQL Packages oder ähnlichen Strukturänderungen, die andere User blockieren können.

Läßt sich die DB neu starten, können alle neuen Anmeldungen vorab mit der „restricted“ Option auf User mit der DBA Rolle beschränkt werden.

Soll nur die DB kurz „eingefroren“ werden, kann mit „quiesce“ gearbeitet werden, die Usersession können auf der DB angemeldet bleiben, stören aber nicht zum Beispiel beim Deployment eines neuen PL/SQL Packages.

Nur noch Sessions mit DBA Rechte dürfen aktiv sein - Der QUIESCED Mode der Instance

Eine Datenbank für normale User einfrieren, alle Session verbleiben, können aber keine neues SQL ausführen, alle neue Anmeldungen warten:

ALTER system quiesce restricted;
 
#Status pürfen und warten bis alle SESSION wirklich warten!
 
SELECT inst_id, ACTIVE_STATE FROM GV$INSTANCE
/
 
 
#    NORMAL:     Normal unquiesced state.
#    QUIESCING:  Being quiesced, but SOME non-DBA sessions are still active.
#    QUIESCED:   Quiesced; no non-DBA sessions are active OR allowed.
 
 
#prüfen wer verhindert das die DB IN QUIESCED Mode sich versetzen kann:
# 
 
SELECT bl.sid, USER, osuser, TYPE, program
  FROM v$blocking_quiesce bl
    , v$session se
WHERE bl.sid = se.sid;
 
 
#wieder aufheben
 
ALTER system unquiesce;

Allerdings kann es etwas dauern bis wirklich alle aktiven Sessions „warten“.

siehe auch ⇒ Quiescing a Database 12c

Der „QUIESCED“ Mode wird auch im RAC Cluster unterstützt.


Datenbank beim Start einschränken - der RESTRICT Mode

Nach dem Start der Datenbank mit „STARTUP RESTRICT“ können sich nur User mit DBA rechten (oder dem restict Session recht) anmelden, allerdings kann die Datenbank dazu nicht im Cluster Mode sein!

Engeschränkt starten mit:

STARTUP RESTRICT
 
 
#test
 
SELECT logins FROM v$instance;
 
LOGINS
----------
RESTRICTED
 
#Later allow normal connections
 
ALTER SYSTEM DISABLE RESTRICTED SESSION;

Aber! Nur für Single Instances ! Im Cluster Modus nicht möglich.

Quellen

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
dba/oracle_quiesce_instance.txt · Zuletzt geändert: 2015/10/28 17:55 von Gunther Pippèrr