ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ scn oracle
/ΠΏΡΠΈΠ²Π΅Ρ/ΠΌΠΈΡ/etc
ΠΠ΅ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΌΠ΅ΡΠΊΠΈ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
Π²ΡΠΎΡΠ½ΠΈΠΊ, 20 Π΄Π΅ΠΊΠ°Π±ΡΡ 2016 Π³.
ΠΠ²Π° ΠΊΠ΅ΠΉΡΠ° Π΄Π»Ρ ora_rowscn Π² Oracle 11g
Π Π‘Π£ΠΠ Oracle ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (SCN, system change number) Π΅ΡΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° ΠΈΠ· ΠΠ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, SCN ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΡΠΎΠΊ ΡΠ°Π±Π»ΠΈΡΡ, ΡΡΠΎ Π½Π΅ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ: Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌ Π·Π°ΠΏΡΠΎΡ:
ΠΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ora_rowscn Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΡΠΎΠΊ. ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ?
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ alter table Π΄Π°Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ. ΠΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ:
Π’Π΅ΠΏΠ΅ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ SCN Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ. ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΡΠΎ:
Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ SCN Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ 6 Π±Π°ΠΉΡ Π½Π° ΡΡΡΠΎΠΊΡ.
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π² ΡΠ΅ΠΆΠΈΠΌ rowdependencies Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΅Π΅ Π΄Π°Π½Π½ΡΡ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ Π±Π΅Π· ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ dbms_redefinition (ΡΠΌ., Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°ΡΡΡ Online Table Redefinition (DBMS_REDEFINITION) Enhancements in Oracle Database 11g Release 1).
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ΅Π²Π΄ΠΎΡΡΠΎΠ»Π±Π΅Ρ ora_rowscn ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½.
ΠΠ΅ΠΉΡ 1. ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ locations Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΠ° name ΡΡΡΠΎΠΊΠΈ Ρ id = 8 :
ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡ («Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³» ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π½Π° «Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³Ρ»), ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ name = :loc_name Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π½Π°ΠΌ, ΡΡΠΎ ΡΡΡΠΎΠΊΠ° ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π½Π½ΠΎΠ΅ ΡΠ°Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ name Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π² ΠΠ Π·Π° ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ Π½Π° Π΅Π³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 0 ΡΡΡΠΎΠΊ, ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΎ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π§Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ora_rowscn Π² ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ? ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ora_rowscn ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π΅ΡΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
ΠΡΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 0 ΡΡΡΠΎΠΊ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΡΡΠΎΠΊΠ° Π±ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ΅Π°Π½ΡΠ΅, ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠ΅ΠΉΡ 2. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π·Π° ΠΏΠ΅ΡΠΈΠΎΠ΄
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ 0 ΡΡΡΠΎΠΊ, Π° ΠΏΡΠΈ Π²ΡΠΎΡΠΎΠΌ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ( l_prev_when ) ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ( l_curr_when ).
ΠΡΡΡΠ΄Π°, ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ:
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠ΄Π°Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π»:
Oracle RAC. ΠΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ / Π§Π°ΡΡΡ 2
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ ΠΏΡΠΎ Real Application Cluster (RAC). ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅.
Π‘ΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΏΠΎΠ΄Π½ΡΠ»ΡΡ ΠΈ Π²ΡΠ΅ Π·Π°ΠΊΡΡΡΠΈΠ»ΠΎΡΡ.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ·Π»ΠΎΠ². Cache-fusion.
ΠΠ½ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΠ, ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠΎΠ². Π₯Π»ΡΠ½ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡβ¦ Π²ΠΎΡ ΠΎΠ½ΠΈ, ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠ°ΠΊ ΠΆΠ΄Π°Π»ΠΈ. =)
Π‘Π°ΠΌΡΠΌ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ Π»ΡΠ±ΠΎΠΉ ΠΠ ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄. ΠΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΡΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π΄ΠΈΡΠΊΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ. Π RAC Π²ΡΠ΅ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ single-instance ΠΠ: Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° Π² RAM ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ SGA (System Global Area), Π²Π½ΡΡΡΠΈ Π½Π΅Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π±ΡΡΠ΅ΡΠ½ΡΠΉ ΠΊΡΡ (database buffer cache). ΠΡΠ΅ Π±Π»ΠΎΠΊΠΈ, Π½Π΅ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠ΅ Ρ Π΄ΠΈΡΠΊΠ°, ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΡΠΎΡ Π±ΡΡΠ΅Ρ, ΠΈ Ρ
ΡΠ°Π½ΡΡΡΡ ΡΠ°ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ»ΡΡΠ΅. ΠΠΎ ΠΊΡΡ Π½Π΅ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ΅Π½, ΠΏΠΎΡΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ΅Π½ΠΈΡΡ Π²Π°ΠΆΠ½ΠΎΡΡΡ Ρ
ΡΠ°Π½ΠΈΠΌΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ TCA (Touch Count Algorithm), ΡΡΠΈΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ Π±Π»ΠΎΠΊΠ°ΠΌ. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ Π² ΠΊΡΡ, Π±Π»ΠΎΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π΅Π³ΠΎ cold-end. Π§Π΅ΠΌ ΡΠ°ΡΠ΅ ΠΊ Π±Π»ΠΎΠΊΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ, ΡΠ΅ΠΌ Π±Π»ΠΈΠΆΠ΅ ΠΎΠ½ ΠΊ hot-end. ΠΡΠ»ΠΈ ΠΆΠ΅ Π±Π»ΠΎΠΊ Β«Π·Π°Π»Π΅ΠΆΠ°Π»ΡΡΒ», ΠΎΠ½ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΡΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² ΠΊΡΡΠ΅ ΠΈ ΡΠΈΡΠΊΡΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ. ΠΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ Π±Π»ΠΎΠΊΠΎΠ² Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
. ΠΡΡ ΡΠ·Π»Π° β ΠΊΡΠ°ΠΉΠ½Π΅ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ·Π»ΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΊΡΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»ΠΈΡΡΡΡ (ΠΊΠ°ΠΊ Π·Π°Π²Π΅ΡΠ°Π» ΡΠ°ΠΌΠΈ-Π·Π½Π°Π΅ΡΠ΅-ΠΊΡΠΎ). ΠΠ»ΠΎΠΊΠΈ, Ρ
ΡΠ°Π½ΠΈΠΌΡΠ΅ Π² ΠΊΡΡΠ΅ ΡΠ·Π»Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
, Ρ.Π΅. Π΄Π»Ρ Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠΌΠ΅ΡΠΊΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ½, ΠΏΠΎΡΠΊΡΠΈΠΏΠ΅Π² Π·ΡΠ±Π°ΠΌΠΈ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ, Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»ΠΈΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΡΡΠ° Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Cache-fusion (ΡΠΈΠ½ΡΠ΅Π· ΠΊΡΡΠ°). CRS Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ·Π»Π΅ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ LMSn, ΠΎΠ±ΡΠ΅Π΅ ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ° β GCS (Global Cache Service). ΠΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΊΠΎΠΏΠΈΡΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ Π±Π»ΠΎΠΊΠΈ (Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅) ΠΈΠ· Π±ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ° ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π° Π½ΠΈΠΌΠΈ ΠΎΠ±ΡΠ°ΡΠΈΠ»ΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ, ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΎΡΠΊΠ°Ρ Π½Π΅ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠ° ΠΎΠ΄Π½ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎ 36 ΡΡΡΠΊ (GCS_SERVER_PROCESSES). ΠΠ±ΡΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ LMSn Π½Π° Π΄Π²Π° ΡΠ΄ΡΠ°, ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΡ ΠΎΠ΄ΡΡΡ ΡΠ΅ΡΡΡΡΡ. ΠΠ° ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡ GES (Global Enqueue Service), ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ·Π»Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ LMON ΠΈ LMD. LMON ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ Π²ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π° Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΊ ΡΠΎΡΠ΅Π΄Π½ΠΈΠΌ ΡΠ·Π»Π°ΠΌ, ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ GCS. ΠΠΎΠ³Π΄Π° ΡΠ·Π΅Π» Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ, ΠΎΠ½ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ². LMD ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΡΠ·Π»Π°, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠΈΠΌ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΡΠΌ, ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ GCS ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² LMSn. Π ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ LMD ΡΠ°ΠΊΠΆΠ΅ Π²Ρ ΠΎΠ΄ΠΈΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·Π»ΠΎΠ² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
Π’Π°Π±Π»ΠΈΡΠ° GRD ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ ΡΠ²ΠΎΡ ΡΠ°ΡΡΡ GRD. Π§Π°ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ GRD ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ β ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ: ΡΠ°Π±Π»ΠΈΡΡ, ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈ.Ρ.ΠΏ. ΠΠ½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ (ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ) ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ.
ΠΠΎΠ³Π΄Π° ΡΠ·Π΅Π» ΠΏΡΠΎΡΠ΅Π» Π±Π»ΠΎΠΊ Π΄Π°Π½Π½ΡΡ
Ρ Π΄ΠΈΡΠΊΠ°, ΠΎΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ master-ΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΎΡΠΌΠ΅ΡΠΊΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΡ GRD. ΠΠ»ΠΎΠΊ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ, Ρ.ΠΊ. ΡΠ·Π΅Π» ΠΏΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π³ΠΎ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡΠΊΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠΎΡ Π±Π»ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ·Π»Ρ, ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ GCS ΠΏΠΎΠΌΠ΅ΡΠΈΡ ΡΡΠΎΡ Π±Π»ΠΎΠΊ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ (Β«ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Β» Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°) ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π°ΡΡΠ΅Π±ΠΎΠ²Π°Π²ΡΠ΅ΠΌΡ ΡΠ·Π»Ρ.
DBA | location | mode | role | SCN | PI/XI |
500 | ΡΠ·Π΅Π» β3 | shared | local | 9996 | 0 |
ΠΠ΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π° Π΄ΠΈΡΠΊ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΡΠ΅Π³Π΄Π° ΠΊΠΎΠΏΠΈΡ Π±Π»ΠΎΠΊΠ° Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π° ΡΠ·Π»Π΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΡΠ°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΠΎΠΊΠ° Π΅ΡΠ΅ Π½Π΅Ρ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΊΡΡΠ΅, ΡΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅ master ΠΏΠΎΠΏΡΠΎΡΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ·Π΅Π» ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π±Π»ΠΎΠΊ Ρ Π΄ΠΈΡΠΊΠ° ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΈΠΌ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ·Π»Π°ΠΌΠΈ (ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΠΈ).
Taking fire, need assistance! Workload distribution.
ΠΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Cache-fusion, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΠΌΠΎΠΌΡ (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ) ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΠ·Π»ΠΎΠ². ΠΠΎΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ workload distribution ΠΈΠ»ΠΈ resource remastering (ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ²):
ΠΡΠ»ΠΈ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ΡΠ΅Π· ΡΠ·Π΅Π» β1 1500 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΠ΅ΡΡΡΡΡ A, ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² ΡΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ 100 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠ΅ΡΡΡΡΡ A ΡΠ΅ΡΠ΅Π· ΡΠ·Π΅Π» β2, ΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ·Π΅Π» ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΈ ΡΠ°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ°ΡΡ Ρ Π΄ΠΈΡΠΊΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ·Π΅Π» β1 Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ master Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ ΡΠ΅ΡΡΡΡΡ A, ΠΈ GRD Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ·Π»Π° β1. ΠΡΠ»ΠΈ ΡΠ·Π»Ρ β2 ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΡΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ GCS ΠΈ GRD ΡΠ·Π»Π° β1, Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠ΅ΡΠ΅Π· interconnect.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΠ·Π»Π° β2, ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ β2 ΠΈ β1 ΡΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΡΡΡΡΡ ΡΠ²ΠΎΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅ΡΠ΅Π· interconnect, ΠΈ master-ΠΎΠΌ ΡΠ΅ΡΡΡΡΠ° A ΡΡΠ°Π½Π΅Ρ ΡΠ·Π΅Π» β2, Ρ.ΠΊ. ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π΄ΠΈΡΠΊΡ.
ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ (affinity) ΡΠ΅ΡΡΡΡΠΎΠ², Ρ.Π΅. ΡΠ΅ΡΡΡΡΡ Π±ΡΠ΄ΡΡ Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ ΡΠΎΠΌΡ ΡΠ·Π»Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΡ
Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΡΠ΅Ρ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ·Π»ΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ΅ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π±ΡΠ»ΠΈ ΡΠ°ΠΌ, Π³Π΄Π΅ ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. ΠΠΎΡ, ΠΊΡΠ°ΡΠΊΠΎ, ΠΈ Π²Π΅ΡΡ workload distribution.
ΠΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (remastering) ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ·Π΅Π» Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ. Oracle ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΡ ΠΏΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΌΡ Β«Π»Π΅Π½ΠΈΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Β» (lazy remastering), Ρ.ΠΊ. Oracle ΠΏΠΎΡΡΠΈ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ·Π΅Π» ΡΠΏΠ°Π», ΡΠΎ Π²ΡΠ΅, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠΌΠ΅Ρ Oracle β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΈΠ½Π΅Ρ ΡΠ΅ΡΡΡΡΡ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π²ΡΠΈΠ΅ ΠΎΠ±Π²Π°Π»ΠΈΠ²ΡΠ΅ΠΌΡΡΡ ΡΠ·Π»Ρ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΡΡΠ°Π²ΡΠΈΡ
ΡΡ (ΠΌΠ΅Π½Π΅Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ). ΠΠΎΡΠ»Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ GCS ΠΈ GES Π·Π°Π½ΠΎΠ²ΠΎ (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ) ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΡΠ΅ΡΡΡΡΡ (workload distribution) ΠΏΠΎ ΡΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Ρ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ·Π»Π°: ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°Π²Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΎΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ
ΡΠ·Π»ΠΎΠ² ΠΈ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ Π²Π½ΠΎΠ²Ρ ΠΏΡΠΈΠ±ΡΠ²ΡΠ΅ΠΌΡ. ΠΠΎΡΠΎΠΌ ΠΎΠΏΡΡΡ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ workload distribution.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΡΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΠ·Π»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΡΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ 10 ΠΌΠΈΠ½ΡΡ.
ΠΠΎΡ ΠΏΡΠ»Ρ ΠΏΡΠΎΠ»Π΅ΡΠ΅Π»Π°, ΠΈβ¦ Π°Π³Π°? Recovery.
ΠΠΎ ΠΏΠΎΠΊΠ° Π²ΡΠ΅ ΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ, Π½Π΅ΡΠ΅ΡΠΏΠ΅Π»ΠΈΠ²ΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π΅ΡΡΡ ΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ.
ΠΠΎΠΊΠ° ΡΠ·Π»Ρ ΡΠΏΠ°ΡΠ°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°β¦ Failover.
Virtual IP (VIP) β Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π°Π΄ΡΠ΅Ρ, Π½Π°Π·Π½Π°ΡΠ°Π΅ΠΌΡΠΉ ΡΠ·Π»Ρ Π½Π° Π²Π½Π΅ΡΠ½Π΅ΠΌ ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ CRS ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌ VIP Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·Π΅Π». Listener (ΠΏΡΠΎΡΠ΅ΡΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ) Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ·Π»Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ VIP. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ·Π΅Π» ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ, Π΅Π³ΠΎ VIP ΠΏΠΎΠ΄Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ Π½Π° ΡΠ΅Π±Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·Π΅Π» Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Ρ ΡΠ²ΠΎΠΈ ΠΈ Π·Π°ΠΏΡΠΎΡΡ ΡΠΏΠ°Π²ΡΠ΅Π³ΠΎ ΡΠ·Π»Π°.
ΠΡΠ»ΠΈ ΡΠ·Π΅Π» Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈ Π²ΡΠΉΠ΄Π΅Ρ Π² online, CRS ΠΎΠΏΠΎΠ·Π½Π°Π΅Ρ ΡΡΠΎ ΠΈ ΠΏΠΎΠΏΡΠΎΡΠΈΡ ΡΠ±ΡΠΎΡΠΈΡΡ Π² offline Π½Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ·Π»Π΅ ΠΈ Π²Π΅ΡΠ½Π΅Ρ VIP Π°Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΡ. VIP ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ CRS, ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π±ΡΠΎΡΠΈΡΡΡ Π΅ΡΠ»ΠΈ Π²ΡΠΉΠ΄Π΅Ρ ΠΈΠ· ΡΡΡΠΎΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΠ.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ failover ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΠΎΡΡ select, Π²ΠΌΠ΅ΡΡΠ΅ ΠΈ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΊΡΡΡΠΎΡΠ°ΠΌΠΈ (Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΌΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ). Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡΡΡ (PL/SQL, temp tables, insert, update, delete), ΠΈΡ Π²ΡΠ΅Π³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ.
Π’ΡΠ΄Π° Π½Π΅ Ρ ΠΎΠ΄ΠΈ, ΡΡΠ΄Π° Ρ ΠΎΠ΄ΠΈβ¦ Load-balancing.
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π»ΡΠ±ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΎΡΠ½ΠΎΡΡΡΡΡΡΡ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² (Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Β«ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉΒ»), Oracle ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π² AWR (Automatic Workload Repository). ΠΠ½Π° Ρ ΡΠ°Π½ΠΈΡΡΡ Π² tablespace SYSAUX. Π‘Π±ΠΎΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 60 ΠΌΠΈΠ½ΡΡ (default): I/O waits, wait events, CPU used per session, I/O rates on datafiles (ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅).
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² Load-balancing (ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ) ΠΏΠΎ ΡΠ·Π»Π°ΠΌ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎ Π½Π°Π±ΠΎΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π²: ΠΏΠΎ ΡΠΈΡΠ»Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊ ΡΠ·Π»Ρ, ΠΏΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (CPU), ΠΏΠΎ ΡΡΠ°ΡΠΈΠΊΡ. ΠΠ°Π»Ρ ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ load-balance ΠΏΠΎ ΡΡΠ΅Π΄Π½Π΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΡΠ·Π»Π°Ρ , Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ Π½Π° ΡΠ·Π»Π°Ρ , Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠ°Π²ΡΠΈΠΌΠΈΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌ.
Π Client load-balancing Π±ΡΠ»ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅. ΠΠ½ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ ΡΠ·Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠ»Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΆΠ΅ Server-side load-balancing ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ PMON (process monitor) ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ·Π»ΠΎΠ² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. Π§Π°ΡΡΠΎΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠ»Π΅Π±Π°ΡΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π΅ ΠΎΡ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ 1 ΠΌΠΈΠ½ΡΡΡ Π΄ΠΎ 10 ΠΌΠΈΠ½ΡΡ. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Listener Π½Π° ΡΠ·Π»Π΅, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ, Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π΅Π³ΠΎ Π½Π° Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΡΠ·Π΅Π».
ΠΡΠ»ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ connection pool, Oracle ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΡΠΈΠ°Π½Ρ Runtime Connection Load Balancing (RCLB). ΠΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΡΠ΅Π΄ΡΠ³Π°Π΄Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ· ΡΠ·Π»ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½Π΅Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½, ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ ΡΡΠ΄Π°, Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΉ (events) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π½Π° ΡΠ·Π»Π°Ρ . Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΆΠ΅ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΡΠ΄Π° ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ, ΠΎΠΏΠΈΡΠ°ΡΡΡ Π½Π° ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅. ΠΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ONS (Oracle Notification Service). RCLB ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ (feedback) ΠΎΡ ΡΠ·Π»ΠΎΠ² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΠΈ connection pool Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ, ΠΎΠΏΠΈΡΠ°ΡΡΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠ΅Π΅ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ. ΠΡΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ (ΡΡΠ΅Π΄Π½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ·Π»Π°), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ RAC, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» ΡΡΡΠΎΠΈΡ ΡΠ°ΠΌ Π² AWR. ΠΠ° ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ required load advisory ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ AQ (advanced querying), ΠΎΡΠΊΡΠ΄Π° Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ONS ΠΊΠ»ΠΈΠ΅Π½ΡΡ.
ΠΡΠΎΡΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Oracle
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Oracle: Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ Oracle ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ SQL, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Oracle ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π»ΠΈΠ±ΠΎ Π² ΡΠΎΡΠΌΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² SQL, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ SQL (ΠΈΠ»ΠΈ PL/SQL), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡ, Π²ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅.
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΡΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΡΠ°Π±ΠΎΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Oracle, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² SQL. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΡΠ°ΡΡΠΎΡΠ° SQL ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. Π€ΠΈΠΊΡΠ°ΡΠΈΡ (commiting) ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π°ΠΊΡΠ΅ΠΏΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²Π°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° ΠΎΡΠΊΠ°Ρ (roll back) β ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡ . ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π²ΡΠ΅ ΠΏΡΠΎΡΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠ°Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π΅, ΡΠΌΠΎΠ³ΡΡ Π²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²Π°ΡΠΈΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ.
ΠΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ (ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΈΠ·-Π·Π° ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΠΈΡΠ°Π½ΠΈΡ), ΡΠΎ ΠΎΠ½Π° Π²ΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Π°. Oracle ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ SQL, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ). ΠΠ΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ β Ρ.Π΅. ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Β«Π²ΡΠ΅ ΠΈΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎΒ».
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΡΡΠΎΠΊΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎ, ΠΊΠ°ΠΊ Oracle ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ.
Π€ΠΈΠΊΡΠ°ΡΠΈΡ ΠΈ ΠΎΡΠΊΠ°Ρ
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°, ΠΊΠ°ΡΠ°ΡΡΠΈΡ ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ: ΡΠΈΠΊΡΠ°ΡΠΈΠΉ (commiting) ΠΈ ΠΎΡΠΊΠ°Ρ (rolling back) ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠΈΠΆΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠ±ΡΡΡΠ½ΡΡΡΡΡ ΠΎΠ±Π° ΡΠ΅ΡΠΌΠΈΠ½Π°.
Π€ΠΈΠΊΡΠ°ΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° COMMIT, Oracle Π΄Π΅Π»Π°Π΅Ρ Π²ΡΠ΅ ΠΈΠΌΠ·Π΅Π΅Π΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ Π²ΡΠ΅ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ SQL, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ Oracle Π·Π°ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ, ΠΈΠ· Π±ΡΡΠ΅ΡΠΎΠ² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² SGA Π² ΡΠ°ΠΉΠ»Ρ Π΄Π°Π½Π½ΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΠΏΡΡΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π»ΠΈΠ±ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π΅ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠΎΠ³Π΄Π° Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
ΠΡΠΊΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ROLLBACK. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΆΡΡΠ½Π°Π» ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΎΡΠΌΠ΅Π½Ρ (undo) ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΡΡΠ°ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈΠ±ΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ, Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΡΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΌΠ°ΡΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅ Π²Π½ΡΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΌΡ ΡΠΎΡΠΊΠΎΠΉ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ (savepoint). Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ² ΠΎΡΠΊΠ°ΡΠ°, ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅:
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΎΡΠΊΠ°ΡΠ°, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΡΠ΅Π³Π΄Π° ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅.
Π¦Π΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ Π΄Π°Π½Π½ΡΡ
ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ , Oracle ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ, ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΡΠΌΠ΅Π½Ρ (undo segments). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Oracle ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ Π½Π°Π±ΠΎΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Ρ.Π΅. Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. Oracle ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ Π²Π°ΡΠΈΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ, ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π‘Π΅Π³ΠΌΠ΅Π½ΡΡ ΠΎΡΠΌΠ΅Π½Ρ Oracle β ΡΡΠΎ ΡΠ°ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° undo, ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅.
Oracle ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π»ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, ΠΎΠ½ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π΅ΠΌΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π² ΡΠ΅Π»ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ½ΠΎΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Oracle ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ Π΄Π΅ΡΠ°Π»ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ β Oracle Β«Π·Π° ΠΊΡΠ»ΠΈΡΠ°ΠΌΠΈΒ» ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ.
Oracle ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π²Π΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. ΠΠΎΠ΄Π΅Π»Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, Π° ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ SELECT Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°Ρ . ΠΠΎΠ΄Π΅Π»Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΠ΄Π΅Π»Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π² Π»ΡΠ±ΠΎΠΉ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΡΡΠΎΠΊΠ°ΠΌ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ COMMIT ΠΈΠ»ΠΈ ROLLBACK Oracle Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΠΈ ΠΏΡΠΎΡΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ.
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Oracle ΡΠ»ΠΎΠΆΠ½Ρ, ΠΈ Π²Ρ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ Π½ΠΈΠΌΠΈ Π² Π³Π»Π°Π²Π΅ 8, Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Oracle ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ Π΄Π°Π½Π½ΡΡ .
ΠΠΈΡΠ°ΡΠ΅Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°ΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ
ΠΠΈΡΠ°ΡΠ΅Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ°Π½Π΅Π΅, ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ»Ρ Π΄Π°Π½Π½ΡΡ Π²ΡΠ΅Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π±ΡΡΠ΅ΡΠΎΠ² ΠΈΠ· Π±ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΠΌ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π² Π±ΡΡΠ΅ΡΠ½ΠΎΠΌ ΠΊΡΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠ³ ΡΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°ΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ (ΠΆΡΡΠ½Π°Π»Π°) ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Π±ΡΡΠ΅ΡΠ΅ ΠΆΡΡΠ½Π°Π»Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Π² Π±ΡΡΠ΅ΡΠ½ΠΎΠΌ ΠΊΡΡΠ΅, Π±ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² Π±ΡΡΠ΅Ρ ΠΆΡΡΠ½Π°Π»Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΡΡΠ°Π·ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π°Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΈΠΊΡΡΠ΅Ρ Oracle ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΆΡΡΠ½Π°Π»Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π»Π°Ρ Π΄Π°Π½Π½ΡΡ Π½Π° Π΄ΠΈΡΠΊΠ΅.
ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΏΡΠΎΡΠ΅ΡΡ-ΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΠΆΡΡΠ½Π°Π»Π° Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Π½ΠΎΡΠΈΡ Π² ΡΠ°ΠΉΠ»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΡ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π·Π°ΡΡΠΎΠ½ΡΡΡΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ, ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π² Π² ΡΠ°ΠΉΠ»Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π±ΡΡΡΡΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π½Π°ΡΡΠ΄Ρ Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠΌ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°ΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ, Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π±Π°Π·Π°Π΄Π° Π½Π½ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ OLTP Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ Π΄Π½Ρ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΈΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°ΠΏΠΈΡΡ Π½Π° Π΄ΠΈΡΠΊ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΏΡΠΎΡΠ΅ΡΡ-ΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΠΆΡΡΠ½Π°Π»Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅ Π²Π½ΠΎΡΠΈΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π°ΠΏΠΈΡΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΠΆΡΡΠ½Π°Π» ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΡΠ΅Π½Ρ Π·Π°Π½ΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. Π’Π°ΠΊΠ°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ.
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈΠ»ΠΈ SCN (system change number) β Π²Π°ΠΆΠ½ΡΠΉ ΠΎΡΠ΅Π½ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΊΡΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Oracle Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ (SELECT) Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ , ΡΠΎ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΡΠ΅, Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΠ΅ ΡΡΡΠΎΠΊΡ, ΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Oracle ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ SCN Π΄Π»Ρ ΡΠ»Π΅ΠΆΠ΅Π½ΠΈΡ Π·Π° Π²ΡΠ΅ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΠΌΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ. SCN β ΡΡΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ΅ΡΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Oracle Π΄Π»Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ . SCN ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ΅Π½ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ β Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΡ.
SCN ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠΈΠΌ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΈ Oracle ΡΠ½Π°ΡΠ°Π»Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΈΡ Π² SGA. ΠΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΈΠ»ΠΈ Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, Oracle ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΈΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ SCN Π² ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΎΡΠΊΠ°ΡΠ°. ΠΡΠΎΡΠ΅ΡΡ-ΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ² Π·Π°ΡΠ΅ΠΌ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Π½ΠΎΡΠΈΡ Π·Π°ΠΏΠΈΡΡ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΠΆΡΡΠ½Π°Π» ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈ ΡΡΠ° Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ SCN Π² ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΎΡΠΊΠ°ΡΠ°. ΠΡΠΎΡΠ΅ΡΡ-ΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ², Π·Π°ΡΠ΅ΠΌ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Π½ΠΎΡΠΈΡ Π·Π°ΠΏΠΈΡΡ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΠΆΡΡΠ½Π°Π» ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈ ΡΡΠ° Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ SCN Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΈΡΡ ΡΡΠΎΠ³ΠΎ SCN Π² ΠΆΡΡΠ½Π°Π» ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Oracle.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΌΠ΅Π½ΠΎΠΉ
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΡ, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎΡΠΌΠ΅Π½Ρ (Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) ΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π·Π°ΠΏΠΈΡΡΡ ΠΎΡΠΌΠ΅Π½Ρ (undo records). ΠΡΠΈ Π²ΡΠ΄Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ROLLBACK Oracle ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΎΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ. ΠΠ°ΠΏΠΈΡΠΈ ΠΎΡΠΌΠ΅Π½Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½Ρ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠ³Π΄Π° Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ Π±Π°Π·Ρ Π² ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Oracle ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡΠΌΠ΅Π½Ρ, Π΄Π²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ½ΡΡΡ, ΠΊΠ°ΡΠ°ΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° undo ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° UNDO_RETINTION (ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ»Π³ΠΎ Oracle Π±ΡΠ΄Π΅Ρ ΡΡΠ°ΡΠ°ΡΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Π²Π°Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ± ΠΎΡΠΌΠ΅Π½Π΅ Π² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ undo). ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π²Π°ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ undo Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΈΡΡ Π²ΡΠ΅ Π΄ΠΎΠ»Π³ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΠ΅ΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ΅ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ (flashback), ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ; ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ΅ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ Oracle ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡΠΌΠ΅Π½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΎΠ²Π½ΡΡ . ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ , ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Flashback Query, Flashback Versions Query ΠΈ Flashback Table ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠΌΠ΅Π½Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Undo Advisor Oracle ΡΠ΅ΡΠ΅Π· OEM Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² undo ΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ UNDO_RETENTION. ΠΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°.
Tags: Oracle Database, Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
10 Transactions
This chapter defines a transaction and describes how the database processes transactions.
This chapter contains the following sections:
Introduction to Transactions
All tasks of a transaction are performed or none of them are. There are no partial transactions. For example, if a transaction starts updating 100 rows, but the system fails after 20 updates, then the database rolls back the changes to these 20 rows.
The transaction takes the database from one consistent state to another consistent state. For example, in a banking transaction that debits a savings account and credits a checking account, a failure must not cause the database to credit only one account, which would lead to inconsistent data.
The effect of a transaction is not visible to other transactions until the transaction is committed. For example, one user updating the hr.employees table does not see the uncommitted changes to employees made concurrently by another user. Thus, it appears to users as if transactions are executing serially.
Changes made by committed transactions are permanent. After a transaction completes, the database ensures through its recovery mechanisms that changes from the transaction are not lost.
The use of transactions is one of the most important ways that a database management system differs from a file system.
Sample Transaction: Account Debit and Credit
To illustrate the concept of a transaction, consider a banking database. When a customer transfers money from a savings account to a checking account, the transaction must consist of three separate operations:
Decrement the savings account
Increment the checking account
Record the transaction in the transaction journal
Oracle Database must allow for two situations. If all three SQL statements maintain the accounts in proper balance, then the effects of the transaction can be applied to the database. However, if a problem such as insufficient funds, invalid account number, or a hardware failure prevents one or two of the statements in the transaction from completing, then the database must roll back the entire transaction so that the balance of all accounts is correct.
Figure 10-1 A Banking Transaction
Description of «Figure 10-1 A Banking Transaction»
Structure of a Transaction
A database transaction consists of one or more statements. Specifically, a transaction consists of one of the following:
One or more data manipulation language (DML) statements that together constitute an atomic change to the database
One data definition language (DDL) statement
A transaction has a beginning and an end.
Beginning of a Transaction
When a transaction begins, Oracle Database assigns the transaction to an available undo data segment to record the undo entries for the new transaction. A transaction ID is not allocated until an undo segment and transaction table slot are allocated, which occurs during the first DML statement. A transaction ID is unique to a transaction and represents the undo segment number, slot, and sequence number.
The following example execute an UPDATE statement to begin a transaction and queries V$TRANSACTION for details about the transaction:
End of a Transaction
A transaction ends when any of the following actions occurs:
A user issues a COMMIT or ROLLBACK statement without a SAVEPOINT clause.
The database issues an implicit COMMIT statement before and after every DDL statement. If the current transaction contains DML statements, then Oracle Database first commits the transaction and then runs and commits the DDL statement as a new, single-statement transaction.
A user exits normally from most Oracle Database utilities and tools, causing the current transaction to be implicitly committed. The commit behavior when a user disconnects is application-dependent and configurable.
Applications should always explicitly commit or undo transactions before program termination.
A client process terminates abnormally, causing the transaction to be implicitly rolled back using metadata stored in the transaction table and the undo segment.
After one transaction ends, the next executable SQL statement automatically starts the following transaction. The following example executes an UPDATE to start a transaction, ends the transaction with a ROLLBACK statement, and then executes an UPDATE to start a new transaction (note that the transaction IDs are different):
Statement-Level Atomicity
A SQL statement that does not succeed causes the loss only of work it would have performed itself.
The unsuccessful statement does not cause the loss of any work that preceded it in the current transaction. For example, if the execution of the second UPDATE statement in Figure 10-1 causes an error and is rolled back, then the work performed by the first UPDATE statement is not rolled back. The first UPDATE statement can be committed or rolled back explicitly by the user.
The effect of the rollback is as if the statement had never been run.
Any side effects of an atomic statement, for example, triggers invoked upon execution of the statement, are considered part of the atomic statement. Either all work generated as part of the atomic statement succeeds or none does.
System Change Numbers (SCNs)
A system change number (SCN) is a logical, internal time stamp used by Oracle Database. SCNs order events that occur within the database, which is necessary to satisfy the ACID properties of a transaction. Oracle Database uses SCNs to mark the SCN before which all changes are known to be on disk so that recovery avoids applying unnecessary redo. The database also uses SCNs to mark the point at which no redo exists for a set of data so that recovery can stop.
SCNs occur in a monotonically increasing sequence. Oracle Database can use an SCN like a clock because an observed SCN indicates a logical point in time and repeated observations return equal or greater values. If one event has a lower SCN than another event, then it occurred at an earlier time with respect to the database. Several events may share the same SCN, which means that they occurred at the same time with respect to the database.
Every transaction has an SCN. For example, if a transaction updates a row, then the database records the SCN at which this update occurred. Other modifications in this transaction have the same SCN. When a transaction commits, the database records an SCN for this commit.
Overview of Transaction Control
Transaction control is the management of changes made by DML statements and the grouping of DML statements into transactions. In general, application designers are concerned with transaction control so that work is accomplished in logical units and data is kept consistent.
Transaction control involves using the following statements, as described in «Transaction Control Statements»:
The COMMIT statement ends the current transaction and makes all changes performed in the transaction permanent. COMMIT also erases all savepoints in the transaction and releases transaction locks.
The ROLLBACK statement reverses the work done in the current transaction; it causes all data changes since the last COMMIT or ROLLBACK to be discarded. The ROLLBACK TO SAVEPOINT statement undoes the changes since the last savepoint but does not end the entire transaction.
The SAVEPOINT statement identifies a point in a transaction to which you can later roll back.
The session in Table 10-1 illustrates the basic concepts of transaction control.
Table 10-1 Transaction Control
Time | Session | Explanation | ||
---|---|---|---|---|
Time | Session 1 | Session 2 | Session 3 | Explanation |
---|---|---|---|---|