SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Administrator z przypadku
Jak działa SQL Server i jak o niego dbać
Warsztaty Stacja.IT, Warszawa 09.09.2017.
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
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
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ć
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
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
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
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
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?
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
Microsoft Data Platform
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
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)
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
Bazy danych
Systemowe
master
msdb
tempdb
model
resource
Użytkownika
Każda inna baza danych
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
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
Sql Server Configuration Manager
Baza danych
Jak wygląda?
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
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)
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
Struktury danych
HEAP (Sterta)
CLUSTERED INDEX (Indeks zgrupowany)
NONCLUSTERED INDEX (Indeks niezgrupowany)
COLUMNSTORE INDEX (Indeks kolumnowy)
MEMORY-OPTIMIZED
FILESTREAM
FILETABLE
Ćwiczenie
Utworzenie bazy danych
• 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
Import i eksport danych
Dostępne metody
Import/Export Wizard
BULK INSERT
OPENROWSET (BULK)
bcp
SSIS
BULK INSERT
BULK INSERT DBAWorkshop.dbo.Sprzedaz
FROM 'D:plikisprzedaz.txt'
WITH (
FIELDTERMINATOR = ';',
ROWTERMINATOR = 'rn'
);
GO
OPENROWSET (BULK) – import do kolumn
INSERT INTO DBAWorkshop.dbo.Sprzedaz
SELECT *
FROM OPENROWSET (
BULK 'D:plikisprzedaz.txt',
FORMATFILE = 'D:formatysprzedaz.fmt'
) AS dane;
OPENROWSET (BULK) - BLOB
INSERT INTO DBAWorkshop.dbo.Sprawozdania(Rok,
Dokument)
SELECT
2017 AS Rok,
*
FROM OPENROWSET(
BULK 'D:plikiSprawozdanie2017.pdf’,
SINGLE_BLOB
) AS Dokument;
Ćwiczenie
Import / eksport danych
• 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)
Model bezpieczeństwa
Nadawanie uprawnień
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
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
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
Podstawowe uprawnienia
SELECT
INSERT
UPDATE
DELETE
REFERENCES
CREATE
DROP
ALTER
EXECUTE
CONTROL
Przykłady
GRANT SELECT ON schema::sprzedaz TO HRUser;
DENY DELETE ON dbo.Users TO HRPrivilegedUser;
REVOKE EXECUTE ON sales.DailyReport FROM Robert;
Ćwiczenia
Nadawanie uprawnień
• 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
Kopie zapasowe
Tworzenie i odtwarzanie
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’
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
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?
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
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
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’
Ćwiczenie
Kopie zapasowe i odtwarzanie
• 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
Automatyzacja codziennej pracy
SQL Server Agent
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
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)
Ćwiczenie końcowe
SQL Server Agent
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.
Przydatne inne narzędzia
Komercyjne i darmowe
Narzędzia komercyjne
IDERA: SQL Diagnostic Manager
Sentry One: SQL Sentry
RedGate: SQL Toolbelt
Quest: Spotlight
Dbwatch: dbwatch
ApexSQL: ApeSQL Monitor
Narzędzia darmowe
• dbatools / dbareports
• sqlserver (moduł PowerShell, Microsoft)
• Open Query Store
• Plan Explorer (SentryOne)
• SQL Search (RedGate)
• SSMSBoost
Ćwiczenie dodatkowe
dbatools
• Zainstaluj moduł dbatools
• Znajdź polecenie modułu sprawdzające informacje o ostatnich
kopiach zapasowych na serwerze i je wykonaj
W sieci
sqlskills.com
brentozar.com
sqlperformance.com
simple-talk.com
sqlservercentral.com
https://nocolumnname.wordpress.com/community-scripts/
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.

Weitere ähnliche Inhalte

Was ist angesagt?

マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Toshiaki Maki
 

Was ist angesagt? (20)

Hybrid Azure AD Join 動作の仕組みを徹底解説
Hybrid Azure AD Join 動作の仕組みを徹底解説Hybrid Azure AD Join 動作の仕組みを徹底解説
Hybrid Azure AD Join 動作の仕組みを徹底解説
 
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
 
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてAzure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
 
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
[Cloud OnAir] Google Networking Deep Dive ! その技術と設計の紹介 2018年8月9日 放送
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれ
 
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
 
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
 
AWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ Amazon VPCAWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ Amazon VPC
 
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
 
[SC02] シチュエーション別 Active Directory デザインパターン
[SC02] シチュエーション別 Active Directory デザインパターン[SC02] シチュエーション別 Active Directory デザインパターン
[SC02] シチュエーション別 Active Directory デザインパターン
 
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
 
Integrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and WilmaIntegrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and Wilma
 
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
 
20180706_VxRailCC_ワークショップ編_NW
20180706_VxRailCC_ワークショップ編_NW20180706_VxRailCC_ワークショップ編_NW
20180706_VxRailCC_ワークショップ編_NW
 
#idcon vol.29 - #fidcon WebAuthn, Next Stage
#idcon vol.29 - #fidcon WebAuthn, Next Stage#idcon vol.29 - #fidcon WebAuthn, Next Stage
#idcon vol.29 - #fidcon WebAuthn, Next Stage
 
【第1回EMS勉強会】Autopilot設計時のポイント
【第1回EMS勉強会】Autopilot設計時のポイント【第1回EMS勉強会】Autopilot設計時のポイント
【第1回EMS勉強会】Autopilot設計時のポイント
 
Laravelの検索機能の実装方法
Laravelの検索機能の実装方法Laravelの検索機能の実装方法
Laravelの検索機能の実装方法
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
Real Application Security (RAS) and Oracle Application Express (APEX)
Real Application Security (RAS) and Oracle Application Express (APEX)Real Application Security (RAS) and Oracle Application Express (APEX)
Real Application Security (RAS) and Oracle Application Express (APEX)
 

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

Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja Bazy
Przemysław ...
 
VirtualStudy.pl - Czwartki z BI - Reporting Services
VirtualStudy.pl - Czwartki z BI - Reporting ServicesVirtualStudy.pl - Czwartki z BI - Reporting Services
VirtualStudy.pl - Czwartki z BI - Reporting Services
SSAS.PL
 
Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005
Tomasz Cieplak
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz
 
SQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data CaptureSQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data Capture
Kamil Nowinski
 

Ähnlich wie "Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać (20)

Podstawy ETL z SSIS
Podstawy ETL z SSISPodstawy ETL z SSIS
Podstawy ETL z SSIS
 
Struktura i własności systemu zarządzania treścią Drupal
Struktura i własności systemu zarządzania treścią DrupalStruktura i własności systemu zarządzania treścią Drupal
Struktura i własności systemu zarządzania treścią Drupal
 
Microsoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 roku
 
Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja Bazy
 
SQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracjiSQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracji
 
Czwartki z bi - Reporting Services - podstawy
Czwartki z bi - Reporting Services - podstawyCzwartki z bi - Reporting Services - podstawy
Czwartki z bi - Reporting Services - podstawy
 
VirtualStudy.pl - Czwartki z BI - Reporting Services
VirtualStudy.pl - Czwartki z BI - Reporting ServicesVirtualStudy.pl - Czwartki z BI - Reporting Services
VirtualStudy.pl - Czwartki z BI - Reporting Services
 
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
 
Sql Dla Administratora i Dewelopera
Sql Dla Administratora i DeweloperaSql Dla Administratora i Dewelopera
Sql Dla Administratora i Dewelopera
 
Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005
 
Maintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_Znienacka
 
Bazy danych w Drupalu 7. Przygotowanie tabeli przechowującej wpisy chatu
Bazy danych w Drupalu 7. Przygotowanie tabeli przechowującej wpisy chatuBazy danych w Drupalu 7. Przygotowanie tabeli przechowującej wpisy chatu
Bazy danych w Drupalu 7. Przygotowanie tabeli przechowującej wpisy chatu
 
[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
 
SQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data CaptureSQLDay 2014 - Change Tracking & Change Data Capture
SQLDay 2014 - Change Tracking & Change Data Capture
 
Roman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychRoman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danych
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
Zautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSISZautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSIS
 
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
 

Mehr von Bartosz Ratajczyk

Mehr von Bartosz Ratajczyk (14)

SQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze kroki
 
OLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fast
 
Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?
 
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
 
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
 
Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99
 
XML w SQL Server w praktyce
XML w SQL Server w praktyceXML w SQL Server w praktyce
XML w SQL Server w praktyce
 
Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?
 
Operacje minimalnie logowane
Operacje minimalnie logowaneOperacje minimalnie logowane
Operacje minimalnie logowane
 
Po co mi Temporal Tables?
Po co mi Temporal Tables?Po co mi Temporal Tables?
Po co mi Temporal Tables?
 
Co to te CTE?
Co to te CTE?Co to te CTE?
Co to te CTE?
 
O co chodzi z FILESTREAM?
O co chodzi z FILESTREAM?O co chodzi z FILESTREAM?
O co chodzi z FILESTREAM?
 
Alerty WMI
Alerty WMIAlerty WMI
Alerty WMI
 
Czy mi się przyda hierarchyid?
Czy mi się przyda hierarchyid?Czy mi się przyda hierarchyid?
Czy mi się przyda hierarchyid?
 

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

  • 1. Administrator z przypadku Jak działa SQL Server i jak o niego dbać Warsztaty Stacja.IT, Warszawa 09.09.2017.
  • 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. 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. 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. 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. 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. 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. 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. 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. 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
  • 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. 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. 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
  • 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. 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
  • 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. 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. 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. Struktury danych HEAP (Sterta) CLUSTERED INDEX (Indeks zgrupowany) NONCLUSTERED INDEX (Indeks niezgrupowany) COLUMNSTORE INDEX (Indeks kolumnowy) MEMORY-OPTIMIZED FILESTREAM FILETABLE
  • 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
  • 27. Dostępne metody Import/Export Wizard BULK INSERT OPENROWSET (BULK) bcp SSIS
  • 28. BULK INSERT BULK INSERT DBAWorkshop.dbo.Sprzedaz FROM 'D:plikisprzedaz.txt' WITH ( FIELDTERMINATOR = ';', ROWTERMINATOR = 'rn' ); GO
  • 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. OPENROWSET (BULK) - BLOB INSERT INTO DBAWorkshop.dbo.Sprawozdania(Rok, Dokument) SELECT 2017 AS Rok, * FROM OPENROWSET( BULK 'D:plikiSprawozdanie2017.pdf’, SINGLE_BLOB ) AS Dokument;
  • 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)
  • 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. 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. 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
  • 38. Przykłady GRANT SELECT ON schema::sprzedaz TO HRUser; DENY DELETE ON dbo.Users TO HRPrivilegedUser; REVOKE EXECUTE ON sales.DailyReport FROM Robert;
  • 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
  • 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. 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. 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. 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. 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. 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’
  • 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
  • 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. 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)
  • 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.
  • 56. Narzędzia komercyjne IDERA: SQL Diagnostic Manager Sentry One: SQL Sentry RedGate: SQL Toolbelt Quest: Spotlight Dbwatch: dbwatch ApexSQL: ApeSQL Monitor
  • 57. Narzędzia darmowe • dbatools / dbareports • sqlserver (moduł PowerShell, Microsoft) • Open Query Store • Plan Explorer (SentryOne) • SQL Search (RedGate) • SSMSBoost
  • 59. • Zainstaluj moduł dbatools • Znajdź polecenie modułu sprawdzające informacje o ostatnich kopiach zapasowych na serwerze i je wykonaj
  • 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.

Hinweis der Redaktion

  1. Co oznacza, kiedy mówimy że mamy SQL Server? Kiedy instalujemy poszczególne komponenty SQL Server wybieramy składniki wspólne (Shared components) jak i odrębne (instances). Każda instalacja SQL Server to odrębna instancja.
  2. Oprócz wymienionych jest także APS (dawniej PDW) – dedykowane rozwiązanie do równoległego przetwarzania wielkich ilości danych
  3. Plik zawiera instrukcje, które w bazie danych DBAWorkshop utworzą tabelę z danymi. Potem następuje sekwencja poleceń do oglądania danych i metadanych.
  4. Pomijanie X pierwszych wierszy: FIRSTROW = Y (Y = X – 1)
  5. https://social.technet.microsoft.com/wiki/contents/articles/11842.sql-server-database-engine-permission-posters.aspx