Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać

275 views

Published on

Warsztaty z podstaw działania SQL Server. Stacja.IT 09.09.2017.

Published in: Education
  • Be the first to comment

  • Be the first to like this

"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać

  1. 1. Administrator z przypadku Jak działa SQL Server i jak o niego dbać Warsztaty Stacja.IT, Warszawa 09.09.2017.
  2. 2. Zanim zaczniemy Czy wszyscy mają dostęp do instancji SQL Server (lokalnie albo zdalnie)? Czy wszyscy mają zainstalowane: SQL Server Management Studio (opcjonalnie) PowerShell w wersji minimum 3.0 http://bartekr.net/ADM.StacjaIT.20170909/WarsztatyADM.zip
  3. 3. Plan dnia Poznamy platformę danych Microsoft, ale skoncentrujemy się na silniku bazy danych Zobaczymy z czego składa się instancja i jak jest zbudowana baza danych Wykonamy import danych do SQL Server, a potem je wyeksportujemy Poznamy model bezpieczeństwa i nadamy uprawnienia do obiektów bazy danych Zrobimy i odtworzymy kopie zapasowe baz danych Wykorzystamy SQL Server Agent do automatyzacji powtarzalnych czynności Poznamy narzędzia, z których warto skorzystać przy codziennej pracy
  4. 4. Dla kogo ten warsztat? Dla osób, które jeszcze nie znają albo słabo znają i dopiero zaczynają pracę z SQL Server Dla osób, które coś już robiły przy utrzymaniu bazy danych, ale nie czują się z tym pewnie, albo boją się czegoś ruszyć, żeby nie popsuć
  5. 5. Bartosz Ratajczyk Konsultant SQL Server Programista baz danych i aplikacji Prelegent Członek Komisji Rewizyjnej Data Community MCSE: Data Platform, MCT http://bartekr.net | b.ratajczyk@gmail.com
  6. 6. Data Community Poland Poprzednio: Polish SQL Server User Group (PLSSUG) Organizujemy comiesięczne spotkania osób, które chcą pogłębić swoją wiedzę z zakresu platformy danych Microsoft Jesteśmy w kilku miastach w Polsce (Warszawa, Wrocław, Kraków, Poznań, Katowice, Lublin, Bydgoszcz/Toruń, Gdańsk) Najbliższe spotkanie w Warszawie: 05.10.2017. datacomunity.pl meetup.com/plssug
  7. 7. SQL Saturday Katowice 15 – 16 września 2017 r. Miejsce: WSB, Chorzów 1 dzień warsztatów (Steph Locke, Mikael Wedham, Tomasz Libera, Hubert Kobierzewski) 1 dzień konferencji (8 prelegentów zagranicznych, 7 krajowych) Ceny: płatne warsztaty (600zł), darmowa sobota http://sqlsaturday.com/664 #SQLSatPoland
  8. 8. SQL Day 2018 14 – 16 maja 2018 r. Miejsce: Wrocław, Hala Stulecia 1 dzień warsztatów 2 dni konferencji Agenda będzie znana na początku 2018 roku Ceny: jeszcze nieznane http://sqlday.pl #SQLDay
  9. 9. O Was Jakie macie doświadczenie z SQL Server? Czy jest coś, czego najbardziej obawiacie się zrobić, żeby nie popsuć? Czy macie doświadczenie z innymi bazami danych?
  10. 10. Konstrukcja warsztatu 9:00 – 13:00 Pierwsza część warsztatów Ogólnie o SQL Server, tworzenie bazy, import/eksport danych Model bezpieczeństwa, nadawanie uprawnień 13:00 – 14:00 Pizza 14:00 – 17:00 Druga część warsztatów Kopie zapasowe, odtwarzanie po awarii, SQL Server Agent, SQL Server i PowerShell, monitorowanie, narzędzia pomocnicze
  11. 11. Microsoft Data Platform
  12. 12. SQL Server to nie tylko baza danych SSIS (ETL) SSRS (Raporty) SSAS (Analityka) Polybase (Hadoop) R Services MDS (zarządzanie danymi) DQS (jakość danych) FTS (wyszukiwanie pełnotekstowe) Replikacja Wysoka dostępność APS (przetwarzanie równoległe) Usługi w Azure
  13. 13. Zbliża się 30 lat 1.0 1989 (OS/2) 2005 2005 (Windows) 1.1 1990 (OS/2) 2008 2008 (Windows) 4.2 1992 (Windows) 2008R2 2010 (Windows) 4.21 1994 (Windows) 2012 2012 (Windows) 6.0 1995 (Windows) 2014 2014 (Windows) 6.5 1996 (Windows) 2016 2016 (Windows) 7.0 1998 (Windows) 2017 2017? (Windows, Linux) 2000 2000 (Windows)
  14. 14. Instalacja SQL Server Co to znaczy „mam zainstalowany SQL Server”? Każda instalacja SQL Server to tzw. INSTANCJA Instancje mogą być: domyślne (tylko jedna domyślna) nazwane (wiele nazwanych) Po co kilka instancji na jednym serwerze? Różne wersje silnika bazy danych Różne wymagania COLLATION Różne wymagania administracyjne
  15. 15. Bazy danych Systemowe master msdb tempdb model resource Użytkownika Każda inna baza danych
  16. 16. Edycje SQL Server Edycje mogą się zmieniać wraz z kolejnymi wersjami SQL Server Obecnie mamy trzy główne do wyboru: Enterprise Standard Express Dodatkowe: Developer Compact Wycofane: Business Intelligence Web
  17. 17. Garść narzędzi SQL Server Management Studio (SSMS) SQL Server Data Tools (SSDT) SQL Server Configuration Manager (SSCM) Moduł PowerShell: sqlps / sqlserver Database Tuning Advisor (DTA) SQL Server Profiler Visual Studio Code + rozszerzenie mssql sqlcmd bcp mssql-scripter
  18. 18. Sql Server Configuration Manager
  19. 19. Baza danych Jak wygląda?
  20. 20. Tworzenie bazy danych Zaczynamy od utworzenia bazy danych z jednym plikiem danych i plikiem logu Dodajemy grupy plików Dodajemy pliki do grup Dodajemy kolejne pliki logów * Ustawiamy model odzyskiwania Ustawiamy opcje * zazwyczaj wystarcza jeden plik logu
  21. 21. Log transakcyjny Przechowuje informacje o wszystkich zmianach w bazie danych Dane zapisywane sekwencyjnie Charakterystyka cykliczna Zanim dane trafią do pliku danych zapisywana jest informacja w logu Write Ahead Logging – najpierw do logu trafia opis zmian, a dopiero potem następują zmiany Wykorzystywany także w innych mechanizmach (np. CDC, log shipping, mirroring)
  22. 22. Plik danych Zawiera dane, indeksy, metadane Dane zapisywane na stronach, każda po 8KB 8 stron (ciągłych) tworzy extent Jeden główny plik danych (mdf) i pliki dodatkowe (ndf) Pliki danych przyporządkowujemy do grup (filegroups) Grupy plików mogą być ustawiane tylko do odczytu Jedna domyślna grupa plików
  23. 23. Struktury danych HEAP (Sterta) CLUSTERED INDEX (Indeks zgrupowany) NONCLUSTERED INDEX (Indeks niezgrupowany) COLUMNSTORE INDEX (Indeks kolumnowy) MEMORY-OPTIMIZED FILESTREAM FILETABLE
  24. 24. Ćwiczenie Utworzenie bazy danych
  25. 25. • Utwórz bazę danych DBAWorkshop zawierającą cztery grupy plików o nazwach FG00-FG03 • W każdej grupie utwórz po dwa pliki danych (na dowolnych dyskach) • Utwórz jeden plik logu transakcyjnego
  26. 26. Import i eksport danych
  27. 27. Dostępne metody Import/Export Wizard BULK INSERT OPENROWSET (BULK) bcp SSIS
  28. 28. BULK INSERT BULK INSERT DBAWorkshop.dbo.Sprzedaz FROM 'D:plikisprzedaz.txt' WITH ( FIELDTERMINATOR = ';', ROWTERMINATOR = 'rn' ); GO
  29. 29. OPENROWSET (BULK) – import do kolumn INSERT INTO DBAWorkshop.dbo.Sprzedaz SELECT * FROM OPENROWSET ( BULK 'D:plikisprzedaz.txt', FORMATFILE = 'D:formatysprzedaz.fmt' ) AS dane;
  30. 30. OPENROWSET (BULK) - BLOB INSERT INTO DBAWorkshop.dbo.Sprawozdania(Rok, Dokument) SELECT 2017 AS Rok, * FROM OPENROWSET( BULK 'D:plikiSprawozdanie2017.pdf’, SINGLE_BLOB ) AS Dokument;
  31. 31. Ćwiczenie Import / eksport danych
  32. 32. • Zaimportuj pliki: Sprzedawcy.txt, Sprzedaz.txt, Produkty.txt za pomocą omówionych wcześniej metod. Dla każdego z plików spróbuj wykorzystać inną metodę (Import/Export wizard, BULK INSERT, INSERT + OPENROWSET) • UWAGA: OPENROWSET wymaga utworzenia pliku formatu • Napisz widok, który będzie zawierał dane o sprzedaży, gdzie zamiast identyfikatora produktu będzie jego nazwa i cena oraz zamiast identyfikatora sprzedawcy będzie jego imię i nazwisko • Jeśli brakuje czasu – wykorzystaj kod z pliku 20_import.sql • Eksportuj wynik widoku do pliku Sprzedaz.csv za pomocą bcp (lub Import / Export Wizard – w zależności od dostępnego czasu)
  33. 33. Model bezpieczeństwa Nadawanie uprawnień
  34. 34. Model bezpieczeństwa Principals - obiekty, którym nadajemy uprawnienia Securables – obiekty, do których nadajemy uprawnienia Permissions – akcje, które Principal może wykonać na Securable GRANT – nadawanie uprawnienia do obiektu DENY – zabranianie uprawnienia do obiektu REVOKE – cofnięcie wcześniej ustawionego uprawnienia https://technet.microsoft.com/en-us/library/2009.05.sql.aspx
  35. 35. Dostęp Dostęp do instancji – LOGIN Dostęp do bazy danych – USER Mapujemy LOGIN instancji na użytkownika bazy danych (USER) Contained databases nie wymagają LOGINu LOGIN może być domenowy lub utworzony w instancji SQL Server
  36. 36. Uprawnienia Zasada najmniejszych uprawnień: dajemy dostęp tylko do tego, co jest wymagane Grupujemy uprawnienia w role – uproszczenie zarządzania Role mogą być utworzone dla instancji (Server Role) lub bazy danych (Database Role) Uprawnienia są dziedziczone
  37. 37. Podstawowe uprawnienia SELECT INSERT UPDATE DELETE REFERENCES CREATE DROP ALTER EXECUTE CONTROL
  38. 38. Przykłady GRANT SELECT ON schema::sprzedaz TO HRUser; DENY DELETE ON dbo.Users TO HRPrivilegedUser; REVOKE EXECUTE ON sales.DailyReport FROM Robert;
  39. 39. Ćwiczenia Nadawanie uprawnień
  40. 40. • Utwórz loginy Sprzedaz01 – Sprzedaz04, SprzedazManager • Loginy z uwierzytelnianiem SQL Server • Utwórz w bazie DBAWorkshop użytkowników o tych samych nazwach co loginy • Uruchom polecenia w pliku 30_uprawnienia.sql – utworzysz schemat sprzedaz, tabele, widoki i procedurę; nie przejmuj się, że będą puste • Nadaj uprawnienia SELECT do tabel w schemacie sprzedaz dla użytkowników Sprzedaz01 – Sprzedaz04 • W jaki sposób można to zrobić? Jak to zrobić najprościej? • Nadaj uprawnienia SELECT, UPDATE, INSERT, DELETE, EXECUTE do wszystkich obiektów w schemacie sprzedaz dla użytkownika SprzedazManager • Jak to zrobić najprościej? • Przetestuj poprawność rozwiązania logując się do nowych sesji jako Sprzedaz01 – Sprzedaz04, SprzedazManager
  41. 41. Kopie zapasowe Tworzenie i odtwarzanie
  42. 42. Kopia zapasowa (Backup) • Mocno zależy od ustalonego modelu odzyskiwania • Dotyczy plików danych, może dotyczyć logu transakcyjnego BACKUP DATABASE DBAWorkshop TO DISK = N’d:backupdbaworkshop.bak’
  43. 43. Model odzyskiwania (Recovery model) FULL – odtworzenie do dowolnego punktu w czasie, kopie zapasowe plików danych i logu SIMPLE – odtworzenie do momentu ostatniej kopii zapasowej, kopie zapasowe danych BULK LOGGED – pośredni między FULL i SIMPLE, kopie zapasowe plików danych i logu
  44. 44. RPO i RTO Recovery Point Objective do którego momentu musimy odtworzyć dane? inaczej: ile danych możemy stracić? Recovery Time Objective jak długo możemy czekać na odtworzenie danych?
  45. 45. Rodzaje kopii zapasowych PEŁNA (FULL) – kopia wszystkich danych RÓŻNICOWA (DIFFERENTIAL) – kopia wszystkich zmian od ostatniej PEŁNEJ kopii zapasowej LOGU TRANSAKCYJNEGO – kopia logu transakcyjnego (nie dotyczy SIMPLE recovery model) FILE, FILEGROUP, PARTIAL, TAIL-LOG, COPY-ONLY
  46. 46. Przykładowe polityki kopii zapasowych 1. Podstawowy (dla modelu SIMPLE): Codziennie o 18:00 pełna kopia zapasowa 2. Dla większych ilości danych (dla modelu SIMPLE) Co poniedziałek o 18:00 pełna kopia zapasowa Od wtorku do niedzieli o 18:00 kopia różnicowa 3. Dla modelu FULL z możliwością straty ostatnich 15 minut Codziennie o 18:00 pełna kopia zapasowa Między godziną 19:00 a 17:00 co godzina kopia różnicowa Co 15 minut kopia logu transakcyjnego
  47. 47. Odtwarzanie kopii zapasowych Odtworzenie pełnej kopii zapasowej może się składać z kilku etapów i obejmować kilka plików Jeśli odtwarzamy z kilku rodzajów, stosujemy opcję WITH NORECOVERY * * z kilkoma wyjątkami RESTORE DATABASE DBAWorkshop FROM DISK = N’C:backupDBAWorkshop.bak’
  48. 48. Ćwiczenie Kopie zapasowe i odtwarzanie
  49. 49. • Zrób pełną kopię zapasową bazy danych DBAWorkshop • Zrób dowolną modyfikację w danych w bazie • Zrób różnicową kopię zapasową do tego samego pliku, co wcześniejszą pełną kopię zapasową • Odtwórz kopię zapasową jako bazę DBAWorkshopKopia
  50. 50. Automatyzacja codziennej pracy SQL Server Agent
  51. 51. SQL Server Agent Oddzielna usługa instalowana wraz z silnikiem bazy danych Niedostępna dla wersji Express (chociaż widać w SSCM) Obsługuje cykliczne zadania do wykonania zgodnie z ustawionymi harmonogramami Powiadamia operatorów wysyłając alerty Może wykorzystywać konta proxy (pośredniczące) w różnych typach kroków
  52. 52. Zadanie (job) Zestaw kroków do wykonania Opcjonalnie z ustawionym harmonogramem Wysyła alerty i powiadomienia Może być uruchomiony na innym serwerze (w przypadku MSX)
  53. 53. Ćwiczenie końcowe SQL Server Agent
  54. 54. Utwórz job Zasilanie danych sprzedaży, który z pomocą polecenia BULK INSERT będzie zasilał plik Sprzedaz.txt do tabeli dbo.Sprzedaz w bazie DBAWorkshop codziennie o godzinie 03:12. Po zasileniu danych ma zostać wykonana kopia zapasowa pełna do katalogu dowolnego katalogu. Nowa kopia ma nie nadpisywać istniejących wcześniejszych backupów. Właścicielem joba ma być login DataLoader Utwórz wszystkie wymagane elementy (login, tabelę, polecenie SQL, harmonogram). Na koniec odtwórz bazę danych DBAWorkshop z kopii zapasowej jako DBAWorkshopRestore i sprawdź, czy dane w tabeli dbo.Sprzedaz są takie same.
  55. 55. Przydatne inne narzędzia Komercyjne i darmowe
  56. 56. Narzędzia komercyjne IDERA: SQL Diagnostic Manager Sentry One: SQL Sentry RedGate: SQL Toolbelt Quest: Spotlight Dbwatch: dbwatch ApexSQL: ApeSQL Monitor
  57. 57. Narzędzia darmowe • dbatools / dbareports • sqlserver (moduł PowerShell, Microsoft) • Open Query Store • Plan Explorer (SentryOne) • SQL Search (RedGate) • SSMSBoost
  58. 58. Ćwiczenie dodatkowe dbatools
  59. 59. • Zainstaluj moduł dbatools • Znajdź polecenie modułu sprawdzające informacje o ostatnich kopiach zapasowych na serwerze i je wykonaj
  60. 60. W sieci sqlskills.com brentozar.com sqlperformance.com simple-talk.com sqlservercentral.com https://nocolumnname.wordpress.com/community-scripts/
  61. 61. W najbliższym czasie w Stacja.IT Angular 4 pragmatycznie – Warszawa, 16.09.2017. Akademia trenera – Train the trainer – Kraków, 16.09.2017. Podstawy MongoDB – Kraków, 30.09.2017. Wprowadzenie do Machine Learning z wykorzystaniem języka Python – Warszawa, 30.09.2017.

×