Strona główna > Wpis Totumfacki > Podłożyć komuś świnię

Podłożyć komuś świnię

30/09/2014

Podłożyć komuś świnię można na wiele różnych sposobów, w każdym świecie, w każdej dziedzinie.

swinia

Od lat zaskakiwali mnie poważni (bez złośliwości i ‚wydawać by się mogło’) producenci czołowych rozwiązań w różnych dziedzin informatyki, którzy opierali swoje rozwiązania adresowane do biznesu, i kosztujące nielekką gotówkę, o oprogramowanie popularne, autorstwa czołowych producentów, koniecznie w wersjach „express”, znając przy tym ograniczenia tych wersji; ograniczenia z którymi docelowy użytkownik zderzy się może nie od razu, może nie po roku, ale niechybnie, w bliżej nieokreślonej przyszłości. O czym mówię?

Najczęściej spotykana przeze mnie konstrukcja to rozwiązanie, w którym główny serwis/proces wymaga do poprawnego działania serwera bazodanowego w tle; spotykana wtedy, gdy wersja ‚express’ silnika SQL osiągnęła już granicę wielkości bazy przewidzianą przez wersję (dla niewtajemniczonych: to celowe ograniczenie mające na celu wykluczenie stosowania prostych rozwiązań na skalę produkcyjną) i właśnie ‚coś’, najczęściej ‚coś bardzo ważnego’ przestało działać (nie tylko poprawnie, ale w ogóle).

W dniu wczorajszym ktoś zderzył mnie z rozwiązaniem autorstwa VMware, „industry-leading virtualization software company”, która przez lata dostarczała swój vCenter Server, „a centralized platform for managing your […] environments”, a działanie tegoż managementu zależało (i w określonych rozwiązaniach zależy jak widać do dnia dzisiejszego) od stanu serwera bazodanowego pracującego w tle, a tym był Microsoft SQL Server w kolejnych odsłonach wersji Express. Muszę przyznać, że zobaczyć minę człowieka, który uprzednio zapłacił kolosalny rachunek za wdrożenie, a obecnie dowiaduje się, że jednak istnieją w nim jakieś ograniczenia, o których nie został uprzedzony to widok wzbudzający pospołu uśmiech i współczucie (w kolejności dowolnej). Na szczęście rozgarnięty ‚upper damagement’ po takim dictum ‚zaprzyjaźnionego’ technika sięga po książeczkę czekową i wydaje kolejną kasę na aktualizację systemu do wersji najwyższej, w której bazy danych w tle już nie ma. Pech chce, że zapłacić musi także za wsparcie certyfikowanemu wdrożeniowcowi, albowiem migracja kilkuset środowisk jest zadaniem niełatwym, wymagającym wiedzy i czasochłonnym. Czasochłonność jest o tyle irytująca, że niektórzy mimo to sięgają do wiedzy przygodnego technika.

A teraz przepis na ciastko: Jeśli Wasz ‚leciwy’ vCenter Server na próbę uruchomienia odpowiada błędami podłączenia do bazy sugerując, że tam już nie ma miejsca na PRIMARY, a do tego log transakcyjny jest pełny to powinniście:

0. Nie upierać się przy odpalaniu vCenter Server, lub położyć jeśli miejsce w bazie VCDB jeszcze jest ale nie zostało go dużo.

1. Wyczyścić log transakcyjny (i to bez względu na wszystko, a w trakcie kolejnych prac realizować to zadanie jeszcze parokrotnie). VMware dostarcza własny przepis.

2. Wykonać serię ‚wycinanek’ na bazie VCDB:

truncate table vpx_hist_STAT
truncate table vpx_hist_STAT1
truncate table vpx_hist_STAT2
truncate table vpx_hist_STAT3
truncate table vpx_hist_STAT4
truncate table vpx_sample_time1
truncate table vpx_sample_time2
truncate table vpx_sample_time3
truncate table vpx_sample_time4
truncate table vpx_event_arg

3. Sprawdzić jak się miewa tabela vpx_event w bazie:

SELECT [EVENT_ID]
      ,[CHAIN_ID]
      ,[CREATE_TIME]
      FROM vpx_event 
      WHERE [CREATE_TIME] <= '2014-01-01';

– i skasować zbyteczne dane historyczne np.:

delete from vpx_event where [create_time] <= '2014-01-01';

(przy stosownie dużym rozwiązaniu i obszernej zawartości tabeli kasowanie takie jak wyżej zakończy się przepełnieniem logu transakcyjnego więc będziecie musieli wcinać to ciastko mniejszymi porcjami)

4. Wykonać shrink na bazie, oraz na plikach bazy (log/data).

5. W niektórych sytuacjach sięgnąć po kolejny przepis na ‚podejrzane’ ciastko.

6. Włączyć vCenter Server (na koniec, i nie zapomnieć).

— edycja dzień po

Problemy mają to do siebie, że lubią wracać. Wszystko wskazuje na to, że warto czasami zajrzeć także do tablicy vpx_task, najlepiej procedurą dbo.cleanup_events_tasks_proc (czyści wszystko stosownie do deklaracji w tabeli z konfiguracją, dla zapoznania się warto zajrzeć), którą znaleźć można tutaj: VIM_VCDB > Programmability > Stored Procedures (i stosowny przepis producenta)

Wspomniane powyżej prace wykonałem dla VMware w wersji 4.1 (z aktualizacjami i stosownym vCenter Server) na bazie danych Microsoft SQL Express 2005.

%d blogerów lubi to: