 15 września 2009 roku w siedzibie Asseco Business Solutions SA odbyło się 17. spotkanie PLSSUG Lublin, którym z impetem weszliśmy w sezon 2009/2010 po standardowej 3 miesięcznej przerwie wakacyjnej. Spotkanie uważam za bardzo udane - a to z dwóch powodów. Po pierwsze, przyszło całkiem sporo osób (również nowych, co cieszy) - doliczyłem się 23 uczestników. Po drugie, mieliśmy przyjezdnego prelegenta z PLSSUG Warszawa - Marka Adamczuka, który przedstawił bardzo fajną sesję "Odloty w T-SQLu". Widać było, że Marek - jak na MVP przystało - zna SQL Server niekiedy nawet lepiej, niż jego twórcy oraz że potrafi swoją wiedzę przekazywać w bardzo przystępny sposób, z łatwością angażując słuchaczy. Po sesji pewnie jeszcze sporo byśmy dyskutowali na tematy związane i nie związane z sesją, gdyby nie PKP, które tak dobrało rozkład pociągów, że Marek był bardzo ograniczony czasowo. Jego sesja dotyczyła meandrów i niuansów składni T-SQL. Mad pokazywał na żywo różne konstrukcje składniowe, które teoretycznie nie powinny działać, a jednak SQL Server nie widzi w nich żadnych problemów oraz wskazywał, na co zwracać uwagę w codziennej pracy. Dzięki za przyjazd i za sesję!
Przy okazji chciałbym wszystkim zakomunikować, że nowym liderem (a właściwie liderką) PLSSUG Lublin została Beata Kuśmierczyk. Także w sprawach grupy, spotkań, prób wyłudzenia nagród itd. prosiłbym o kontakt z Beatą. Ja po prawie dwóch latach prowadzenia grupy nie mam już na nią energii (to standardowy proces wypalenia lidera) i czasu. PLSSUG Lublin to chronologicznie druga grupa SQL-owa (po Warszawie), która zaczęła organizować spotkania, z unikalną atmosferą i nietuzinkowymi ludźmi. Nie mam wątpliwości, że rozwój grupy będzie kontynuowany - z resztą Beata już od kilku spotkań zajmowała się ich organizacją i wdrażała się do pełnienia nowej roli, aż w końcu dostała tzw. propozycję nie do odrzucenia :) PLSSUG jest obecnie najsilniejszą organizacją w ramach społeczności zrzeszonej wokół technologii Microsoft i cieszę się, że jako grupa lubelska jesteśmy od samego początku częścią tego projektu. Oczywiście nadal zamierzam przychodzić na spotkania i pomagać Beacie w miarę możliwości, z resztą w grupie lubelskiej jest jeszcze kilka innych osób, które również są w stanie skutecznie wesprzeć grupę na różnych płaszczyznach.
Kilka zdjęć z wrześniowego spotkania:
   
 W gronie Członków lubelskiej grupy PLSSUG podjęta została decyzja o nieprzeprowadzaniu spotkań w czerwcu, lipcu i sierpniu 2009 roku. Następne spotkanie odbędzie się więc we wrześniu, i z tego co wiem od Beaty Kuśmierczyk, która zajmuje się organizacją spotkań - ma to być mocny początek sezonu z gośćmi specjalnymi. Przerwa wakacyjna to już lubelska tradycja - rok temu postąpiliśmy analogicznie. Słuszność przerwy w spotkaniach broni się z resztą sama, biorąc pod uwagę frekwencję na spotkaniu majowym, która była 50% niższa niż średnia z poprzednich spotkań. Pozostaje mi więc życzyć wszystkim Członkom PLSSUG Lublin zasłużonego wypoczynku w najbliższych miesiącach z dużą ilością ładnej pogody i dobrej zabawy.
P.S.
Ostatnio trochę rzadziej pisuję na blogu, co z resztą zostało zauważone przez kilka osób. Patrząc na statystyki postów z roku 2008 nasuwa się stwierdzenie, że owe zjawisko ma charakter cykliczny. Po części na pewno tak jest, jednak to nie cała prawda. Istotne jest również, że ostatnio mniej czasu poświęcam sprawom technicznym związanym z SQL Server. Cała zawodowa para idzie obecnie w bardziej ogólne tematy ze świata IT jak architektura systemów, szeroko pojęte bezpieczeństwo czy kwestie jakości danych i mechanizmów z tym związanych. Prędzej czy później zmieni się więc także tematyka tego bloga. W końcu ileż można pisać o SQLu :) Jeżeli ktoś miałby ochotę skomentować moje dotychczasowe posty lub wskazać, co jest jego zdaniem interesujące - zapraszam na maila.
Aha i jeszcze jedno. Od jakiegoś czasu przestałem odpowiadać na maile w stylu "co robię źle w tym skrypcie", "dlaczego mi to nie działa w procedurze składowanej" lub "jak to zrobić w SQLu". Sorry Folks, no time for that.
 Zapraszam na 15. spotkanie grupy Polish SQL Server User Group w Lublinie, które tym razem poświęcone będzie zagadnieniom migracyjnym i integracyjnym. Sesję poprowadzi Przemek Rachwał, który pracuje w firmie Centertel. Spotkanie odbędzie się we wtorek 21 kwietnia 2009 roku (godz. 17:00-19:00) w siedzibie Asseco Business Solutions SA (Anica System formalnie już nie istnieje), ul. Konrada Wallenroda 4C, 20-607 Lublin, V piętro (można wchodzić od 16:30).
Agenda:
17:05-18:30 Migracja i integracja bazy danych napisanej w MS Access do MS SQL 2005 (Przemysław Rachwał)
18:35-19:00 Dyskusja i sprawy organizacyjne (Marcin Guzowski)
Rejestracja na spotkania odbywa się w trybie opisanym w poście dotyczącym jednego z poprzednich spotkań.
Więcej informacji:
Obszar roboczy: 15. spotkanie PLSSUG Lublin
Załóżmy, że spotykam na ulicy zwykłego człowieka i zadaję mu pytanie:
Dzień dobry. Otóż albowiem mam 2 samochody marki TheHighestLevelOfReliability. W ciągu ostatnich 2-3 tygodni jeden zepsuł mi się raz, a drugi - dwa razy. Jeździmy tymi samochodami po Saharze, przyłączy się Pan(i)?
To jakiej odpowiedzi mogę się spodziewać? Wszystkich, którzy zakładają odpowiedź twierdzącą zapraszam na przejażdżkę :) i przypominam o zabraniu ze sobą kremu z filtrem, dobrej książki i czarnego foliowego worka dostosowanego do rozmiarów ciała.
Natomiast pozostałym chciałbym zadać jeszcze jedno pytanie. Czy następujące zdanie znajdujące się na stronach http://microsoft.com/sqlserver:
SQL Server 2008 provides the highest levels of security, reliability, and scalability for your business-critical applications.
należy uznać za prawdziwe, skoro wymieniony SQL Server 2008 (konkretnie SQL Server 2008 64bit Standard Edition, ale też SQL Server 2005 64bit Standard Edition) może w praktycznie dowolnym momencie przestać odpowiadać, zablokować serwer, na którym pracuje i czasem nawet nie dać się zrestartować? To retoryczne i nie pozbawione ironii pytanie jest wstępem do tego, co chciałem napisać o ostatnich wydarzeniach związanych z utratą mojego zaufania do stabilności systemu SQL Server.
Na początek małe case study:
W godzinach wieczornych jeden z systemów masowego przetwarzania danych zaczął rozsyłać powiadomienia (SMS, mail) o problemach. Jako że system ten pracuje w architekturze rozproszonej na 9 nodach, a każdy z nich miał bardzo niepokojące informacje, którymi chciał się pochwalić, to na komórkach i skrzynkach pocztowych kilku osób znalazł się pokaźny ładunek informacji dających się podsumować statusem NIC_NIE_DZIAŁA. Jedną z tych osób, byłem ja, gdyż odpowiadam za produkcję tego systemu. Pomyślałem sobie wtedy, że jak dostałem 60 SMSów, że niby jest problem, to może rzeczywiście warto to&owo sprawdzić. Zalogowałem się więc przez RDP na serwer, na którym pracuje baza danych SQL Server 2008 64bit Standard, z której to bazy korzysta głównie nod centralny oraz czasami pozostałe nody w miarę potrzeby. "Zalogowałem się" to trochę za szybkie słowo jak na określenie tego, co rzeczywiście miało miejsce, gdyż owo logowanie zajęło niewiele mniej niż 2 minuty. Kolejną minutę "klikał" mi się windowsowy guzik Start. Po kilku (dłuższych) chwilach udało mi się ustalić, że proces sqlsrvr.exe zaalokował sobie 15,2 GB pamięci wirtualnej. Serwer posiadał natomiast tylko 8 GB RAMu.
Co się więc stało z brakującymi GB? Otóż poleciały do pliku stron na dysk, zapewne razem z innymi stronami zaalokowanymi przez pozostałe aplikacje czy moduły systemu operacyjnego działające na serwerze. Ciągłe obciążenie IO na bardzo wysokim poziomie i kompletny brak wolnej przestrzeni w RAMie spowodował, że nawet nie należąca do najsłabszych maszyna (2 4-korowe procesory 2 GHz, 8 GB RAM) o mało co nie wyzionęła ducha. SQL Server oczywiście przestał reagować na cokolwiek - ani nie można się było do niego zalogować (nawet przez DAC), ani restart usługi się nie powiódł. Pozostało więc tylko ubicie procesu, po którym oczywiście wszystko wróciło do normy.
A propos case study, z tego co pamiętam ostatnio Mariusz Kędziora z MS zachęcał we wpisie na łamach swojego bloga do nadsyłania wrażeń z wdrożeń technologii Microsoft. Ciekawe czy opublikowałby moje case study... W razie czego, to mam jeszcze kilka podobnych.
Clue problemu polega na tym, że w pewnym warunkach SQL Server potrafi wykończyć zarówno siebie, jak i wszystko na tym samym serwerze. Jak już sygnalizowałem na początku posta, opisywana sytuacja nie jest odosobniona i występowała w przeciągu ostatnich kilku tygodni także na innym serwerze.
W czym rzecz z technicznego punktu widzenia? W tym, że cywilizowany silnik bazodanowy nie powinien dopuszczać, żeby jego buffer pool został zestronicowany na dysk. Nawet jeśli założymy, że część stron może trafić na dysk, to i tak nie może to powodować wyżej opisanych problemów. Najciekawsze jest to, że znane jest zabezpieczenie przez omawianymi problemami. Zaimplementował je także Microsoft. Lock pages in memory - bo o nie chodzi, dostępne jest jednak wyłącznie w wersji Enterprise (sic!)... Wersja Standard ignoruje to ustawienie i w określonych warunkach obciążeniowych dochodzi do opisywanych przeze mnie skutków. Problem omówił m.in. Paweł Potasiński we wpisie na swoim blogu. Dla mnie sytuacja wygląda następująco: idę do sklepu i chę kupić krzesło. Sprzedawca mówi mi, że krzesło kosztuje 100zł. Dokonuję zakupu, po czym przy pierwszej próbie skorzystania z niego spadam na podłogę. Okazuje się że w momencie siadania krzesło składa się jak domek z kart. Wracam do sklepu z pozdrowieniami na ustach, a sprzedawca mi mówi:
A nie nie, to jak chce Pan na nim siedzieć, to o tu jest wersja DELUXE za 1000zł, zapakować?
Co na to wszystko Microsoft? Raz już odmówił dodania stosownej obsługi do wersji Standard. Teraz trwa kolejna batalia o tą funkcjonalność, prowadzona m.in. przez Maćka Pileckiego:
https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=422322
Zastanawiam się cały czas, jak w ogóle można wypuszczać na rynek upośledzoną wersję systemu i jeszcze odmawiać naprawy problemu. Dla mnie sytuacja jest nieakceptowalna. Mamy tutaj do czynienia z błędem, który godzi w stabilność produktu, a nie z żadną enterprisową funkcjonalnością, za którą powinno się płacić kilka razy więcej.
 Zapraszam na 14. spotkanie grupy Polish SQL Server User Group w Lublinie, które tym razem poświęcone będzie zagadnieniom nie związanym bezpośrednio z systemem SQL Server - wszakże nie samymi bazami danych człowiek żyje. Jedną z sesji poprowadzi Magda Borys, a drugą - Łukasz Wójcik. Obydwoje są pracownikami Politechniki Lubelskiej. Spotkanie odbędzie się we środę 18 marca 2009 roku (godz. 17:00-19:00) w siedzibie Anica System S.A., ul. Konrada Wallenroda 4C, 20-607 Lublin, V piętro (można wchodzić od 16:30).
Agenda:
17:00-17:10 - sprawy organizacyjne
17:15-18:15 - Wprowadzenie do ASP.NET MVC (Łukasz Wójcik)
18:20-19:00 - MS Project 2007 - możliwości wsparcia projektów (Magda Borys)
Rejestracja na spotkania odbywa się w trybie opisanym w poście dotyczącym poprzedniego spotkania.
Jak widać planujemy dwie sesje na zupełnie różne tematy, co stanowi pewną odmianę od ostatnio panującej tendencji do jednej dużej sesji per spotkanie. Jest to także pierwsze spotkanie, którego agendę (termin, prelegentów) zorganizowała Beata Kuśmierczyk. Na chwilę obecną mamy więc w grupie lubelskiej następujący podział ról:
Beata Zalewa - redaktor PLSSUGowego newslettera, podsumowania spotkań, opisy zdjęć;
Beata Kuśmierczyk - agenda spotkań, terminy, kontakty z prelegentami;
Grzegorz Babiuk - filmowanie sesji/spotkań i tematy pokrewne;
Marcin Guzowski - samozwańczy lider i uzurpator;
Jak na inne grupy społecznościowe w Polsce lista ta nie jest zbyt pokaźna. Istnieje cały szereg ról w grupie, które nie są obsadzone i chętni byliby bardzo mile widziani. Jakie to role? Przykładowo:
- osoba zajmująca się ankietami, statystykami spotkań, starająca się określać nastroje członków grupy poprzez tworzenie ankiet z odpowiednimi pytaniami,
- osoba zajmująca się filmowaniem spotkań, webcastami, screencastami, Live Meetingiem,
- osoba zajmująca się robieniem zdjęć na spotkaniach,
- osoba zajmująca się zasobami www grupy lubelskiej na witrynie PLSSUG (web admin/content admin),
- osoba zajmująca się promocją grupy (ogłoszenia o eventach, terminach spotkań na forach, portalach i poprzez mail przypominający o spotkaniu do członków grupy),
- osoby będące właścicielami (prowadzącymi) ścieżek tematycznych (serii sesji/dyskusji) związanych z określoną technologią/komponentem (jeśli chodzi o SQL Server, to np. SSIS, query tuning, DBA itd.),
- osoby, która chciałaby zostać prelegentami i prowadzić sesje wyjazdowe (na konferencjach społecznościowych i spotkaniach innych grup z kilkunastu miast w Polsce).
Oczywiście katalog ról nie jest zamknięty i można sobie wymyślić także inne zadania - ważne jest, aby w społeczność wkładać także coś od siebie, a nie tylko czerpać z niej korzyści na zasadzie "darmowych szkoleń". Forma wyrazu zależy natomiast od indywidualnych chęci, predyspozycji i możliwości. Zapewne znajdzie się ktoś, kto sobie pomyśli "kurcze, nie mam czasu na takie zabawy". Umiejętność organizowania sobie czasu to sprawa zależna od danej jednostki, jednak z mojego doświadczenia wynika, że w community często najbardziej angażują się osoby najbardziej obciążone różnym zadaniami (praca albo i dwie prace, działalność online, zlecenia itd.), gdyż najefektywniej zarządzają swoim czasem. Niejednokrotnie osoby, które nadmiernie narzekają na brak czasu, obiektywnie rzecz biorąc mają go pod dostatkiem, a ich osądy spowodowane są jednie mylnym odczuciem. Warto więc się zastanowić, czy czasem nie warto zrezygnować z obejrzenia durnego filmu w telewizji na rzecz zrobienia czegoś zawodowo pożytecznego dla siebie i przede wszystkich - dla innych.
Więcej informacji:
Obszar roboczy: 14. spotkanie PLSSUG Lublin
Microsoft udostępnił wersję CTP ( Community Technology Preview) SQL Server 2008 Servcie Pack 1 - zarówno do edycji Express, jak i do edycji płatnych. SP1 CTP nie nadaje się oczywiście do wdrożenia na produkcję, tylko do przyjrzenia się kierunkowi zmian/poprawek. Wersja builda po zainstalowaniu tego SP to 10.00.2520. Lista zmian nie jest imponująca, natomiast przydatną opcją może się okazać możliwość odinstalowywania Service Pack'ów i tzw. slipstream, czyli możliwość zintegrowania SP i hotfixów w jedną inicjalną instalację systemu SQL Server. SP1 CTP zawiera również hotfixy, które wydane zostały do momentu jego powstania oraz pewnie szereg zmian wewnętrznych, o których nigdy się nie dowiemy.
Więcej informacji i pobieranie:
Microsoft SQL Server Release Services: SQL Server 2008 Service Pack 1 (SP1) CTP
Download: SQL Server 2008 Express Edition Service Pack 1 - CTP
Download: SQL Server 2008 Service Pack 1 - CTP
Osoby, które znają na pamięć nazwy wszystkich widoków systemowych w SQL Server 2008 oraz wszystkie połączenia między nimi, mogą spokojnie zignorować ten post. Dla pozostałych mam natomiast dobrą wiadomość, gdyż od niedawna można sobie pobrać plakat, na którym rozrysowane są wszystkie ważniejsze widoki i funkcje systemowe (DMVs, DMFs, widoki katalogowe) wraz z pajęczyną ich relacji. Link do pobierania pliku pdf lub xps poniżej. Teraz przydałaby się tylko jakaś wielkoformatowa drukarka.
Więcej informacji i pobieranie:
Download: SQL Server 2008 System Views Map
|