ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ИспользованиС Oracle Streams для Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

НСявный сбор. Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ процСсс сбора собираСт DML ΠΈ DDL события Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… нСпосрСдствСнно ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² (redo log), Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ горячСго «Ρ€Π°ΡΠΊΠ°ΠΏΡ‹Π²Π°Π½ΠΈΡ» (hot mining), Π»ΠΈΠ±ΠΎ, ΠΏΡ€ΠΈ нСобходимости, ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Ρ… ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² (archive log). ПослС извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… процСсс сбора Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Π² Logical Change Record (LCR) ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ распространСния для дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ИспользованиС Oracle Streams для Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ГосударствСнноС ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ образования

" БСлорусский государствСнный тСхнологичСский унивСрситСт"

Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π΄Π΅Π»Π° ΠΈ ΠΏΠΎΠ»ΠΈΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ записка ΠΏΠΎ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅:

" ИспользованиС Oracle Streams для Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ"

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°:

НСшик Π”.А.

курс 3 Π³Ρ€ΡƒΠΏΠΏΠ° 9

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»:

Π΄ΠΎΡ†. Π‘ΠΌΠ΅Π»ΠΎΠ² Π’. Π’ ΠœΠΈΠ½ΡΠΊ 2011

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 1. ВозмоТности Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Π‘Π£Π‘Π” Oracle
  • 2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Oracle Streams
  • 3. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ шаги ΠΏΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ
    • 3.1 Настройка Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (Startup open)
    • 3.2 ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ tnsnames. ora (Π½Π° ΠΎΠ±ΠΎΠΈΡ… сСрвСрах)
    • 3.3 Π’Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ пространство ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Streams
    • 3.4 Dblink (ΠΌΠ΅ΠΆΠ΄Ρƒ исходной ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…)
  • 4. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ настройки Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Oracle Streams
    • 4.1 PL/SQL API
    • 4.2 Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ΅ PL/SQL API
    • 4.3 EM ΠΈΠ½Ρ‚СрфСйс
  • 5. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования PL/SQL API для настройки Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ
  • 6. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ PL/SQL API
    • 6.1 РСпликация схСмы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ MAINTAIN_SCHEMAS
    • 6.2 РСпликация Ρ‚Π°Π±Π»ΠΈΡ† ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ MAINTAIN_TABLES
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • БиблиографичСский список

Oracle Streams — это срСдство Π‘Π£Π‘Π”, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΡΠΎΠ±Ρ‹Ρ‚ия Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ поздняя, Ρ‡Π΅ΠΌ «ΠΎΠ±Ρ‹Ρ‡Π½Π°Ρ» рСпликация (рСпликация Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… прСдставлСний)), модСль ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ пСрСноса Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Oracle Streams появились Π² Oracle вСрсии 9, Π° Π² Π²Π΅Ρ€ΡΠΈΠΈ 10 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ своС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ях ΠΈ Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Oracle Streams прСдоставляСт Π½Π°Π±ΠΎΡ€ элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ:

Β· Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΠΏΠΎΡ‚ΠΎΠΊ

Β· ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ «Ρ‚Π΅Ρ‡ΡŒ» ΠΏΠΎΡ‚ΠΎΠΊ

Β· ΠΊΠ°ΠΊ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΎΠ΄Π½ΠΎ сСрвСра Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ

Β· Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€

Β· Π³Π΄Π΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ.

Oracle Streams примСняСтся Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… областСй :

Β· РСпликация

Β· ΠžΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний

Β· Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π΄Π°Π½Π½Ρ‹Ρ… ВСхничСски ΠΏΠΎΡ‚ΠΎΠΊΠΈ Oracle Streams ΠΎΠΏΠΈΡ€Π°ΡŽΡ‚ΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ нСзависимо ΠΈ Ρ€Π°Π½Π΅Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний, извСстный ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Oracle Advanced Queuing, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Dblink для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ исходной ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ «ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ» Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Oracle Streams Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ завСдСния особых структур Π² Π‘Π” (ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² Ρ‚Π°Π±Π»ΠΈΡ†, materialized views). РСпликация Π² Oracle Streams основана Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»Π° Π‘Π”.

1. ВозмоТности Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Π‘Π£Π‘Π” Oracle

БущСствуСт Π΄Π²Π° Π²ΠΈΠ΄Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Π‘Π£Π‘Π” Oracle:

Β· РСпликация Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Oracle Streams

Β· РСпликация Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… прСдставлСний РСпликация Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Oracle Streams ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ прСимущСствами:

Β· Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС (Π΄Π°Π½Π½Ρ‹Π΅ находятся Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ: Streams pool)

Β· РСпликация Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, схСм, Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… пространств

Β· РСпликация ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ вСрсиями Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ

Β· Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡ€Π°Π²ΠΈΠ»

Β· ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ, Ρ‚Π°ΠΊ ΠΈ Π΄Π²ΡƒΡ…ΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ

Β· ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ (начиная с Π²Π΅Ρ€ΡΠΈΠΈ 11g) ΠΈΠ»ΠΈ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ доступна Π²ΠΎ Π²ΡΠ΅Ρ… рСдакциях, ΠΎΠ΄Π½Π°ΠΊΠΎ для Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΉ Standard Edition One ΠΈ Standard Edition ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ограничСния:

Β· НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Buffered queue

Β· НС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Capture from redo

НС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Asynchronous change data capture

БущСствуСт Π΄Π²Π° Π²ΠΈΠ΄Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, основанных Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… прСдставлСниях: Basic ΠΈ Advanced.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Basic Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

Β· Доступна Π²ΠΎ Π²ΡΠ΅Ρ… рСдакциях Oracle

Β· Π Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅

Β· РСпликация производится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½Ρƒ сторону

Β· Π’ ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Β· Π’ Π±Π°Π·Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚, находятся Π½Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π° Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Snapshots (Read Only Materialized Views)

Β· Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ²

Β· ПослС 16 Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… подряд процСсс останавливаСтся ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ JOB

Advanced-рСпликация ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ: рСпликация Π² ΠΎΠ±Π΅ стороны, рСпликация со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвСрами ΠΈ Ρ‚. Π΄. Она позволяСт Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Доступна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Enterprise Edition.

Advanced-рСпликация, начиная с Enterprise Edition 11g, позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ структуры Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π°Π²Ρ‚оматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π· остановки Π‘Π”.

2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Oracle Streams

Π’Ρ€ΠΈ основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Oracle Streams:

1. Capture — процСсс сбора Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ΅

2. PropagationпроцСсс ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ° ΠΊ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

3. Apply — процСсс примСнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

Capture (Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ процСсс) Π‘Π±ΠΎΡ€ осущСствляСтся двумя способами:

Β· НСявный сбор. Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ процСсс сбора собираСт DML ΠΈ DDL события Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… нСпосрСдствСнно ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² (redo log), Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ горячСго «Ρ€Π°ΡΠΊΠ°ΠΏΡ‹Π²Π°Π½ΠΈΡ» (hot mining), Π»ΠΈΠ±ΠΎ, ΠΏΡ€ΠΈ нСобходимости, ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Ρ… ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² (archive log). ПослС извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… процСсс сбора Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Π² Logical Change Record (LCR) ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ распространСния для дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ сбора ΠΌΠΎΠΆΠ΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ LCRΡ‹ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄Ρƒ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ измСнСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Β· Π―Π²Π½Ρ‹ΠΉ сбор. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ хранСния. Π­Ρ‚ΠΈ сообщСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ LCR (Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ автоматичСски ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠΌ примСнСния (apply process), Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ сообщСния, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для потрСблСния Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Capture:

1. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ исходной Π‘Π”

2. Π Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡ€Π°Π²ΠΈΠ»;

3. ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅Ρ‚ срСдствами LogMiner ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π° ΠΈ Π°Ρ€Ρ…ΠΈΠ²;

4.Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² измСнСния Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ Π‘Π” ;

5. Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ запись ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, Logical Change Record (LCR);

6. ΠŸΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ LCR Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ события Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Streams Advanced Queuing (SAQ).

Propagation (Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ процСсс)

1. Находится Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ исходной Π‘Π”

2. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡ€Π°Π²ΠΈΠ»

3. Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ события ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ SAQ, сформированной Capture

4. ΠŸΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΈΡ… Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π‘Π” Ρ‡Π΅Ρ€Π΅Π· Oracle Net.

Apply (Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ процСсс)

1. Находится Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π‘Π”

2. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡ€Π°Π²ΠΈΠ»

3. Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ измСнСния (LCR) ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

4. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ измСнСния Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π‘Π”.

ΠŸΡ€Π°Π²ΠΈΠ»Π° (rules)

1. Capture: ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ capture ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для записи ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (LCR) Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

2.Propagation: опрСдСляСт ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… для примСнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

3.Apply: ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… измСнСнию с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ (LCR)

ВСхнология Oracle Streams

Рис. 1. — Π’Схнология Oracle Streams

3. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ шаги ΠΏΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки:

β€’ ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…

β€’ ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ tnsnames. ora

β€’ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ пространство ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля Streams.

β€’ ΠΠ°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° администратора ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Streams

β€’ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ dblink (ΠΌΠ΅ΠΆΠ΄Ρƒ исходной ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…)

3.1 Настройка Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (Startup open)

β€’ COMPATIBLE (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 9.2.0): для использованиС Streams, Compatible Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 9.2.0.

β€’ GLOBAL_NAMES (TRUE): ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн Π² TRUE Π½Π° Π²ΡΠ΅Ρ… Π±Π°Π·Π°Ρ…. ПослС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Streams этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ нСльзя.

β€’ GLOBAL_NAME ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ измСнСния. ВсС сообщСния Π² Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ эти ΠΈΠΌΠ΅Π½Π°.

β€’ JOB_QUEUE_PROCESSES (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 2): этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ количСство процСссов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ DBMS_JOB.

β€’ AQ_TM_PROCESSES (Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²ΠΎΠΎΠ±Ρ‰Π΅): количСство процСссов для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ.

o Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ alter system reset AQ_TM_PROCESSES scope=spfile;

β€’ LOGMNR_MAX_PERSISTENT_SESSIONS (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 1, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π΅Π½ ΠΈΠ»ΠΈ большС количСства процСссов сбора; для 11g Π½Π΅ Ρ‚рСбуСтся): количСство постоянных сСссий, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… LOGMINER.

β€’ LOG_PARALLELISM (Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ 1 Π½Π° Π²ΡΠ΅Ρ… Π±Π°Π·Π°Ρ…, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΡ… сбор ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ): устарСл, начиная с Π²Π΅Ρ€ΡΠΈΠΈ 10.1.

β€’ PARALLEL_MAX_SERVERS (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 2): ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс сбора ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвСрных процСссов. ΠŸΡ€ΠΎΡ†Π΅ΡΡ примСнСния ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 2 ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвСрных процСсса.

β€’ SHARED_POOL_SIZE (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 100 Мб): ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс сбора Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 10 Мб Π² shared pool, Π½ΠΎ Streams ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹Π΅ использования 10% shared pool.

β€’ JAVA_POOL_SIZE (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 50 Мб, Π»ΡƒΡ‡ΡˆΠ΅ 100): ΠΏΠΎ ΠΎΠΏΡ‹Ρ‚Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 50 ΠΌΠ± ΠΏΠΎΠ΄ JAVA VM.

β€’ OPEN_LINKS (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 4): Π·Π°Π΄Π°Π΅Ρ‚ максимальноС количСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΉ сСссии соСдинСний с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ.

β€’ Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² (ARCHIVELOG).

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π±Ρ‹Π»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ произвСсти Ρ‚Π°ΠΊΠΈΠ΅ настройки:

β€’ alter system set GLOBAL_NAMES=TRUE scope=both;

β€’ alter system set JOB_QUEUE_PROCESSES=8 scope=both;

β€’ alter system set LOGMNR_MAX_PERSISTENT_SESSIONS=8 scope=spfile;

β€’ alter system set PARALLEL_MAX_SERVERS=8 scope=both;

β€’ alter system set SHARED_POOL_SIZE=200m scope=both;

β€’ alter system set STREAMS_POOL_SIZE=200m scope=both;

β€’ alter system set JAVA_POOL_SIZE=50m scope=both;

β€’ alter system set OPEN_LINKS=8 scope=spfile;

β€’ alter system set AQ_TM_PROCESSES=3 scope=both;

На ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ пСрСвСсти Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅ΠΆΠΈΠΌ archivelog, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСрвСр Oracle ΠΌΠΎΠ³ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π° ΠΆΡƒΡ€Π½Π°Π»Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ выполнСния, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ пСрСзаписан. Π’ΠΎΠ³Π΄Π° сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ утСряны.

Для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅ΠΆΠΈΠΌ ARCHIVELOG Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

β€’ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ экзСмпляр Oracle — shutdown immediate;

β€’ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ экзСмпляр Oracle Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ mount;

β€’ пСрСвСсти Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅ΠΆΠΈΠΌ ARCHIVELOG

β€’ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

shutdown immediate;

startup mount;

alter database archivelog;

alter database open;

3.2 ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ tnsnames. ora (Π½Π° ΠΎΠ±ΠΎΠΈΡ… сСрвСрах)

src.local — исходная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…

dest.local — цСлСвая Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…

src.local = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = src_server)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =orcl11)))

dest.local = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dest_server)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl22))

3.3 Π’Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ пространство ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Streams

Β· Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ пространство

Β· Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Oracle Streams

Β· Π’Ρ‹Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ DBA. Роль DBA Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создаСт ΠΈΠ»ΠΈ измСняСт процСссы сбора ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ этого — ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ Ρ€ΠΎΠ»ΡŒ DBA.

Β· Π’Ρ‹Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ администратор STREAMS с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE:

Рис. 2. — Π’Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ пространство ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Streams

3.4 Dblink (ΠΌΠ΅ΠΆΠ΄Ρƒ исходной ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…)

НСобходимо ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ администратор Oracle Streams ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ database links

Рис. 3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Dblink (ΠΌΠ΅ΠΆΠ΄Ρƒ исходной ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…)

4. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ настройки Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Oracle Streams

Для настройки Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (рис. 4) :

β€’ PL/SQL API

β€’ Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ΅ PL/SQL API (ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° MAINTAIN)

β€’ Enterprise Manager интСрфСйс (GUI)

Рис. 4. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ для настройки Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Oracle Streams

4.1 PL/SQL API

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, находящиСся Π² ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Ρ€Π°Π½Π΅Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, Π·Π° ΡΡ‡Π΅Ρ‚ Ρ‡Π΅Π³ΠΎ обСспСчиваСт самый Π³ΠΈΠ±ΠΊΠΈΠΉ способ настройки.

4.2 Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ΅ PL/SQL API

Начиная с 11-ΠΎΠΉ вСрсии Π‘Π£Π‘Π” Oracle ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для настройки Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅Ρ‚ нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, процСссы сбора, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. Достаточно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, которая сгСнСрируСт скрипт ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ Π΅Π³ΠΎ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ этот скрипт выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ измСнСния.

Для упрощСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Oracle Π²Π²Π΅Π» Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ряд простых ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΡ… Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΊΠ°ΠΊ MAINTAIN_GLOBAL, MAINTAIN_SCHEMAS, MAINTAIN_SIMPLE_TTS, MAINTAIN_TTS, MAINTAIN_TABLES (рис.5)

Рис. 5. — ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ PL/SQL API

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΈ использовании Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€:

рСпликация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹ΠΉ

DBMS_STREAMS_ADM.MAINTAIN_GLOBAL (

source_directory_object IN VARCHAR2,

destination_directory_object IN VARCHAR2,

source_database IN VARCHAR2,

destination_database IN VARCHAR2,

perform_actions IN BOOLEAN DEFAULT TRUE,

script_name IN VARCHAR2 DEFAULT NULL,

script_directory_object IN VARCHAR2 DEFAULT NULL,

dump_file_name IN VARCHAR2 DEFAULT NULL,

capture_name IN VARCHAR2 DEFAULT NULL,

capture_queue_table IN VARCHAR2 DEFAULT NULL,

capture_queue_name IN VARCHAR2 DEFAULT NULL,

capture_queue_user IN VARCHAR2 DEFAULT NULL,

propagation_name IN VARCHAR2 DEFAULT NULL,

apply_name IN VARCHAR2 DEFAULT NULL,

apply_queue_table IN VARCHAR2 DEFAULT NULL,

apply_queue_name IN VARCHAR2 DEFAULT NULL,

apply_queue_user IN VARCHAR2 DEFAULT NULL,

log_file IN VARCHAR2 DEFAULT NULL,

bi_directional IN BOOLEAN DEFAULT FALSE,

include_ddl IN BOOLEAN DEFAULT FALSE,

instantiation IN INTEGER DEFAULT

DBMS_STREAMS_ADM.INSTANTIATION_FULL);

DBMS_STREAMS_ADM.MAINTAIN_TTS (

tablespace_names IN DBMS_STREAMS_TABLESPACE_ADM.TABLESPACE_SET,

source_directory_object IN VARCHAR2,

destination_directory_object IN VARCHAR2,

source_database IN VARCHAR2,

destination_database IN VARCHAR2,

perform_actions IN BOOLEAN DEFAULT TRUE,

script_name IN VARCHAR2 DEFAULT NULL,

script_directory_object IN VARCHAR2 DEFAULT NULL,

dump_file_name IN VARCHAR2 DEFAULT NULL,

capture_name IN VARCHAR2 DEFAULT NULL,

capture_queue_table IN VARCHAR2 DEFAULT NULL,

capture_queue_name IN VARCHAR2 DEFAULT NULL,

capture_queue_user IN VARCHAR2 DEFAULT NULL,

propagation_name IN VARCHAR2 DEFAULT NULL,

apply_name IN VARCHAR2 DEFAULT NULL,

apply_queue_table IN VARCHAR2 DEFAULT NULL,

apply_queue_name IN VARCHAR2 DEFAULT NULL,

apply_queue_user IN VARCHAR2 DEFAULT NULL,

log_file IN VARCHAR2 DEFAULT NULL,

bi_directional IN BOOLEAN DEFAULT FALSE,

include_ddl IN BOOLEAN DEFAULT FALSE);

DBMS_STREAMS_ADM.MAINTAIN_SIMPLE_TTS (

tablespace_name IN VARCHAR2,

source_directory_object IN VARCHAR2,

destination_directory_object IN VARCHAR2,

source_database IN VARCHAR2,

destination_database IN VARCHAR2,

perform_actions IN BOOLEAN DEFAULT TRUE,

script_name IN VARCHAR2 DEFAULT NULL,

script_directory_object IN VARCHAR2 DEFAULT NULL,

bi_directional IN BOOLEAN DEFAULT FALSE);

DBMS_STREAMS_ADM.MAINTAIN_SCHEMAS (

schema_names IN VARCHAR2,

source_directory_object IN VARCHAR2,

destination_directory_object IN VARCHAR2,

source_database IN VARCHAR2,

destination_database IN VARCHAR2,

perform_actions IN BOOLEAN DEFAULT TRUE,

script_name IN VARCHAR2 DEFAULT NULL,

script_directory_object IN VARCHAR2 DEFAULT NULL,

dump_file_name IN VARCHAR2 DEFAULT NULL,

capture_name IN VARCHAR2 DEFAULT NULL,

capture_queue_table IN VARCHAR2 DEFAULT NULL,

capture_queue_name IN VARCHAR2 DEFAULT NULL,

capture_queue_user IN VARCHAR2 DEFAULT NULL,

propagation_name IN VARCHAR2 DEFAULT NULL,

apply_name IN VARCHAR2 DEFAULT NULL,

apply_queue_table IN VARCHAR2 DEFAULT NULL,

apply_queue_name IN VARCHAR2 DEFAULT NULL,

apply_queue_user IN VARCHAR2 DEFAULT NULL,

log_file IN VARCHAR2 DEFAULT NULL,

bi_directional IN BOOLEAN DEFAULT FALSE,

include_ddl IN BOOLEAN DEFAULT FALSE,

instantiation IN INTEGER DEFAULT

DBMS_STREAMS_ADM.INSTANTIATION_SCHEMA);

DBMS_STREAMS_ADM.MAINTAIN_TABLES (

table_names IN VARCHAR2,

source_directory_object IN VARCHAR2,

destination_directory_object IN VARCHAR2,

source_database IN VARCHAR2,

destination_database IN VARCHAR2,

perform_actions IN BOOLEAN DEFAULT TRUE,

script_name IN VARCHAR2 DEFAULT NULL,

script_directory_object IN VARCHAR2 DEFAULT NULL,

dump_file_name IN VARCHAR2 DEFAULT NULL,

capture_name IN VARCHAR2 DEFAULT NULL,

capture_queue_table IN VARCHAR2 DEFAULT NULL,

capture_queue_name IN VARCHAR2 DEFAULT NULL,

capture_queue_user IN VARCHAR2 DEFAULT NULL,

propagation_name IN VARCHAR2 DEFAULT NULL,

apply_name IN VARCHAR2 DEFAULT NULL,

apply_queue_table IN VARCHAR2 DEFAULT NULL,

apply_queue_name IN VARCHAR2 DEFAULT NULL,

apply_queue_user IN VARCHAR2 DEFAULT NULL,

log_file IN VARCHAR2 DEFAULT NULL,

bi_directional IN BOOLEAN DEFAULT FALSE,

include_ddl IN BOOLEAN DEFAULT FALSE,

instantiation IN INTEGER DEFAULT

DBMS_STREAMS_ADM.INSTANTIATION_TABLE);

4.3 EM ΠΈΠ½Ρ‚СрфСйс

EM ΠΈΠ½Ρ‚СрфСйс позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Π²ΡƒΡ… ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ² (рис.6). Для Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ пространства Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ «Streams Tablespace Replication Wizard». Для Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, схСм ΠΈ Π²ΡΠ΅ΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ «Streams Global, Schema, Table and Subset Replication Wizard» .

Рис. 6. EM ΠΈΠ½Ρ‚СрфСйс позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Π²ΡƒΡ… ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ²

5. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования PL/SQL API для настройки Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

РСпликация Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (дСйствия Π½Π° ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…) Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Установим для Π½Π΅Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

Supplemental logging — это процСсс записи Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΆΡƒΡ€Π½Π°Π» Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ измСнСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, измСнСния строки).

Рис. 7. — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ событий Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… источникС.

Π’ Π‘Π”-источникС создадим процСсс Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (capture), ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π² ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΡ‚Π±ΠΎΡ€Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ создадим процСсс пСрСноса ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (propagation)(рис. 8).

Рис. 8. — ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (capture), процСсс пСрСноса ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (propagation).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ воспроизвСдСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ Π‘Π” трСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΉ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ «Ρ‚ΠΎΡ‡ΠΊΠΈ отсчСта» Π½ΠΎΠΌΠ΅Ρ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π‘Π”-источникС.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ процСсс Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (рис.9).

Рис. 9. — ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ РСпликация Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (дСйствия Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…) Π’ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… создадим процСсс примСнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (apply), ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π² ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΡ‚Π±ΠΎΡ€Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.

Для удобства ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΠΈ, ΠΈΠ½Π°Ρ‡Π΅ процСсс примСнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ процСсс примСнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Рис. 10. — Π”Сйствия Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

6. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ PL/SQL API

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ PL/SQL API ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ для записСй Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°ΠΌΠΏΠ° ΠΈ Ρ…ранСния Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π΄Π°Ρ‚ΡŒ Π½Π° Π½ΠΈΡ… ΠΏΡ€Π°Π²Π° администратору Streams (рис.11).

Рис. 11. — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΠΏΡ€Π°Π²Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡŒ для администратора Streams.

6.1 РСпликация схСмы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ MAINTAIN_SCHEMAS

Рис. 12. — Π Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ схСмы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ MAINTAIN_SCHEMAS

schema_names — имя Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ схСмы

source_directory_object — имя Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° Π‘Π” источникС

destination_directory_object — имя Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π‘Π”

source_database — имя Π‘Π” источника

destination_database — имя Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π‘Π”

perform_actions — ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

dump_file_name — имя Ρ„Π°ΠΉΠ»Π° DUMP

capture_name — имя процСсса Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (capture)

capture_queue_name — имя ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ для capture

capture_queue_user — ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для capture

propagation_name — имя процСсса ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (propagation)

apply_name — имя процСсса примСнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (apply)

apply_queue_name — имя ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ для apply

apply_queue_user — ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для apply

log_file — Ρ„Π°ΠΉΠ» для Ρ„Π°ΠΉΠ»Π° log

bi_directional — двусторонняя рСпликация,

include_ddl Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ddl-ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

6.2 РСпликация Ρ‚Π°Π±Π»ΠΈΡ† ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ MAINTAIN_TABLES

table_names — имя Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ‚Π°Π΄Π»ΠΈΡ†Ρ‹

source_directory_object — имя Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° Π‘Π” источникС

destination_directory_object — имя Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π‘Π”

source_database — имя Π‘Π” источника

destination_database — имя Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π‘Π”

perform_actions — ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

propagation_name — имя процСсса ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (propagation)

log_file — Ρ„Π°ΠΉΠ» для Ρ„Π°ΠΉΠ»Π° log

bi_directional — двусторонняя рСпликация,

include_ddl Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ddl-ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ВСхнология Oracle Streams позволяСт Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‡Ρ‚ΠΎ позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ случая Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.

Oracle Streams Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ устойчиво Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Π΅Ρ€ΡΠΈΠΈ 10.2.0 ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсиях.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ PL/SQL API, появившиСся Π² Oracle 11g ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всю настройку Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрипт Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈ нСобходимости ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ сущСствСнно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Oracle Streams.

Π Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Oracle Streams позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ практичСски ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сущСствСнных Π·Π°Ρ‚Ρ€Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

БиблиографичСский список:

1. ДокумСнтация Oracle® Database PL/SQL Packages and Types Reference 11g Release 1 (11.1)

Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ рСсурсы:

2. http://www.oraclegis.com/blog/?p=417 — ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ использованиС Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Oracel Streams

3. http://www.citforum.ru/database/oracle/streams_simple — ΠΎΠ±Ρ‰ΠΈΠ΅ свСдСния ΠΎ Oracle Streams

4. http://www.citforum.ru/database/oracle/streams

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ