SQL Server 2012 a język polski (część 1)

Język polski w SQL Server 2012

W  kwietniu nie można pominąć przewrotnie spraw dla Nas ważnych – spraw związanych z poszanowaniem Naszego polskiego języka.

W świecie IT swoistym “lingua franca” jest język angielski – developerzy, administratorzy, urządzenia porozumiewają się między sobą przedziwną mieszanką terminów angielskich (uwielbiane skrótowce), polskich (najczęściej całkowicie niezrozumiałych) oraz “polskawych” ( spolszczonych w sposób najprostszy poprzez dodanie końcówek osobowych do wyrazów angielskich). Taki slang tożsamy dla “świata IT”…. ;-)

Dotychczas SQL Server nie wiedział co to język polski…… i trzeba było sobie z tym radzić. Z punktu widzenia DBA – błędy jakimi platforma bazodanowa SQL Server zasypywała końcowego użytkownika , był problemem:

a) developera (powinien przechwycić błąd i potraktować użytkownika delikatniej, tłumacząc co należy zrobić, aby było dobrze)

b) użytkownika ( języków trzeba się uczyć – przecież w komunikacie błędu napisane jest wszystko)

To się chyba sprowadzało do tego, że użytkownik końcowy ( Information Worker – aby było wiadomo o jakim userze piszę) klikał ‘OK’ i już. Potem ewentualnie dzwonił do supportu.

Aby pokazać różnice przygotowałem następujące środowisko (SQL Server 2012 RTM oraz SQL Server 2008 RTM połączone przy użyciu Linked Server)

 

Dotychczas SQL Server “rozumiał” język polski jako zestaw ustawień lokalizacyjnych (określenie pierwszego dnia tygodnia, format daty, nazwy miesięcy, nazwy dni) – szczegóły oczywiście w Books On Line - sys.syslanguages (Transact-SQL). I to się nie zmieniło … ;-)

Lista języków systemowych w SQL Server 2012 powiększyła się o nowy język

SELECT sl.langid AS [LangId2012],
 sl.msglangid AS [MsLangId2012],
 sl.alias AS [Alias2012],
 sl.name AS [Name2012],
 sl1.langid AS [LangId2008],
 sl1.name AS [Name2008]
FROM sys.syslanguages sl
 LEFT JOIN [T61_TEST\SQL2008R2].master.sys.syslanguages sl1
 ON sl1.langid = sl.langid
ORDER BY sl.langid DESC

Lista języków systemowych w SQL Server 2012 oraz 2008

Komunikaty błędów w języku polskim to pierwsza nowość. Zobaczmy jakie języki pojawiły się w sys.messages w SQL Server 2012.

WITH JEZYKI
AS
(
 SELECT distinct
 sm.language_id AS [SQL2012Id],
 sm1.language_id AS [SQL2008Id],
 sl.name AS [SQL2012Name]
 FROM sys.messages sm
 LEFT JOIN [T61_TEST\SQL2008R2].master.sys.messages sm1
 ON sm1.language_id = sm.language_id
 LEFT JOIN sys.syslanguages sl
 ON sm.language_id = sl.msglangid
)
SELECT * FROM JEZYKI
ORDER BY SQL2008Id

 

SQL Server 2012 - nowe wiadomości w nowych językach

 

No i na koniec zadajmy ostatnie pytanie – Czy wszystkie języki mają taką samą ilość wiadomości ?

WITH Liczby
AS
(
 SELECT COUNT(m.message_id) AS [Ile], m.language_id
 FROM sys.messages AS m

 GROUP BY language_id
)
SELECT l.Ile, l.language_id, sl.name
FROM Liczby AS l
INNER JOIN sys.syslanguages AS sl ON sl.msglangid = l.language_id

SQL Server 2012 - Ilość wiadomości w różnych językach w sys.messages

Rezultat – trochę ograniczony (wynik jest zwracany dla 23 języków) – pokazuje, że każdy język ma równą ilość wiadomości systemowych….

SQL Server 2012 dla użytkowników posługujących się językiem polskim będą mieli “zrozumiałe” dla nich błędy ;-) . Dotychczas tylko nasze własne błędy(message_id>=50000) z określonym language_id =  1045 (język polski) mogły być wyświetlane dla użytkownika końcowego, pozostałe były wyświetlane w języku domyślnym dla instancji.

Tyle na tą chwilę – w kolejnej części – napiszę jakie zmiany zostały wprowadzone w silniku wyszukiwania pełnotekstowego (Full-Text Search) w kontekście języka polskiego.

SQL Server 2012 Error 25726

Podczas szkolenia SQL Server 2012 Developers Update w Pradze…. jak to zwykle bywa kiedy zbierze się znaczna grupa specjalistów SQL (właściwie z całej Europy) dotykamy nowości….

I czasami wpadamy na takie “kwiatki” jak poniżej:

Error 25726 … Upss – nie ma takiego w sys.messages…;-) Czyli wywołany został error 18054 – “no message for this error number was found”…..

Przy okazji – ciekawostka – w sys.messages i w sys.syslanguages znajdziecie język polski -ale nie wszyskie błędy w sys.messages są opisane po polsku – ale o tym będzie za chwilę….

SQL Server 2012 – Ścieżki Certyfikacyjne

Ścieżki certyfikacyjne SQL Server 2012

SQL Server 2012 jako jedna z pierwszych technologii doczekała się po kursach beta – lista tutaj - egzaminach beta (które były dostępne przez dwa ostatnie tygodnie); nowych ścieżek certyfikacyjnych.

Już wiadomo oficjalnie jak będą wyglądać poziomy certyfikacji i jakie egzaminy będzie trzeba zdać, aby je uzyskać. A mianowicie:

MCSA : SQL Server 2012 ( Microsoft Certified Solutions Associate )

 

MCSE : Data Platform ( Microsoft Certified Solutions Expert )

MCSE : Business Intelligence ( Microsoft Certified Solutions Expert )

 

Czyli łącznie 2 ścieżki certyfikacyjne, 7 egzaminów (z czego 3 wspólne na podstawowy poziom MCSA). Egzaminy zaplanowane są na połowę czerwca. Do końca lipca 2013 roku będzie można zdawać nadal egzaminy dla SQL Server 2008.

Dla posiadaczy MCTS oraz MCITP z SQL Server 2008 są przygotowywane egzaminy upgrade’ujące 70-457, 70-458 ( z MCTS do MCSA: SQL Server 2012), 70-459 ( do MCSE : Data Platform – posiadając zdane egzaminy 457 i 458) oraz 70-460 ( do MCSE : Business Intelligence – posiadając zdane egzaminy 457 i 458).

Egzaminy upgrade zaplanowane są na sierpień 2012. Więcej szczegółów na razie nie znam.

Polecam sprawdzać stronę : Microsoft Learning : MCSA SQL Server 2012

Są pewne rzeczy do zrobienia w tym roku…..

Ehhh – w życiu każdego geeka zawsze znajdzie się pewien temat, który z braku czasu (doba ma tylko 24 godziny, a ja jestem raczej śpiochem) odsuwa się…..

Dla mnie takim tematem jest przygotowanie się do:

http://sqlmcm.quickstart.com/microsoft_certified_master.aspx

MCM SQL Server 2008 – nie mówię że od razu za pierwszym razem zdać… dla mnie w samym pochłanianiu wiedzy, po to aby lepiej rozumieć środowisko SQL Server z jakim przychodzi mi się zmagać, poszukiwać i eksperymentować ….

Są wspaniałe materiały do czytania, zestaw video do obejrzenia, blogi obecnych MCMs … tylko czasu trochę mało….. A dodatkowo gdzieś z tyłu głowy mały figlarny diabełek mówi – o córkę dbaj i żonę… zamiast topić fundusze w poszukiwaniu oświecenia/władzy/wiedzy itd.

Masz dużo czasu idź przytul się do rodziny – odejdź od komputera…. SQL Server nie ucieknie …

Na rok 2012 niniejszym dopisuję do listy TODO – na samej górze -

SQL Server 2008 Microsoft Certified Master (MCM) Readiness Videos zagości na Twoim Laptopie/Ipadzie i będziesz to oglądał i labował w wolnych chwilach.

O napisane – dodane…. kibicujcie!

Jak napisałem publicznie – to wiem, że mam kilku wspieraczy, którzy przypomną mi, że mam jakieś “zobowiązanie”/wyzwanie podjęte …..

A to wszystko po to, aby pokazać sobie, że ‘Yes I can!’

SQL Server 2012 – Środowisko AlwaysOn (HADR)

SQL Server 2012 – Środowisko AlwaysOn (HADR)

Krok po kroku

Przez ostatni tydzień miałem wielką przyjemność szkolić grupę informatyków (La Mafia i Kasza Roooolez!!!) u naszego Klienta. Szkolenie 10775A : Administering Microsoft SQL Server 2012 Databases  zamieniło się po pierwszym dniu w szkolenie prowadzone na środowisku SQL Server 2012 HADR (AlwaysOn Availability Groups with Readable Secondaries) - na 5 node’ach.

Po wieczornym przygotowaniu środowiska, do którego potrzebujemy:

- 6 maszyn wirtualnych z systemem operacyjnym Windows Server 2008 R2 Enterprise

- 1 kontroler domeny

- 5 serwerów członkowskich z zainstalowanym SQL Server 2012 Enterprise ( pełne wsparcie dla HADR z 5 replikami) w wersji standalone server.

- komputer z 8Gb RAM (im więcej tym lepiej)

- dużą tablicę magnetyczną oraz komplet pisaków w różnych kolorach

- trochę kawy, ciastek oraz specjalistów IT żądnych wiedzy!!!!

- wieczorem złotego napoju przy którym myśli przepływają swobodniej (bo w końcu w ciągu jednego wieczora należy przygotować plan wdrożenia rozwiązania wysokiej dostępności opartym na kilku maszynach wirtualnych )…… i zrobić to jak najmniejszym nakładem sił i środków. Założenie planu było takie, że mogę “stracić” na konfigurację środowiska – wykonaną rękami kursantów od poziomu startowego – tylko 4 godziny (bo o 13 pojawiała się La Mafia!!! ). A potem trzeba wracać do zadań związanych z bazami danych.

- oczywiście w środowisku produkcyjnym powinniście mieć również odpowiednią ilość licencji ( ale o tym będzie tutaj później )

To wszystko mieliśmy na podorędziu: plan, ćmienie po myśleniu, potężne kilkunastordzeniowe serwery, dużą tablicę magnetyczną oraz wodę, dużo wody – niektórzy piją tylko wodę….;-).

Wykonanie krok po kroku:

- export maszyny wirtualnej z Hyper-V

- czterokrotny import maszyny do Hyper-V z kopiowaniem maszyny i duplikacją plików (tutaj przydaje się skrypt PowerShell, który zrobi to za nas) – ten etap zajął nam w sumie prawie godzinę

- rename maszyn w Hyper-V

- konfiguracja IP na interfejsach wirtualnych we wszystkich maszynach (przyjęto 10.10.0.0/16 , z AD: 10.10.0.10, SQL1-SQL5 – 10.10.0.11-15)

- przy zachowanej łączności ze względu na kopiowanie maszyn w Hyper-V należało, je odłączyć od AD, zmienić hostname, oraz ponownie podłączyć nowe serwery członkowskie domeny.

- zmiana nazwy instancji domyślnej SQL Server

sp_dropserver 'serwer1\instancja'
go
sp_addserver 'serwer2\instancja' ,local
go

I środowisko startowe mamy gotowe…;-)

Jeśli chcesz zacząć od nowa, to zainstaluj Windows Server 2008 R2 Enterprise na 6 serwerach , skonfiguruj AD oraz DNS na jednym z serwerów oraz podłącz pozostałe serwery do domeny jako serwery członkowskie.

SQL Server 2012 Enterprise należy zainstalować z wartościami domyślnymi jako serwer “standalone” – nie jako klaster SQL’owy.

 

Nasze środowisko wygląda teraz już tak:

 

SQL Server 2012 - Środowisko HADR AlwaysOn Availability Groups

 

Kolejne działania prowadzą do:

- utworzenia klastra bezzasobowego (w sensie bezdyskowego) – Node Majority Quorum

- konfiguracji instancji do współdziałania z uruchomionym klastrem

- utworzenia Availability Groups

Dobra – Let The Fun Begins!!!! ….. Ale o tym kolejnym razem…