FANDOM


  • Nie mozna utworzyc db linka na schemacie innym, niz jest sie zalogowanym, nawet SYS/SYSTEM nie moze. Napisanie CREATE DATABASE LINK OWNER.NAZWA spowoduje utworzenie dblinka o nazwie OWNER.NAZWA na bieżącym użytkowniku, a NIE użytkowniku OWNER...


Przy przetwarzaniach po db linkach ważne są nstępujące parametry SQL*Net / Linuxa / bazy:

  1. SQLNET.EXPIRE_TIME - a time interval, IN MINUTES, to determine how often a probe should be sent verifying that client/server connections are active. Nalezy ustawic na taka wartosc, ile trwa najdluzszy proces. Czyli jesli jakis proces trwa np. 8 godzin, to ustawiamy co najmniej na 60*8=480 (w pliku SQLNET.ORA). Wartosc 0 oznacza, ze polaczenia beda trzymane przez baze w nieskonczonosc (jeszcze OS moze je przerwać - patrz parametr tcp_keepalive_time)
  2. net.ipv4.tcp_keepalive_time - parametr kernela mowiacy o tym, jak dlugo nalezy trzymac polaczenia TCP: the interval between the last data packet sent (simple ACKs are not considered data) and the first keepalive probe; after the connection is marked to need keepalive, this counter is not used any further. UWAGA: parametr jest w sekundach, czyli np. 7200 oznacza 2 godziny
  3. Parametr bazy DISTRIBUTED_LOCK_TIMEOUT - teoretycznie przy selectach nie powinno byc blokad, ale jakims cudem sie zdarzaly (byc moze "under the cover" SQL-i byly jakies SELECT FOR UPDATE albo cos...). W kazdym razie, domyslnie wartosc tego parametru jest 60 sekund, warto ustawic co najmniej na 900 albo i wiecej. Jezeli wartość jest za mala, to wyskoczy blad: ORA-02049: przekroczenie limitu czasu: rozproszona transakcja oczekuje na blokadę
  4. Przy definiowaniu DB Linka, w klauzuli USING nalezy podac ENABLE=BROKEN - powoduje to utrzymywanie nawych martwych polaczen, co zapobiega bledom typu: "ORA - 02050: transakcja 96.22.345 wycofana, niektóre odległe BD mogą być wątpliwe, ORA - 03135: utracono połączenie". Bledy takie wystepuja najczesciej, gdy sa firewalle, ktore wykrywaja brak aktywnosci i ubijaja polaczenie.


Jezeli ktorys z parametrow SQLNET.EXPIRE_TIME, net.ipv4.tcp_keepalive_time bedzie mial zbyt mala wartosc, to wyskoczy blad: ORA-02046: transakcja rozproszona już rozpoczęta

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.