1. Opis ogólny
2. Podczas transakcji
3. Podczas operacji globalnych
4. Jak uzyskać wyłączny dostęp ?
4.1 Steruje program
4.2 Steruje administrator
5. Problemy z dostępem do zbioru
6. Tematy powiązane
1. Opis ogólny
Wyłączny dostęp do bazy danych oznacza, że podczas wykonywania operacji
tylko jedna osoba (jeden użytkownik, jedna sesja) może mieć dostęp do danych.
Wyłączny dostęp do bazy danych (en: Exclusive), konieczny jest podczas
realizacji transakcji oraz podczas operacji globalnych na zbiorach w bazie danych.
Program może żądać wyłącznego dostępu do danych gdy operacje na danych wymagają
zachowania spójności i integralności. Sytuacje:
Backup danych:
Podczas tworzenia kopii zapasowej danych, aby upewnić się, że dane nie ulegają
zmianie w trakcie procesu backupu.
Aktualizacje systemu:
Kiedy system ERP jest aktualizowany, zmiany w strukturze bazy danych mogą
wymagać wyłącznego dostępu, aby uniknąć konfliktów lub niekompletnych aktualizacji.
Operacje masowe:
Podczas wykonywania operacji masowych, takich jak importowanie lub
eksportowanie dużych zestawów danych, system może potrzebować wyłącznego dostępu,
aby zapewnić, że wszystkie rekordy są poprawnie przetwarzane.
Zmiany strukturalne:
Wprowadzanie zmian w strukturze bazy danych, takich jak dodawanie nowych zbiorów,
pól i indeksów, może wymagać wyłącznego dostępu, aby upewnić się, że zmiany są
wprowadzane bez zakłóceń.
Migracje danych:
Podczas migracji danych między różnymi systemami lub bazami danych, wyłączny dostęp
może być konieczny, aby zapewnić, że wszystkie dane są przenoszone poprawnie.
Krytyczne operacje finansowe:
Operacje finansowe, takie jak aktulizacje miesięczne i roczne roczne,
mogą wymagać wyłącznego dostępu, aby upewnić się, że wszystkie transakcje są
prawidłowo zaksięgowane bez ryzyka konfliktów.
2. Wyłączny dostęp podczas transakcji
Podczas realizacji transakcji program żąda wyłącznego dostępu:
* do poszczególnych zapisów (wierszy) w zbiorach (en: Record Locking) RecordLock
* do wielu zapisów (wierszy) (en: Multi-Record Locking) MultiLock
* całych zbiorów (wszystkich wierszy w tabeli) (en: File Lock) FileLock
Czas wyłącznego dostępu do danych podczas realizacji transakcji jest tak
krótki, że praktycznie użytkownik nie zauważa przerwy w pracy programu
Jeżeli jeden użytkownik realizuje funkcje, które wymagają wyłącznego dostępu,
(en: Exclusive), to inni użytkownicy oczekujący dostępu do danych otrzymują
otrzymują odpowiednie komunikaty.
Gdy program nie może udostępnić danych dla innych, którzy czekają na dostęp,
to informuje że:
o-------------------------------------------------o
| Aktualizacja danych przez innych użytkowników |
o-------------------------------------------------o
Zwykle po paru sekundach oczekiwania, dane są zwolnione i transakcja jest
kontynuowana.
Jeżeli podany komunikat pojawia się wielokrotnie, to prosimy sygnalizować
nam takie przypadki. Prosimy podać jaka funkcja jest wykonywana, np.
rejestracja zamówień sprzedaży oraz dołączyć kronikę (log), w której
są szczegóły transakcji.
Zapisy do logu
NOTE: w parametrach logów prosimy oznaczyć te pozycje, które monitorują
dostęp do danych tj. [0804] [0806] [0810] [0811]
Kronika operacji (log)
Zapisy w logu pozwalają na ustalenie, kto (który operator) i którą funkcją
zablokował innym użytkownikom dostęp do zbioru:
o-------------------------------------------------o
| Nie ma dostępu do: [nazwa zbioru] |
o-------------------------------------------------o
Podczas transakcji, wyłączny dostęp do bazy uzyskiwany jest procedurami,
zarządzającymi bazą danych: RecordLock, MultiLock, FileLock, itp.
3. Podczas operacji globalnych
Podczas operacji globalnych na zbiorach w bazie danych np. aktualizacja,
indeksowania i weryfikacja, oraz podczas operacji okresowych, np. podczas
zamykania okresu, program oczekuje wyłącznego dostępu do bazy danych dla
użytkownika wykonującego operację.
Dlatego na czas operacji, pozostali użytkownicy powinni przerwać pracę
na innych stanowiskach (wylogować się).
Obecnie, następujące funkcje wymagają wyłącznego dostępu do bazy danych
programu Trawers ERP, tzn., że inni użytkownicy nie mogą wtedy pracować:
Gospodarka zbiorami:
--------------------
* Aktualizowanie zbiorów
* Indeksowanie zbiorów
* Weryfikacja zbiorów
* Tworzenie punktu przywracania
* Odtwarzanie programu z punktu przywracania
Patrz szczegóły:
Zarządzanie bazą danychInne operacje:
--------------
* Zamykanie okresu w: KB, MG, NA, ST, ZO, ZP
Wyjątkiem jest PL gdyż ma bazy niezależne a wyłączność
do własnych baz podczas wykonywania operacji zapewniona jest
procedurami jak podczas transakcji tj. Record Lock i File Lock
* Otwieranie okresu
Patrz też:
Okresy obliczeniowe
* Obliczenia MRP
Plan MRP tworzony jest w locie. Tylko jeden operator może
mieć dostęp do planu MRP podczas obliczeń
4. Jak uzyskać wyłączny dostęp ?
4.1 Steruje program
Podczas operacji globalnych, wyłączny dostęp do bazy uzyskiwany jest
procedurami zarządzającymi liczbą użytkowników (sesji)
Dlatego komunikat informuje:
o-----------------------------------------------------o
| Aby wykonać tę funkcję, to inni użytkownicy powinni |
| przerwać pracę w programie (wylogować się) |
o-----------------------------------------------------o
Kolejny komunikat pozwala zobaczyć kto aktualnie pracuje w programie
o-----------------------------------------------------o
| Nadal trwa praca na innych stanowiskach |
| F10-sesje |
o------------------------------------------ ----o---- o
|
Kto aktualnie pracuje ? -----o
Komunikat pojawia się, gdy w programie pracuje kilku operatorów
Gdy aktywna jest jedna sesja, to program nie wyświetla komunikatu
4.2 Steruje administrator
Administrator może zapewnić sobie wyłączny dostęp do bazy danych
Może zakończyć sesje innych operatorów i zabronić im możliwości
powtórnego zalogowania się (blokowanie logowania)
Zarządzanie sesjami
Może poprosić innych uzytkowników i zakończenie pracy z programem.
Wysłać wiadomość do wszystkich aktywnych operatorów: 'Proszę zakończyć pracę'.
Powiadomienia, wiadomości
5. Problemy z wyłącznym dostępem do zbioru
Jeżeli jeden użytkownik realizuje funkcje, które wymagają wyłącznego dostępu,
(en: Exclusive), to inni użytkownicy oczekujący dostępu do danych otrzymują
otrzymują odpowiednie komunikaty.
Np.
---------------------------------------------
Aby wykonać tę funkcję [AD_OTD10]
to inni operatorzy powinni przerwać pracę
(wylogować się)
---------------------------------------------
Jeżeli okaże się, że operator jest jedynym użytkownikiem programu,
to przyczyny braku wyłącznego dostępu należy szukać w środowisku
systemu operacyjnego.
Kroki:
* Ustalić nazwę zbioru, który jest niedostępny
Nazwę zbioru (pełną ścieżkę) program zapisuje w logu
Oznaczyć [1] te pozycje, które monitoruja dostęp do danych:
[0804] [0806] [0810] [0811]
Wykonać funkcję, która nie może uzyskać wyłącznego dostępu.
* Odczytać z logu komunikat z nazwą zbioru, np.
Nie ma dostępu do: ../adtres/addane/ad00pamr.dbf
* Ustalić proces, który używa podany zbiór.
W systemie Linux wywołać polecenie: fuser lub lsof
Jako root w konsoli, ustalić jaki proces używa pliku:
sudo lsof <plik>
sudo fuser <plik>
* Poleceniem: kill zakończyć proces (domyślnie), przerwać lub zawiesić.
Ew. zrestartować serwer.
Wyłączny dostęp do bazy danych - instrukcja krok po kroku1. Co to jest wyłączny dostęp?
Wyłączny dostęp oznacza, że tylko jeden użytkownik (jedna sesja) może w danym momencie
korzystać z danych - inni muszą poczekać lub się wylogować.
---
2. Kiedy jest wymagany?
| Sytuacja | Dlaczego potrzebny wyłączny dostęp |
|-----------------------------|--------------------------------------------------------|
| Backup danych | Aby dane nie zmieniały się w trakcie tworzenia kopii |
| Aktualizacja systemu | Aby uniknąć konfliktów przy zmianach w strukturze bazy |
| Operacje masowe | Import/eksport dużych danych musi być spójny |
| Zmiany strukturalne | Dodawanie pól, indeksów, zbiorów |
| Migracje danych | Przenoszenie danych między systemami |
| Zamykanie/otwieranie okresu | Operacje finansowe wymagają pełnej kontroli |
| Obliczenia MRP | Tylko jeden operator może tworzyć plan |
---
3. Jak uzyskać wyłączność?Steruje program
- Program sam sprawdza, czy inni użytkownicy są aktywni.
- Jeśli tak - wyświetla komunikat:
_'Aby wykonać tę funkcję, inni użytkownicy powinni się wylogować.'_
- Możesz sprawdzić aktywne sesje klawiszem F10 - SesjeSteruje administrator
- Może zakończyć sesje innych użytkowników.
- Może zablokować możliwość ponownego logowania.
- Może wysłać wiadomość do wszystkich:
_'Proszę zakończyć pracę - trwa operacja wymagająca wyłącznego dostępu.'_
---
4. Co zrobić, gdy dostęp jest zablokowany?
1. Sprawdź komunikat - np. _Nie ma dostępu do: [nazwa zbioru]_
2. Odczytaj log systemowy - oznacz parametry: `[0804] [0806] [0810] [0811]`
3. Ustal, który proces blokuje zbiór:
- W systemie Linux użyj:
`sudo lsof <plik>` lub `sudo fuser <plik>`
4. Zakończ proces (jeśli to bezpieczne):
`sudo kill <PID>`
lub zrestartuj serwer, jeśli konieczne
---
5. Dobre praktyki
- Przed operacją globalną poinformuj zespół o konieczności wylogowania.
- Monitoruj sesje i dostęp do zbiorów przez logi.
- Nie wykonuj krytycznych operacji w godzinach szczytu.
---
Checklista dla administratora systemu Trawers ERP
Który chce uzyskać lub zdiagnozować wyłączny dostęp do bazy danych.
Checklista: Wyłączny dostęp do bazy danych w Trawers ERPPrzed rozpoczęciem operacji globalnej
- Poinformuj użytkowników o planowanej operacji (np. zamknięcie okresu, indeksowanie)
- Poproś o wylogowanie się z programu
- Sprawdź aktywne sesje: F10 - Sesje
- Zablokuj możliwość logowania (jeśli konieczne)
- Upewnij się, że masz pełne uprawnienia administracyjne
---
Podczas operacji
- Monitoruj komunikaty systemowe:
- _Nadal trwa praca na innych stanowiskach_
- _Nie ma dostępu do: [nazwa zbioru]_
- Jeśli dostęp jest zablokowany, sprawdź logi:
- Oznacz parametry: `[0804]`, `[0806]`, `[0810]`, `[0811]`
- Zidentyfikuj zbiór, który jest zablokowany
- Ustal, który proces go używa (Linux: `lsof`, `fuser`)
- Zakończ proces (np. `kill`) lub zrestartuj serwer, jeśli bezpieczne
---
Po zakończeniu operacji
- Odblokuj logowanie dla użytkowników
- Zweryfikuj poprawność wykonanej operacji (np. zamknięcie okresu, backup)
- Zapisz notatkę w dzienniku administratora (data, typ operacji, ewentualne problemy)
- Przekaż informację zespołowi: _Operacja zakończona - można wrócić do pracy_
---
Dobre praktyki
- Wykonuj operacje globalne poza godzinami szczytu
- Regularnie aktualizuj dokumentację techniczną
- Ustal harmonogram operacji wymagających wyłączności
- Przechowuj logi z operacji w bezpiecznym miejscu