| Termin | Definicja |
|---|---|
| model | model to baza systemowa SQL Server stanowiąca wzorzec dla każdej nowo tworzonej bazy danych. Model jako wzorzec dla nowych baz danychW środowisku SQL Server baza model pełni funkcję systemowego wzorca, z którego korzysta się podczas tworzenia każdej nowej bazy użytkownika. Nie jest to zwykła baza przeznaczona do przechowywania danych aplikacji, lecz specjalny element konfiguracji instancji. Jej zawartość wpływa na początkowy stan nowo utworzonej bazy, dlatego zmiany wprowadzone w model powinny być wykonywane świadomie i po wcześniejszym sprawdzeniu skutków. Gdy pojawia się polecenie utworzenia bazy, SQL Server wykorzystuje model jako punkt wyjścia. Kopiowane mogą być między innymi ustawienia, obiekty, uprawnienia oraz elementy struktury, które zostały umieszczone w tej bazie systemowej. Dzięki temu można przygotować wspólne środowisko początkowe dla wielu baz. Jeżeli w model znajduje się określona konfiguracja, nowe bazy mogą ją odziedziczyć bez potrzeby ręcznego odtwarzania tych samych czynności po każdym utworzeniu bazy. Warto rozróżnić model od szablonu aplikacyjnego. Szablon aplikacyjny opisuje zwykle strukturę jednej konkretnej aplikacji, natomiast model działa na poziomie instancji SQL Server i może wpływać na wszystkie później tworzone bazy. Z tego powodu każda modyfikacja powinna być traktowana jako zmiana o szerszym zakresie, nawet jeżeli sama operacja dotyczy niewielkiej liczby obiektów. Model SQL Server a tempdb i inne bazy systemoweModel jest jedną z baz systemowych, ale jej rola różni się od zadań przypisanych innym bazom. Baza master przechowuje informacje potrzebne do działania instancji, konfiguracji oraz rozpoznawania baz. Baza msdb wspiera między innymi mechanizmy zadań, historii operacji i automatyzacji. Baza tempdb służy do przechowywania danych tymczasowych, wyników pośrednich i obiektów tworzonych na czas pracy. Model natomiast stanowi wzorzec początkowy. Istotną różnicą jest sposób wykorzystania tych baz. Tempdb jest tworzona ponownie podczas uruchamiania usługi, dlatego jej zawartość nie ma charakteru trwałego. Model pozostaje bazą systemową używaną przy tworzeniu nowych baz. Nie należy więc traktować go jako miejsca na dane robocze, kopie zapasowe ani pliki aplikacyjne. Umieszczanie w nim przypadkowych obiektów może sprawić, że będą one pojawiały się w kolejnych bazach, choć nie były tam planowane. Na zachowanie tworzonej bazy wpływają także ustawienia podane bezpośrednio w poleceniu CREATE DATABASE, właściwości instancji oraz opcje ustawione już po utworzeniu bazy. Model nie zastępuje tych mechanizmów. Jest jednym z elementów procesu, a nie jedynym źródłem konfiguracji. Przy analizie różnic między dwiema nowymi bazami trzeba zatem sprawdzić zarówno zawartość model, jak i parametry polecenia oraz ustawienia środowiska. W praktyce znaczenie ma również konfiguracja plików. Ustawienia dotyczące między innymi rozmiaru początkowego, przyrostu i lokalizacji plików mogą oddziaływać na sposób tworzenia nowych baz, jednak ich zastosowanie zależy od wersji SQL Server i użytej składni. Zmiany powinny być dokumentowane, ponieważ nieczytelna konfiguracja utrudnia późniejsze ustalenie, skąd wzięły się konkretne właściwości nowej bazy. Typowe problemy związane z bazą modelJednym z częstszych problemów jest przypadkowe dodanie tabel, procedur, użytkowników albo uprawnień do model. Później te elementy mogą pojawić się w każdej nowej bazie, tworząc niepotrzebne zależności. Sam fakt, że nowa baza zawiera obiekt niewidoczny w skrypcie aplikacji, może prowadzić do błędnej diagnozy. W takiej sytuacji należy porównać zawartość model z oczekiwanym stanem i ustalić, kiedy wykonano zmianę. Inny problem dotyczy nieprawidłowych ustawień plików. Zbyt mały rozmiar początkowy albo niedostosowany przyrost może powodować częste powiększanie pliku. Z kolei niewłaściwa lokalizacja może komplikować zarządzanie przestrzenią dyskową i utrudniać odtwarzanie środowiska. Nie powinno się jednak zakładać, że każda zmiana w model automatycznie naprawi istniejące bazy. Baza już utworzona ma własne pliki i własne ustawienia. Problemy mogą pojawić się również po odtworzeniu lub przeniesieniu bazy model. Należy wtedy uwzględnić zgodność wersji SQL Server, dostępność wymaganych ścieżek oraz prawa konta usługi. Jeżeli model jest uszkodzona albo niedostępna, tworzenie nowych baz może kończyć się błędem. Objawy mogą obejmować komunikaty dotyczące plików, braku uprawnień, niezgodności ustawień lub problemów z otwarciem bazy. Nie zaleca się też wykorzystywania model do przechowywania informacji biznesowych. Dane klientów, rejestry operacyjne, dokumenty i kopie robocze powinny znajdować się w bazach przeznaczonych dla konkretnych aplikacji. Model należy utrzymywać jako przewidywalny i możliwie prosty wzorzec, ponieważ każda dodatkowa modyfikacja zwiększa zakres późniejszej analizy. Model w codziennej administracji i praktyczne wskazówkiPrzed zmianą model warto przygotować opis celu, listę modyfikowanych elementów oraz plan wycofania zmiany. Przydatne jest wykonanie kopii zapasowej zgodnie z przyjętą procedurą, zapisanie skryptu zmian i odnotowanie wersji SQL Server. W środowisku testowym można utworzyć bazę kontrolną i sprawdzić, czy odziedziczyła wyłącznie te elementy, które miały zostać przekazane. Dobrym zwyczajem jest ograniczenie zmian bezpośrednich. Jeżeli wymagane jest powtarzalne tworzenie tabel, indeksów, ról lub procedur, często bezpieczniej jest użyć skryptu wdrożeniowego aplikacji. Model powinien zawierać tylko takie elementy, które rzeczywiście mają być wspólne dla każdej nowej bazy. Dzięki temu łatwiej odróżnić ustawienia systemowe od struktury zależnej od konkretnego programu. Po zmianie należy sprawdzić proces tworzenia bazy z użyciem typowych parametrów, zweryfikować nazwy plików, ich rozmiary, ustawienia wzrostu, właściciela oraz podstawowe uprawnienia. Warto także wykonać próbę na osobnym środowisku, aby nie obciążać bieżącej pracy. Jeżeli konfiguracja ma być powtarzana na kilku instancjach, można przygotować kontrolowany skrypt, ale powinien on uwzględniać różnice ścieżek, wersji i zasad bezpieczeństwa. W przypadku migracji warto porównać model przed i po przeniesieniu instancji. Sama kopia bazy użytkownika nie zawsze odwzorowuje ustawienia model ze środowiska źródłowego. Brak takiego porównania może spowodować, że nowe bazy będą tworzone z innymi właściwościami niż wcześniej. Dokumentacja powinna obejmować także powód zmiany, osobę wykonującą operację oraz sposób weryfikacji. Kiedy zgłosić problem z modelem do serwisuDo serwisu warto zgłosić się wtedy, gdy SQL Server nie pozwala tworzyć nowych baz, pojawiają się nieznane obiekty w świeżo utworzonych bazach, występują błędy otwierania model albo po zmianie środowiska nowe bazy mają nieprawidłowe pliki i ustawienia. Szczególnej ostrożności wymaga sytuacja, w której nie ma pewności, czy problem dotyczy samej bazy model, plików, uprawnień systemowych, miejsca na dysku czy ustawień instancji. Warszawskie Pogotowie Komputerowe 24/7 może pomóc w uporządkowaniu objawów, zabezpieczeniu danych i przygotowaniu bezpiecznej kolejności czynności diagnostycznych. Przed przekazaniem sprzętu lub środowiska warto opisać moment wystąpienia błędu, podać wersję SQL Server, wskazać, czy problem dotyczy nowych czy także istniejących baz, oraz zachować treść komunikatów. Takie informacje ułatwiają rozdzielenie problemu konfiguracji od uszkodzeń systemu, dysku lub uprawnień. Nie powinno się usuwać ani zastępować plików model bez rozpoznania zależności. Pochopna ingerencja może utrudnić odtworzenie pierwotnego stanu i wpłynąć na kolejne operacje tworzenia baz. Bezpieczniejsze jest zebranie informacji, wykonanie kopii zgodnie z możliwościami środowiska, sprawdzenie dzienników oraz zaplanowanie zmiany w kontrolowanym momencie. W ten sposób model pozostaje przewidywalnym wzorcem, a jego konfiguracja może być utrzymywana bez przypadkowego przenoszenia błędów do nowych baz. |