Firebird - data zmiany pliku

0

Kiedy firebird zapisuje dane to pliku bazy danych? Z moich obserwacji wynika, że data modyfikacji pliku zmienia się dopiero po zatrzymaniu firebirda. Znalazłem informacje że jest to związane z ustawionym parametrem force write. Wg dokumentacji force write wymusza zapis do pliku, a wyłączenie tego parametru zostawia systemowi operacyjnemu wybór kiedy zapisać dane do pliku (co wg dokumentacji też nie jest bezpieczne).

Wg dokumentacji rozumiem to tak:
włączone force write - natychmiastowy zapis do pliku
wyłączone force write - zapisywanie do pliku wg uznania systemu operacyjnego

Z moich obserwacji wygląda to jednak tak:
włączone force write - zapis do pliku wykonuje się dopiero w momencie zatrzymania firebird
wyłączone force write - data pliku bazy danych zmienia się praktycznie po każdym insercie

Czy ktoś może mi to wyjaśnić?

0

Ale co tu jest do wyjaśniania?
http://www.sinatica.com/blog/en/index.php/articles/forced-writes-when-to-use

No i tak z ciekawości, do czego Ci ta data zmiany pliku potrzebna?

0

Dzięki za linka, ale o tym już czytałem. Z tego co zrozumiałem wygląda to tak:

Forced writes ON = natychmiastowy zapis danych do pliku
Forced writes OFF = nie wiem kiedy dane będą zapisane do pliku

W swojej bazie danych mam ustawione Forced writes ON, a data zmiany pliku bazy może być np. sprzed tygodnia (tak to się u mnie zachowuje). Czyli rozumiem że do czasu kiedy firebird nie będzie zamknięty to wszystkie zmiany z tygodnia siedzą w pamięci? Co się stanie jeśli serwer nagle padnie?

Jak ustawiam forced writes OFF to widzę że dane są zapisywane do pliku bazy przy każdym insercie (bo data modyfikacji pliku się zmienia).

Wygląda to tak jakby działało to odwrotnie do tego co jest opisane w dokumentacji, albo mam coś nie tak z bazą danych. Tego właśnie nie rozumiem.

0

Data zmiany pliku , jak również informacja o jego rozmiarze są zwracane tylko i wyłącznie przez system operacyjny . Nie wiem w jakim celu potrzebujesz takiej informacji , ale z praktyki wiem że różne systemy różnie udostępniają takie informacje . Z moich obserwacji, to plik otwarty do zapisu do którego trawa zapis danych pod W 2008 serwer ma rozmiar 0 bytów do momentu zamknięcia zapisu, a pod W 2003 Serwer jego udostępniany rozmiar jest aktualizowany , jak sądzę, na bieżąco

0

Ja nie potrzebuję informacji o dacie zmiany pliku. Traktuję to tylko jako informację że system rzeczywiście zapisał coś do pliku bazy danych. Przy forced writes OFF widzę że data pliku zmienia się przy każdy insercie, czyli widać że system cały czas zapisuje do pliku. Przy forced writes ON data pliku się nie zmienia (chyba że zamknę firebird).

Dlatego cały czas nie rozumiem, czy przy forced writes ON mimo wszystko zapisują się dane do pliku ale tego nie widać?? Jeśli tak to działa to co stanie się w przypadku kiedy przed zakończeniem zapisu zabraknie prądu? W takim przypadku wygląda na to że (wg dokumentacji niezalecany) forced writes OFF jest lepszy bo zapisuje od razu?

1 użytkowników online, w tym zalogowanych: 0, gości: 1