Studio WMS.net przechowuje dokumenty i stany w bazie Microsoft SQL Server, a program działa w przeglądarce przez serwer IIS. Baza jest więc jedynym miejscem, w którym istnieje historia magazynu - jej utrata oznacza utratę zapisu wszystkich ruchów. Ta strona opisuje kopie zapasowe oraz utrzymanie bazy.
Wymagania i wersja bazy danych
Wersja przeglądarkowa programu wymaga bazy SQL Server i serwera WWW z usługą IIS. Dawna informacja o SQL Server 2012 jako wersji minimalnej jest dziś myląca: wersja 2012 nie dostaje poprawek bezpieczeństwa od lipca 2022 roku, więc nowe instalacje stawia się na wersji wspieranej przez producenta.
| Składnik | Wymaganie | Uwaga |
|---|---|---|
| Baza danych | Microsoft SQL Server w wersji wspieranej przez producenta | Wersja 2012 straciła wsparcie w lipcu 2022 roku |
| Serwer WWW | Internet Information Services z ASP.NET | Udostępnia aplikację w przeglądarce i terminalom |
| Edycja bazy | Express albo Standard | Express ogranicza bazę do 10 GB i nie ma SQL Server Agent |
| Miejsce na dysku | Pliki bazy oraz kopie zapasowe | Kopie trzyma się na innym dysku niż bazę |
Przejście ze starszej wersji bazy opisuje strona o SQL Server 2008, a wymianę systemu serwera - strona o Windows Server 2012. Firma bez własnej serwerowni może korzystać z programu w chmurze prywatnej, co opisuje strona o magazynie w chmurze.
Kopie zapasowe i model odzyskiwania
Magazyn pracuje przez cały dzień, a każda minuta to kilkanaście skanów. Nocna kopia pełna chroni przed utratą bazy, ale nie przed utratą dnia pracy. Dlatego baza magazynu powinna pracować w modelu odzyskiwania FULL, z kopią dziennika transakcji co kilkanaście minut w ciągu dnia. Po awarii odtwarza się kopię pełną i kolejne kopie dziennika, tracąc najwyżej ostatnie minuty.
W modelu SIMPLE dziennik transakcji jest czyszczony automatycznie i odtworzenie do wybranego momentu nie jest możliwe - można wrócić tylko do ostatniej kopii pełnej albo różnicowej. Modele odzyskiwania opisuje dokumentacja SQL Server.
Edycja Express nie ma usługi SQL Server Agent, która w innych edycjach uruchamia kopie według harmonogramu. Kopie planuje się wtedy w Harmonogramie zadań Windows poleceniem sqlcmd, a wynik każdego zadania trzeba sprawdzać - zadanie, które od miesiąca kończy się błędem, niczego nie chroni.

Utrzymanie bazy danych
Baza magazynu rośnie z każdym skanem, a plan wykonania zapytań zależy od statystyk o rozkładzie danych. Po dużym imporcie kartotek albo po roku intensywnej pracy statystyki bywają nieaktualne i raport, który trwał sekundy, zaczyna trwać minuty. Regularna aktualizacja statystyk oraz przebudowa najbardziej pofragmentowanych indeksów poza godzinami pracy utrzymują czasy odpowiedzi.
- Statystyki - aktualizowane po dużych zmianach danych, żeby optymalizator wybierał właściwy plan zapytania.
- Indeksy - przebudowywane okresowo poza zmianą, gdy fragmentacja spowalnia odczyt.
- Kontrola spójności - polecenie DBCC CHECKDB wykrywa uszkodzenia, zanim trafią do kopii zapasowych.
- Retencja danych - dokumenty magazynowe są dowodami księgowymi, więc nie usuwa się ich przed upływem okresu przechowywania.
Okres przechowywania dowodów księgowych wynosi co najmniej pięć lat od początku roku następującego po roku obrotowym, zgodnie z art. 74 ustawy o rachunkowości. Stare dane przenosi się więc do archiwum, a nie kasuje. Oddzielenie ciężkich raportów od bazy produkcyjnej opisuje strona o serwerze raportów.
Dostęp do danych dla kontrahentów i integracji
Program zainstalowany na serwerze może udostępniać wybrane dane kontrahentom i innym systemom. Każdy z tych dostępów dostaje własne konto z najmniejszymi potrzebnymi uprawnieniami: klient magazynu widzi swój stan przez moduł internetowy, a system księgowy czyta przygotowane widoki kontem tylko do odczytu. Konto aplikacji nie powinno być współdzielone z integracją.
Moduł dla klientów opisuje strona o module internetowym dla kontrahentów, a odczyt widoków ERP przez serwer połączony - strona o integracji ze Streamsoft.