Top Banner
Administrator z przypadku Jak działa SQL Server i jak o niego dbać Warsztaty Stacja.IT, Warszawa 09.09.2017.
61

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

Jan 22, 2018

Download

Education

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: "Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać

Administrator z przypadkuJak działa SQL Server i jak o niego dbać

Warsztaty Stacja.IT, Warszawa 09.09.2017.

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

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

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

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

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

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ć

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

Bartosz Ratajczyk

Konsultant SQL Server

Programista baz danych i aplikacji

Prelegent

Członek Komisji RewizyjnejData Community

MCSE: Data Platform, MCT

http://bartekr.net | [email protected]

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

Data CommunityPoland

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

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

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

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

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

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

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?

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

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

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

Microsoft Data Platform

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

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

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

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)

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

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

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

Bazy danych

Systemowe

master

msdb

tempdb

model

resource

Użytkownika

Każda inna baza danych

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

Edycje SQL Server

Edycje mogą się zmieniać wraz z kolejnymi wersjami SQL Server

Obecnie mamy trzy główne do wyboru:EnterpriseStandardExpress

Dodatkowe:DeveloperCompact

Wycofane:Business IntelligenceWeb

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

Garść narzędzi

SQL Server Management Studio (SSMS)SQL Server Data Tools (SSDT)SQL Server Configuration Manager (SSCM)Moduł PowerShell: sqlps / sqlserverDatabase Tuning Advisor (DTA)SQL Server ProfilerVisual Studio Code + rozszerzenie mssqlsqlcmdbcpmssql-scripter

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

Sql Server Configuration Manager

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

Baza danychJak wygląda?

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

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

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

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)

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

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

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

Struktury danych

HEAP (Sterta)

CLUSTERED INDEX (Indeks zgrupowany)

NONCLUSTERED INDEX (Indeks niezgrupowany)

COLUMNSTORE INDEX (Indeks kolumnowy)

MEMORY-OPTIMIZED

FILESTREAM

FILETABLE

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

ĆwiczenieUtworzenie bazy danych

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

• 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

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

Import i eksport danych

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

Dostępne metody

Import/Export Wizard

BULK INSERT

OPENROWSET (BULK)

bcp

SSIS

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

BULK INSERT

BULK INSERT DBAWorkshop.dbo.Sprzedaz

FROM 'D:\pliki\sprzedaz.txt'

WITH (

FIELDTERMINATOR = ';',

ROWTERMINATOR = '\r\n'

);

GO

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

OPENROWSET (BULK) – import do kolumn

INSERT INTO DBAWorkshop.dbo.Sprzedaz

SELECT *

FROM OPENROWSET (

BULK 'D:\pliki\sprzedaz.txt',

FORMATFILE = 'D:\formaty\sprzedaz.fmt'

) AS dane;

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

OPENROWSET (BULK) - BLOB

INSERT INTO DBAWorkshop.dbo.Sprawozdania(Rok, Dokument)

SELECT

2017 AS Rok,

*

FROM OPENROWSET(

BULK 'D:\pliki\Sprawozdanie2017.pdf’,

SINGLE_BLOB

) AS Dokument;

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

ĆwiczenieImport / eksport danych

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

• 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)

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

Model bezpieczeństwaNadawanie uprawnień

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

Model bezpieczeństwa

Principals - obiekty, którym nadajemy uprawnieniaSecurables – obiekty, do których nadajemy uprawnieniaPermissions – akcje, które Principal może wykonać na Securable

GRANT – nadawanie uprawnienia do obiektuDENY – zabranianie uprawnienia do obiektuREVOKE – cofnięcie wcześniej ustawionego uprawnienia

https://technet.microsoft.com/en-us/library/2009.05.sql.aspx

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

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

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

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

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

Podstawowe uprawnienia

SELECT

INSERT

UPDATE

DELETE

REFERENCES

CREATE

DROP

ALTER

EXECUTE

CONTROL

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

Przykłady

GRANT SELECT ON schema::sprzedaz TO HRUser;

DENY DELETE ON dbo.Users TO HRPrivilegedUser;

REVOKE EXECUTE ON sales.DailyReport FROM Robert;

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

ĆwiczeniaNadawanie uprawnień

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

• 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

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

Kopie zapasoweTworzenie i odtwarzanie

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

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:\backup\dbaworkshop.bak’

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

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

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

RPO i RTO

Recovery Point Objectivedo którego momentu musimy odtworzyć dane?

inaczej: ile danych możemy stracić?

Recovery Time Objectivejak długo możemy czekać na odtworzenie danych?

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

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

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

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 minutCodziennie 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

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

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:\backup\DBAWorkshop.bak’

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

ĆwiczenieKopie zapasowe i odtwarzanie

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

• 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

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

Automatyzacja codziennej pracySQL Server Agent

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

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

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

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)

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

Ćwiczenie końcoweSQL Server Agent

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

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.Sprzedazsą takie same.

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

Przydatne inne narzędziaKomercyjne i darmowe

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

Narzędzia komercyjne

IDERA: SQL Diagnostic Manager

Sentry One: SQL Sentry

RedGate: SQL Toolbelt

Quest: Spotlight

Dbwatch: dbwatch

ApexSQL: ApeSQL Monitor

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

Narzędzia darmowe

• dbatools / dbareports

• sqlserver (moduł PowerShell, Microsoft)

• Open Query Store

• Plan Explorer (SentryOne)

• SQL Search (RedGate)

• SSMSBoost

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

Ćwiczenie dodatkowedbatools

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

• Zainstaluj moduł dbatools

• Znajdź polecenie modułu sprawdzające informacje o ostatnich kopiach zapasowych na serwerze i je wykonaj

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

W sieci

sqlskills.com

brentozar.com

sqlperformance.com

simple-talk.com

sqlservercentral.com

https://nocolumnname.wordpress.com/community-scripts/

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

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.