Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Utrzymywanie propagacji zawsze włączonej w strumieniach Oracle

W tym poście opiszę jak utrzymać włączoną usługę Oracle Streams Propagation dla docelowej bazy danych poprzez utworzenie Schedule Job i procedury. Propagation to usługa, która przenosi nowe zmiany ze źródłowej bazy danych do docelowej bazy danych, jeśli ta usługa zostanie zatrzymana żadne zmiany danych nie będą miały zastosowania do docelowej bazy danych. Wyjaśniłem już w poprzednim poście, jak utworzyć Oracle Streams Replication.1. Najpierw zaloguj się do bazy danych przy użyciu poświadczeń administratora Streams.CONNECT [SOURCE_STREAM_ADMIN]2. Następnie utwórz tabelę do prowadzenia dziennika propagacji, aby można było zobaczyć, kiedy usługa propagacji została zatrzymana i kiedy została ponownie uruchomiona. Utwórz tabelę Propagation_Audit (Nazwa_propagacji Varchar2(30),Nazwa_źródła_kolejki Varchar2(30),Nazwa_kolejki_docelowej Varchar2(30), Destination_dblink Varchar2(128),Status Varchar2(8),Error_message Varchar2(4000),Error_date Date)/3. Następnie utwórz procedurę rejestrowania stanu wyłączenia i ponownego jej włączenia. Utwórz lub zamień PROCEDURE Ckprop_EnableAs Errnum Number; Errmsg Varchar2 (4000); KURSOR Prop_status to Wybierz Propagation_name, Destination_dblink, Status, Source_queue_name, Destination_queue_name, Error_message, Error_date From DBA_PROPAGATION Gdzie Status !='ENABLED';BEGIN Dla Rec In Prop_status LOOP Wstaw do Propagation_Audit Wartości. Rec.Destination_dblink, Rec.Status, Rec.Error_message, Rec.Error_date); POPEŁNIAĆ; BEGIN Dbms_Aqadm.enable_Propagation_Schedule (Rec.Source_queue_name, Rec.Destination_dblink); WYJĄTEK Gdy inni to Errnum :=SQLCODE; Errmsg :=SQLERRM; Wstaw do wartości Propagation_Audit ('CKPROP_ENABLE', Rec.Source_queue_name, 're-enable propagation for', Rec.Destination_dblink, 'ERROR', Errnum || ':' || Errmsg, Sysdate); POPEŁNIAĆ; KONIEC; END LOOP;WYJĄTEK Gdy inne to Errnum :=SQLCODE; Errmsg :=SQLERRM; Wstaw do wartości Propagation_Audit ('CKPROP_ENABLE', 'Obsługa wyjątków', Null, Null, 'BŁĄD', Errnum || ':' || Errmsg, Sysdate); COMMIT;END Ckprop_Enable;/4. Następnie utwórz zaplanowane zadanie do sprawdzenia w określonym przedziale czasu.Exec DBMS_SCHEDULER.CREATE_JOB (

job_name => 'propagation_check', job_type => 'STORED_PROCEDURE', job_action => 'ckprop_enable', number_of_arguments => 0, start_date =>Sysdate, repeat_interval => 'CZĘSTOŚĆ=MINUTELY;INTERVAL=5', end_date => Null, => PRAWDA, auto_drop=>FAŁSZ, komentarze => 'CO 15 MIN');Zrobione.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znak ucieczki pl-sql Oracle (dla ' )

  2. Jak zainstalować Oracle instantclient i pdo_oci na maszynie ubuntu?

  3. Typ danych Oracle Date, przekształcony na „RRRR-MM-DD HH24:MI:SS TMZ” za pomocą SQL

  4. Co to jest dokładnie BLOB w kontekście DBMS

  5. Jak używać parametrów w klauzuli „where value in...”?