Diese Frage wurde von diesem Artikel inspiriert . Es gibt wahrscheinlich viele Oracle-Leute, die diese Zahlen gerade nachschlagen. :)
Nick Chammas
Es sieht so aus, als ob der Link von meinem vorherigen Kommentar jetzt unterbrochen ist. Ich glaube, diese Seite wurde hierher verschoben: infoworld.com/article/2618409/…
Nick Chammas
Antworten:
16
Aktuelle SCN
Oracle 9i:
SELECT dbms_flashback.get_system_change_number as current_scn
FROM DUAL;
Oracle 10g und höher:
SELECT current_scn
FROM V$DATABASE;
SCN-Grenzen
SCN hat ein hartes Limit, das von seinem Format vorgegeben wird, und ein weiches Limit, das von Oracle künstlich vorgegeben wird, wie hier beschrieben . Ich habe die relevanten Teile unten zitiert (Hervorhebung hinzugefügt).
Harte Grenze
Die Architekten der Oracle-Flaggschiff-Datenbankanwendung müssen wohl gewusst haben, dass der SCN eine massive Ganzzahl sein muss. Dies ist eine 48-Bit-Zahl ( 281.474.976.710.656 ). Es würde eine Ewigkeit dauern, bis eine Oracle-Datenbank diese Anzahl von Transaktionen überschreitet und Probleme verursacht - so könnte man meinen.
Soft Limit
Das weiche Limit ergibt sich aus einer sehr einfachen Berechnung, die bis zu einem Zeitpunkt vor 24 Jahren verankert war: Nehmen Sie die Anzahl der Sekunden seit dem 01.01.1988 und multiplizieren Sie diese Zahl mit 16.384. Wenn der aktuelle SCN-Wert darunter liegt, ist alles in Ordnung und die Verarbeitung wird normal fortgesetzt. Vereinfacht ausgedrückt geht die Berechnung davon aus, dass eine Datenbank, die seit dem 01.01.1988 ständig läuft und 16.384 Transaktionen pro Sekunde verarbeitet, in der Realität nicht existieren kann.
SCN Limit Check
Dieses Skript (Oracle 10g und höher) prüft, wie viele der harten und weichen Limits Sie ausgeschöpft haben. Vielen Dank an Rob für den Aufruf des Softlimits.
WITH limits AS(SELECT
current_scn
--, dbms_flashback.get_system_change_number as current_scn -- Oracle 9i,(SYSDATE - TO_DATE('1988-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS'))*24*60*60*16384AS SCN_soft_limit
,281474976710656AS SCN_hard_limit
FROM V$DATABASE)SELECT
current_scn
, current_scn/scn_soft_limit*100AS pct_soft_limit_exhausted
, scn_soft_limit
, current_scn/scn_hard_limit*100AS pct_hard_limit_exhausted
, scn_hard_limit
FROM limits;
Hier ist eine Abfrage, mit der ich meine Datenbanken in Bezug auf das SCN-Fehlerproblem auf ihre Richtigkeit überprüft habe:
# Show the amount of SCN keyspace we have used so far on this database#Bydefault the SCN max on a 10g/11g
# instance is a 48-bit integer (281,474,976,710,656)SELECT NAME,(current_scn/281474976710656)*100as PCT_OF_SCN_KEYSPACE_USED,
ROUND(SYSDATE-CREATED)as DAYS_SINCE_DB_CREATION,
ROUND(1/(current_scn/281474976710656)*(SYSDATE-CREATED))AS EST_DAYS_BEFORE_SCN_EXHAUSTED,
ROUND(1/(current_scn/281474976710656)*(SYSDATE-CREATED)/365)AS EST_YEARS_BEFORE_SCN_EXHAUSTED
FROM v$database;
Die meisten meiner Datenbanken, die DB-Links verwenden, sind zu 3,5% erschöpft und können problemlos über 50 Jahre lang mit der aktuellen Rate fortgesetzt werden. Dies bedeutet nicht, dass ich vor jemandem sicher bin, der den SCN-Fehler kitzelt, aber zumindest haben wir keine Datenbank gefunden, die weit über den anderen oder nahe am Limit liegt.
281.474.976.710.656 ist die harte Grenze. Sie möchten wissen, wie hoch das Soft-Limit ist, da dies der Wert ist, auf den Sie sich als Erstes stoßen würden. Die weiche Grenze wird (grob) aus der Anzahl der Sekunden berechnet, die seit dem 1. Januar 1988 x 16384 vergangen sind.
Ich weiß nicht, wie die alten Antworten die weiche Grenze (die in dem von Nick verlinkten Artikel erwähnt wird) verfehlt haben - daher ist es eine gute Idee, das fehlende Detail hinzuzufügen.
Antworten:
Aktuelle SCN
Oracle 9i:
Oracle 10g und höher:
SCN-Grenzen
SCN hat ein hartes Limit, das von seinem Format vorgegeben wird, und ein weiches Limit, das von Oracle künstlich vorgegeben wird, wie hier beschrieben . Ich habe die relevanten Teile unten zitiert (Hervorhebung hinzugefügt).
Harte Grenze
Soft Limit
SCN Limit Check
Dieses Skript (Oracle 10g und höher) prüft, wie viele der harten und weichen Limits Sie ausgeschöpft haben. Vielen Dank an Rob für den Aufruf des Softlimits.
quelle
Hier ist eine Abfrage, mit der ich meine Datenbanken in Bezug auf das SCN-Fehlerproblem auf ihre Richtigkeit überprüft habe:
Die meisten meiner Datenbanken, die DB-Links verwenden, sind zu 3,5% erschöpft und können problemlos über 50 Jahre lang mit der aktuellen Rate fortgesetzt werden. Dies bedeutet nicht, dass ich vor jemandem sicher bin, der den SCN-Fehler kitzelt, aber zumindest haben wir keine Datenbank gefunden, die weit über den anderen oder nahe am Limit liegt.
quelle
281.474.976.710.656 ist die harte Grenze. Sie möchten wissen, wie hoch das Soft-Limit ist, da dies der Wert ist, auf den Sie sich als Erstes stoßen würden. Die weiche Grenze wird (grob) aus der Anzahl der Sekunden berechnet, die seit dem 1. Januar 1988 x 16384 vergangen sind.
quelle