Log transakcyjny - do czego i jak jest wykorzystywany

Поділитися
Вставка
  • Опубліковано 10 гру 2024

КОМЕНТАРІ • 13

  • @szama280
    @szama280 Рік тому

    Świetny materiał. Jasno i czytelnie. Dodatkowo przekaz w formie obrazkowej lepiej się przyswaja. Dzięki Marcin!

  • @WoodyEx
    @WoodyEx 4 роки тому +1

    Ciekawy materiał :) oby więcej, jak znajdziecie czas możecie poruszyć temat listenera, konfiguracji po stornie plików *.ora i samej bazy, problemów z połączeniem, połączenie bezpośrednie poprzez sqlplus etc.

  • @o0GzxS41BIbyux3vEoNehl5FH
    @o0GzxS41BIbyux3vEoNehl5FH 2 роки тому

    Super wytłumaczone.
    Może coś o Oracle net? Nawiązywanie połączenia z DB, listener, sesje, pooling.
    Również interesujące byłoby technologia multitenant - jak się bazy PDB mają do instancji głównej bazy, jak używane są zasoby, redologi, itp.

  • @nieinformatyk
    @nieinformatyk 4 роки тому +3

    Cześć, bardzo fajny materiał :) Mam kilka pytań.
    1. Czy z praktycznego punktu widzenia opłaca się utrzymywać archive redo log po wykonaniu pełnego backupu? Inaczej mówiąc zdarza się, że wykorzystuje się inny niż najświeższy(najnowszy) backup? Bo tylko w takiej sytuacji widzę sens trzymania archive redo logów.
    2. Czy pliki redo zawierają tylko zatwierdzone operacje czy również niezatwierdzone? Jeśli również niezatwierdzone to czym się różni plik undo od pliku redo?
    3. Jak to możliwe, że po awarii bazy danych jesteśmy w stanie odzyskać niezatwierdzone transakcje? Bo z tego co mi wiadomo niezatwierdzone zmiany znajdują się w undo segmencie(czyli w pamięci RAM, w plikach undo). Jeśli teraz ma miejsce awaria to tracimy pamięć RAM a tym samym wszystko, czego nie ma na dysku.
    4. Jak nazywa się proces instancji przenoszący dane z redo log do data files(w trakcie normalnego funkcjonowania oraz po awarii)? DBWr przenosi dane do data files wyłącznie z buforów, czy się mylę?
    5. 08:00 Skąd baza wie, że dane z redo są w data filach? Porównuje SCN?
    6. Może jakiś odcinek o checkpointach? :)
    7. Fajnie by też byłoby się dowiedzieć trochę więcej o danych undo. Z tego co mi wiadomo niektóre niezatwierdzone transakcje są niejawnie przez bazę commitowane(dlatego szybciej działa operacja commit niż rollback). Czy to znaczy, że niezatwierdzona transakcja może się znaleźć w redo? No i czy da się odczytać zawartość plików undo? LogMiner działa tylko dla redo logów?
    8. Na czym polega opcja logging/nologging, np. w poleceniu create table? W obu przypadkach zapisujemy zmiany na danych tabeli do redo logów?
    Dzięki :)

    • @bazydanychalternatywnie1873
      @bazydanychalternatywnie1873  4 роки тому +1

      Cześć !
      Dzięki za pytania, kilka z nich nadaję się na osobny odcinek :) ale w skrócie postaramy się odpowiedzieć tu:
      1. Uściślijmy - należy robić backup archivelog podobnie jak plików bazy danych. Co do samego utrzymywania ich po backupie, warto jeśli mam bazę standby. Wtedy ostatnie kilka godzin archivelogów na dysku potrafi znacząco przyśpieszyć naprawę replikacji.
      2. Tak - w plikach znajdują się zarówno zatwierdzona jak i niezatwierdzone operacja. Powodów jest kilka np. Transakcja trwająca 10 godzin nie zmieści się w ramie i musi być zapisywana do redo. Różnica pomiędzy redo i undo - temat na osobny odcinek.
      3. Nie jest to możliwe. Po awarii baza danych weryfikuje transakcje z redo, zatwierdzone trafiają do bazy, niezatwierdzone - są wycofywane.
      4. Nie ma takiego procesu. Redo nie piszę do data file. Jedynym procesem który to robi jest DBWn. Wymuszeniem takiego zapisu zajmuje się kolejny proces CKPT. Przy awarii obstawiam na RECO.
      5. Tak, informacja o aktualnym SCN znajduję się w nagłówku pliku.
      6. Może :)
      7. To pytanie jest niejako kontynuacją 2. Zapis do redo i plików jest ciągły. Pozwala to na:
      - przetwarzanie transakcji większych od puli pamięci
      - przetwarzania transakcji większych od redo
      - szybki commit niezależnie od ilości zmodyfikowanych wierszy.
      8. W skrócie opcja nologging generuję mniej redo. Oracle bardzo tego nie lubi i samo przełączenie nologging nie zawsze skutkuję brakiem redo dla danego polecenia. Jeśli nie jesteś pewny swojego backupu to lepiej poczekać nieco dłużej i pozwolić redo robić swoje.
      Uff :) Mam nadzieję, że pomogłem. Nowe odcinki w krótce.
      Pozdrawiamy !

    • @nieinformatyk
      @nieinformatyk 4 роки тому +2

      @@bazydanychalternatywnie1873 Super, dziękuje za odpowiedzi. Pojawiło mi się kilka kolejnych, ale poczekam z nimi, bo podejrzewam, że na większość z nich uzyskam odpowiedź w nagraniach.
      PS. Macie w planach jakiś kurs dla Oracle DBA? Chętnie bym się podszkolił z tych tematów.

    • @bazydanychalternatywnie1873
      @bazydanychalternatywnie1873  4 роки тому

      @@nieinformatyk Dziękujemy za uznanie dla naszej pracy 🙂
      Tak, kurs jest planowany. W tej chwili nie możemy podać jeszcze konkretnego terminu. Będziemy informować gdy tylko zostaną ustalone jakieś ramy czasowe.
      Na ten czas zachęcamy i zapraszamy do zadawania nam pytań czy zgłaszania tematów, które miałyby zostać poruszone w naszych materiałach. Motory bazy danych - ze szczególnym uwzględnieniem Oracle, projektowanie baz danych oraz ciągle rozwijający się jezyk SQL to zagadnienia w których czujemy się najlepiej 🙂 Ale nie stronimy od Oracle GoldenGate, DataGuard czy Cloud.

  • @symbiot11
    @symbiot11 2 роки тому

    Super , ze Pan tworzy takie filmy. Mam jedno pytanie : W logu sa zapisywane tylko transakcje czy też dane po modyfikacji ?

  • @tomaszkucharski6895
    @tomaszkucharski6895 4 роки тому

    Fajną robotę robicie! Może jakiś materiał typu "Błędy programistów Java/C# vs DBA"? Jakieś protipy od Was magików Oracle'a dla zwykłych szarych klepaczy kodu? Pisząć aplikacje oparte o Javę często spotykam się z problemami na Oracle i zawsze w głowie jest "a jakby tak posiąść trochę tej magicznej wiedzy DBA" :D

    • @bazydanychalternatywnie1873
      @bazydanychalternatywnie1873  4 роки тому

      O to chodzi w tym kanale - chcemy, my DBA, pomóc programistom aby ich aplikacje działały wydajniej z naszymi bazami danych :-) Aby programiści byli świadomi co baza danych może zrobić dla ich aplikacji. Aby w aplikacji nie powielać kodu, który jest już w bazie danych. Jeśli masz jakiś konkretny temat na myśli - daj znać :-)

    • @tomaszkucharski6895
      @tomaszkucharski6895 4 роки тому

      Wpada błąd z proda "sql-ka działa wolno" - jak to przeanalizować? Jak czytać statspacki? :)

    • @bazydanychalternatywnie1873
      @bazydanychalternatywnie1873  4 роки тому +1

      Heh, temat rzeka :-) Najlepszy, bo wizualny, byłby OEM czy inny Toad/SQLDeveloper. Jeśli tylko sqlplus to sugeruję zaprzyjaźnić się z pakietem DBMS_XPLAN, wygenerować plan wykonania i zweryfikować czy optymalizator wybiera optymalny. Np. jakich i czy w ogóle używa indeksów. Można też zerknąć do widoków wydajnościowych i albo szukać od strony zużytych zasobów - DBA_HIST_%, albo od strony 'wait events'.