Administracja baza danych Microsoft SQL Server 5dni

From Training Material
Jump to navigation Jump to search
  1. footer-places { display: none; }

Agenda ⌘

  • Wprowadzenie do administracji bazami danych serwera SQL 
  • Instalacja i konfiguracja serwera SQL
  • Praca z bazami danych i storage-m
  • Planowanie i wdrażanie strategii wykonywania kopii zapasowych
  • Przywracanie baz danych serwera SQL
  • Importowanie i eksportowanie danych

Agenda ⌘

  • Monitorowanie serwera SQL
  • Śledzenie aktywności serwera SQL
  • Zarządzanie bezpieczeństwem serwera SQL
  • Audyt dostępu do danych i szyfrowania danych
  • Wykonywanie bieżącej konserwacji bazy danych
  • Automatyzacja zarządzania serwera SQL
  • Monitorowanie SQL Server przy użyciu alertów i powiadomień


MODUŁ I :
Wprowadzenie do administracji Microsoft SQL Server ⌘


  • Przegląd zadań administratora baz danych
  • Wprowadzenie do platformy SQL Server
  • Narzędzia i techniki zarządzania bazą danych

Przegląd zadań administratora ⌘

  • instalacja,
  • konfiguracja,
  • monitoring,
  • troubleshooting,
  • patching – product life cycle, 
  • development,
  • backup,
  • restore

Edycje SQL Serwer ⌘


  • Enterprise
  • Standard
  • Web
  • Express
  • Developer*

https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2016?view=sql-server-2017

SQL Server Developer ⌘

  • Developers Edition od SQL 2016 nie wymaga licencji
  • Posiada taka samie funkcjonalności jak wersje Enterprise
  • Nie może być użyta na Serwerach Produkcyjnych

Wersje SQL Serwer ⌘


  • Select @@version
  • SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel')
  • Configuration Manager

https://sqlserverbuilds.blogspot.com/


Usługi SQL Server ⌘

  • Database Services
  • Analysis Services
  • Reporting Services
  • Intergration Services

Database Services ⌘

W skład SQL Server Database Services wchodzi:

  1. Database engine
  2. Replication
  3. Full-Text search

Analysis Services ⌘

Inaczej "Hurtownie Danych"

Zastosowanie:

  1. Przetwarzanie analityczne danych
  2. Wspomaganie decyzji
  3. Centralizacja danych
  4. Archiwizacja

Reporting Services ⌘


Zastosowanie:

  1. Tworzenie
  2. Zarządzanie
  3. Przedstawianie raportów
  4. Report Manager

Intergration Services ⌘


1. Zbiór narzędzi do zarządzania zbiorami w procesie ETL

 ETL - Extract, Transform , Load ( wydobywanie, przetwarzanie, ładowanie )

2. Wykonywanie innych zadań

MODUŁ II :
Instalacja i konfiguracja SQL Server ⌘


  • Planowanie instalacji SQL Server
  • Instalacja SQL Server
  • Konfiguracja po instalacyjna

Planowanie instalacji ⌘

  • Wymagania sprzętowe i software'owe
Komponent Wymagania minimalne
Procesor   1.4 GHz
RAM   1 GB
Dostępne miejsce HDD   6 GB
System operacyjny   Windows 8, Windows Server 2012
  • Licencjonowanie
  • Instalacja

Licencjonowanie SQL Server ⌘

  • Od SQL 2012 licensjonownaie jest zalezne od liczby vCPU
  • Enterprise $$$ ~ 4 x Standard $$$
  • Licencje sprzedawane w paczkach , 1 paczka = 2 licencje
  • 4 vCPU jest minimum
  • Software assurance
  • Standalone czy Cluster

Instalacja SQL Server Management Studio ⌘

  • Od SQL 2016 oddzielny produkt
  • Okresowe "release'y"

Instalacja SQL Server ⌘

  • Instalacja manualna
  • Instalacja "automatyczna" -> configurationFile.ini

Konfiguracja serwera SQL ⌘

  • Instalacja Service Pack, Cumulative Update, Hotfix
  • Konfiguracja własciwosci Serwera
  • Konfiguracja portów i protokołow
  • Konfiguracja bezpieczeństwa
  • Konfiguracja domyślnych ustawień baz danych
  • Konfiguracja TempDB
  • Konfiguracja kopii zapasowych

MODUŁ III :
Praca z bazami danych i ich przechowywaniem ⌘


  • Wprowadzenie do składowania danych w serwerze SQL
  • Omówienie ustawień baz
  • Omówienie baz systemowych
  • Zarządzanie storage-m baz danych systemowych
  • Zarządzanie storage-m baz danych użytkowników
  • Przenoszenie plików bazy danych
  • Konfiguracja rozszerzenia puli bufora

Składowanie danych w serwerze SQL ⌘

  • Pliki MDF, NDF, LDF
  • MDF - główny plik z danym SQL
  • NDF - dodatkowy plik z danym SQL
  • LDF - plik logu transakcyjnego

Zasada działania logu transakcyjnego ⌘

  • Zapis sekwencyjny
  • TYLKO jeden plik logu transakcyjnego dla bazy danych
  • VLFs:
Wzrost - "Growth" Liczba VLF
mniej lub równe 64 MB   4
pomiędzy 64 MB i 1 GB   8
więcej niż 1 GB   16

Omówienie ustawień baz ⌘

  • Owner
  • Autogrowth vs stały rozmiar
  • Auto Create & Auto Update Statistics

Omówienie baz systemowych ⌘


  • master
  • model
  • msdb
  • tempdb


Master ⌘

  • najważniejsza baza
  • zapisywana jest w niej konfiguracja SQL Servera – informacje o:
obiektach systemowych
loginach
lokalizacji poszczególnych plików
podpiętych bazach użytkownika

Model ⌘

  • Baza wzorcowa dla innych baz danych
  • każda nowa baza danych jest kopią bazy model
  • możliwa modyfikacja, która wpłynie na tworzone w przyszłości bazy

Msdb ⌘

  • Baza pomocnicza wykorzystywana przez SQL Server Agenta
  • Zawiera informacje o:
job'ach
backup'ach
historię wykonywanych jobów, backup'ów i restore'ów

Tempdb ⌘


  • Baza tymczasowa
  • Tworzona jest na nowo po każdym restarcie usługi
  • Oddzielny szybki dysk
  • Utworzenie tylu plików ile jest procesorów
  • Zawiera obiekty tymczasowe:
tabele
kursory
różne obiekty tworzone wewnętrznie przez SQLa


Zarządzanie storage-m baz danych użytkowników ⌘

  • Tworzenie bazy danych
  • Zmiana ustawień
  • Przenoszenie plików bazy danych użytkownika

Zarządzanie storage-m baz systemowych ⌘

  • Przenoszenie baz systemowych: MSDB, Model i TEMPDB
  • Przenoszenie bazy MASTER*
  • Zalecenia dla bazy TEMPDB, liczba plików vs vCPU

Konfiguracja rozszerzenia puli bufora ⌘

Rozszerzenie 'Buffer Pool' jest korzystne, gdy spełnione są następujące warunki:

  • Operacjie OLTP z dużą ilością odczytów.
  • Serwer bazy danych zawiera do 32 GB RAM
  • Dysk SSD

demo

MODUŁ IV :
Planowanie i wdrażanie strategii
wykonywania kopii zapasowych ⌘




  • zrozumienie modeli odzyskiwania serwera SQL
  • planowanie strategii tworzenia kopii zapasowych
  • tworzenie kopii zapasowych baz danych i logów transakcji
  • korzystanie z opcji tworzenia kopii zapasowych
  • zapewnienie wiarygodności kopii zapasowej

Modele odzyskiwania w SQL Serwer ⌘


Z ang."Recovery Model"

  • Simple
  • Full
  • Bulk logged


Modele odzyskiwania

Recoverymodel.jpg

Kopie zapasowe ⌘


  • Full
  • Differential
  • Transaction log


Pełna kopia bazy danych ⌘

Full Database Backup

BACKUP DATABASE master TO 
DISK = 'D:\Program Files\Microsoft SQL Server\Mssql\Backup\master.bak'

Zawiera wszystkie informacje zapisane zarówno w plikach bazy danych (strukturę obiektów bazodanowych oraz dane tabel i indeksów),

jak i w plikach dziennika transakcyjnego - tu tylko dane z aktywnej części dziennika.

Pełna kopia bazy danych ⌘

  • Pełna nazwa, jak sama nazwa wskazuje, tworzy kopię zapasową wszystkiego.
  • To podstawa każdego rodzaju kopii zapasowej!
  • Jest to kompletna kopia, która przechowuje wszystkie obiekty bazy danych: tabele, procedury, funkcje, widoki, indeksy oraz DANE
  • Mając pełną kopię zapasową, będziesz mógł łatwo przywrócić bazę danych w dokładnie takiej samej formie, jak w momencie tworzenia kopii zapasowej.

Przyrostowa kopia bazy danych ⌘

Differential Database Backup

BACKUP DATABASE Northwind TO 
disk='D:\Program Files\Microsoft SQL Server\Mssql\Backup\Northwind_diff.BAK' WITH DIFFERENTIAL

Do pliku przyrostowej kopii bazy danych zostaną zapisane wszystkie dane,
które zostały zmodyfikowane od czasu wykonania ostatniej pełnej kopii bazy danych.

Kopia dziennika transakcyjnego ⌘

Transaction Log Backup

BACKUP LOG Northwind TO 
disk='D:\Program Files\Microsoft SQL Server\Mssql\Backup\Northwind_log.TRN' 

SQL Server do pliku kopii dziennika transakcyjnego zapisuje wszystkie wpisy z dziennika danej bazy danych.
Plik kopii dziennika transakcyjnego jest bezużyteczny bez aktualnego pliku pełnej kopii tej bazy danych.

*ćwiczenie

Zapewnienie wiarygodności kopii zapasowej ⌘

  • Mirrored Backup - Enterprise Edition Only
  • Opcja WITH CHECKSUM
  • Weryfikacja Backupu - VERIFY ONLY

Zapewnienie wiarygodności kopii zapasowej ⌘

Kopia zapasowa z opcja WITH CHEKSUM sprawdza sumę kontrolną na każdej stronie podczas tworzenia kopii zapasowej, a następnie na końcu kopii zapasowej oblicza sumę kontrolną całej kopii i zapisuje ją w pliku kopii zapasowej.

Opcja VERIFY ONLY wykonuje TYLKO weryfikacje ( nie odtwarzanie ! ) po zakończeniu tworzenia kopii zapasowej, która w przypadku kopii zapasowej wykonanej bez sumy kontrolnej sprawdza jedynie poprawność nagłówka pliku kopii zapasowej.

Jeśli kopia zapasowa została wykonana przy pomocy CHECKSUM,
wówczas RESTORE VERIFY ONLY ponownie oblicza sumę kontrolną dla pliku kopii zapasowej i porównuje ją z zapisaną w pliku.

Planowanie strategii kopii zapasowych ⌘

  • WORD Document

MODUŁ V :
Przywracanie baz danych serwera SQL ⌘


  • zrozumienie procesu przywracania
  • przywracanie baz danych
  • zaawansowane scenariusze przywracania baz danych
  • praca z przywracaniem do „punktu w czasie”

Odtwarzanie Bazy Danych ⌘

Restore.JPG

Odtwarzanie Bazy Danych ⌘

Restore bazy.JPG

Przywracanie baz danych ⌘

  • Odtwarzanie bazy w zależności od Modelu odtwarzania: Simple Vs Full
  • Proces odtwarzania bazy ZAWSZE zaczynamy od Full Backup'u.
  • Restore:

a) With Recovery
b) With Norecovery
c) With StandBy

Różne scenariusze przywracania baz danych ⌘

  • Full
  • Full + Transaction Log
  • Full + Differenital + Transaction Log

Odtwarzanie baz Systemowych ⌘

  • Master
  • Trace Flag
  • SQL Server in Single Mode

Praca z przywracaniem do „punktu w czasie” ⌘

  • "Point in time recovery"
  • Tylko w Full Recovery Model'u
  • Opcja przywracania STOPAT.
  • Opcja przywracania STOPATMARK.

Demo

MODUŁ VI :
Importowanie i eksportowanie danych SQL ⌘


  • Wprowadzenie do przesyłania danych
  • Importowanie i eksportowanie danych tabelarycznych
  • Kopiowanie lub przenoszenie bazy danych

Wprowadzenie do przesyłania danych ⌘

  • SQL Server Import and Export Wizard, 
  • Bulk Copy Program (bcp),
  • BULK INSERT,
  • OPENROWSET (BULK)

Bulk Copy Program (bcp) ⌘


  • Narzędzie Bulk Copy Program (bcp) kopiuje dane między Instancją SQL Server a plikiem danych w formacie określonym przez użytkownika.
  • Za pomocą narzędzia BCP można importować dużą liczbę nowych wierszy do tabel programu SQL Server lub eksportować dane z tabel do plików danych.
  • Dostępne we wszystkich wersjach SQL Server (również Express).
  • Jest jedną z najbardziej wydajnych (najszybszych) metod przenoszenia danych pomiędzy bazą danych a systemem plików

BULK INSERT ⌘


  • BULK INSERT to rozszerzenie języka T-SQL, funkcjonalny odpowiedniki narzędzia bcp z parametrem in.
  • Służy do szybkiego, masowego importu danych z pliku tekstowego do istniejącej tabeli w bazie danych.
  • Idealnie nadaje się więc do zadań automatycznych np SQL joby, procedury składowane, czy skrypty adhoc, które mają na celu import danych z plików tekstowych do bazy.


OPENROWSET ⌘


  • OPENROWSET jest alternatywą dla Linked Servers.
  • Korzystając z funkcji OPENROWSET, możemy pobierać dane z dowolnych źródeł danych, które obsługują zarejestrowanego dostawcę OLEDB, takich jak zdalne wystąpienie SQL Server, Microsoft Access, plik Excel, plik tekstowy lub plik CSV.
  • Jest to funkcja tabelaryczna, zwracająca w wyniku zbiór wierszy, który możemy traktować jak zwykłą tabelę.
  • Koniecznośc właczenia ustawień zaawansowanych: 'show advanced options'
  • Trudny w diagnostyce błędów

Importowanie i eksportowanie danych tabelarycznych ⌘


  • Demo & Ćwiczenia

Kopiowanie lub przenoszenie bazy danych ⌘

  • Detach / Attach
  • Backup / Restore
  • Kreator


*cwiczenie

MODUŁ VII :
Monitorowanie serwera SQL ⌘


  • Wprowadzenie do monitorowania serwera SQL
  • Dynamiczne widoki i funkcje zarządzania
  • Monitor wydajności
  • Śledzenie aktywności obciążenia serwera SQL
  • Korzystanie z trace-ów

Monitorowanie i śledzenie aktywności serwera SQL ⌘

  • Activity Monitor
  • DMVs
  • Extended events
  • Performance Dashboard Reports
  • Performance Monitor + PAL
  • Data Collector
  • SQL Server Profiler

Activity Monitor ⌘

  • Monitor aktywności programu SQL Server to narzędzie programu SQL Server Management Studio,
    która wyświetla informacje o procesach programu SQL Server i ich wpływie na wydajność programu SQL Server.
  • Potrzebne uprawnienia VIEW SERVER STATE

demo

DMV ⌘

DMV oznacza Dynamic Management View. Funkcje DMV polegają na zwracaniu informacji o stanie serwera,
które mogą być wykorzystane do monitorowania stanu instancji serwera, diagnozowania problemów i dostrajania wydajności.


DMV - przykłady ⌘

  • sys.dm_exec_cached_plans - Plany zapytań w pamięci podręcznej
  • sys.dm_exec_sessions - Sesje w SQL Server
  • sys.dm_exec_connections - Połączenia z SQL Server
  • sys.dm_db_index_usage_stats - wykorzystanie indeksów
  • sys.dm_io_virtual_file_stats - statystyki IO dla plików baz danych

DMV - przykłady ⌘

  • sys.dm_tran_active_transactions - Stan transakcji dla instancji SQL
  • sys.dm_exec_sql_text - Zwraca kod TSQL
  • sys.dm_exec_query_plan - Zwraca plan zapytań
  • sys.dm_os_wait_stats - Zwraca informacje o zasobach, na które czeka SQL
  • sys.dm_os_performance_counters - Zwraca liczniki monitora wydajności

demo

Extended events ⌘

  • "Extended events" to lekki silnik zdarzeń, który ma bardzo niewielki wpływ na obciążenie monitorowanego silnika bazy danych.
  • Mechanizm "Extended events" jest odpowiedzialny za przechwytywanie określonego zdarzenia,
    na przykład zakończenia wykonywania instrukcji SQL, zapisanie danych do pliku dziennika transakcyjnego czy wystąpienie zakleszczenia (deadlock ).
  • Informacje opisujące zdarzenia są zbierane w ramach sesji XE i mogą być zapisane w pamięci lub plikach.
  • XEvent Profiler - szybki i konfigurowalny podgląd na żywo Extended Events

demo

Performance Dashboard Reports ⌘

  • Zaprojektowane w celu zapewnienia szybkiego wglądu w stan wydajności programu SQL Server
  • CPU bottlenecks (zapytania mające duże wykorzystanie CPU )
  • I/O bottlenecks (zapytania mające duże wykorzystanie operacji I/O)
  • Rekomendacje do indeksów
  • Blokowanie
  • Spór o zasoby

demo

Performance Monitor ⌘

  • Wbudowane narzędzie systemu operacyjnego Windows
  • Monitoruje różne działania na komputerze, takie jak użycie procesora lub pamięci.
Nazwa "countera" Wykorzystanie
SQLServer:<object name> Instancja domyślna
MSSQL$<instance>:<object > Instancja nazwana
SQLAgent$<instance >:<object > SQL Server Agent

"Countery" do monitorowania SQL Serwera ⌘

  • Processor(_Total)\% Processor Time
  • PhysicalDisk(_Total)\Avg. Disk sec/Read
  • PhysicalDisk(_Total)\Avg. Disk sec/Write
  • System\Processor Queue Length
  • SQLServer:Buffer Manager\Buffer cache hit ratio
  • SQLServer:Buffer Manager\Page life expectancy

demo

Performance Analysis of Logs (PAL)⌘

  • Narzędzie PAL (Performance Analysis of Logs) odczytuje i analizuje performance countery.
  • PAL generuje raport oparty na HTML, który graficznie przedstawia wykresy dla performance counter'ów

demo

Data Collector ⌘

  • Moduł do gromadzenia danych dotyczących aktywności i wydajności SQL Serwer.
  • Wykorzystanie wbudowanej Hurtowni danych
  • Gotowe raporty do analizy SQL Serwera

http://www.sqlcoffee.com/SQLServer2008_0009.htm
demo

SQL Server Profiler ⌘

  • Interfejs do śledzenia zdarzeń .
  • Zapisanie do pliku pozwala na późniejsze odtworzenie serii zdarzeń.
  • SQL Profiler ma status "deprecated" ( przestarzałe, nierozwijane i może być usunięte w kolejnej wersji )

demo

MODUŁ VIII :
Zarządzanie bezpieczeństwem serwera SQL ⌘


  • Wprowadzenie do bezpieczeństwa serwera SQL
  • Zarządzanie bezpieczeństwem na poziomie serwera
  • Zarządzanie bezpieczeństwem na poziomie bazy danych
  • Zarządzanie uprawnieniami w bazie danych

Wprowadzenie do bezpieczeństwa serwera SQL ⌘

  • Tworzenie kont: Active Directory , SQL Login
  • Schematy
  • Tworzenie ról
  • Konto SA
  • Role Serwerowe
  • Role bazodanowe

Konto SA ⌘

  • Konto „sa” jest dobrze znanym kontem SQL Server i służy jako domyślne konto administracyjne do SQL Server.
  • Hasło SA jest używane tylko podczas instalacji i migracji.
  • Wg zaleceń ( best practise ) nazwa powinna być zmieniona ponieważ to konto jest często "atakowane".


Zarządzanie bezpieczeństwem na poziomie serwera ⌘

Role Serwerowe

  • bulkadmin -> może używać polecenia BULK INSERT.
  • dbcreator -> może tworzyć, zmieniać, usuwać i przywracać dowolną bazę danych.
  • diskadmin -> rola służy do zarządzania plikami dyskowymi
  • processadmin -> może zakończyć procesy uruchomione w instancji SQL Server.
  • securityadmin -> zarządza loginami i ich właściwościami, może resetować hasło.
  • serveradmin -> może zmienić konfigurację SQL serwera jak i zatrzymać usługę.
  • setupadmin -> może dodawać i usuwać połączone serwery za pomocą instrukcji T-SQL
  • sysadmin -> może wykonywać dowolne czynności na serwerze.
  • public -> Każde login SQL Server należy do roli public.


Zarządzanie bezpieczeństwem na poziomie bazy danych ⌘

Role bazodanowe. W przeciwieństwie do ról serwerowych, możliwe jest tworzenie własnych ról bazodanowych.

  • db_accessadmin -> może dodawać lub usuwać dostęp do bazy danych dla loginów Windows, grup Windows i loginów SQL Server
  • db_backupoperator -> może wykonać kopię zapasową bazy danych.
  • db_datareader -> może odczytać wszystkie dane ze wszystkich tabel użytkowników.
  • db_ddladmin -> może uruchomić dowolną komendę DDL (Data Definition Language) w bazie danych.
  • db_datawriter -> może dodawać, usuwać lub zmieniać dane we wszystkich tabelach użytkowników.

Role bazodanowe cz.II ⌘


  • db_denydatareader -> nie może odczytać żadnych danych w tabelach użytkowników w bazie danych.
  • db_denydatawriter -> nie może dodawać, modyfikować ani usuwać żadnych danych w tabelach użytkowników w bazie danych.
  • db_owner -> może wykonywać wszystkie czynności związane z konfiguracją i konserwacją bazy danych, a także usuwać bazę danych
  • db_securityadmin -> może modyfikować członkostwo w rolach i zarządzać uprawnieniami
  • public -> użytkownik dziedziczy uprawnienia przyznane publicznie na danym obiekcie.
    Użytkownicy bazy danych nie mogą zostać usunięci z roli publicznej

Schematy ⌘


  • Obiekty, które zawierają obiekty innych typów ( np.tabele,procedury)
  • Uproszczenie czynności administracyjnych
  • Wlaściciel Schematu
  • Transfer uprawnień

MODUŁ IX :
Audyt dostępu do danych i szyfrowania danych ⌘


  • Audyt dostępu do danych w serwerze SQL
  • Dzięki SQL Server Audytowi mamy możliwość śledzenia a także rejestrowania zdarzeń, które wystąpią na poziomie Instancji SQL Server bądź na poziomie samej bazy danych.
  • Domyślny Audyt monitoruje nieudane próby logowania.
  • Wdrożenie SQL Server Audit

ćwiczenie

Szyfrowanie bazy danych - Transparent Data Encryption ⌘

  • Mechanizm szyfrowania bazy danych
  • Hierarchia TDE
  • Szyfrowanie danych podczas zapisu na dysk
  • Odszyfrowanie podczas wczytywania danych do pamięci
  • Dostępne w wersji Enterprise, Developer

Hierarchia TDE ⌘

  • Service Master Key (SMK) jest tworzony podczas instalacji SQL Server. SMK szyfruje i chroni Database Master Key dla bazy Master.
  • Database Master Key (DMK). DMK dla bazy master jest tworzony w celu wygenerowania certyfikatu w bazie master.
  • Server Certificate. Certyfikat jest tworzony w bazie master, i służy do szyfrowania klucza w każdej bazie z TDE.
  • Database Encryption Key (DEK). Służy do zaszyfrowania bazy.

ćwiczenie

MODUŁ X :
Wykonywanie bieżącej konserwacji bazy danych ⌘


  • Zapewnienie integralności bazy danych
  • Utrzymanie indeksów
  • Statystyki

Zapewnienie integralności bazy danych ⌘

  • DBCC CHECKDB to komenda T-SQL, która sprawdza logiczną i fizyczną integralność wszystkich obiektów w określonej bazie danych.
  • Użycie DBCC CHECKDB zwiększa użycie CPU
  • Zalecane by uruchamiać poza "business hours"
  • Zalecane żeby uruchomić przed pełną kopią bezpieczeństwa

Demo


Utrzymanie indeksów ⌘

  • Indeks w bazie danych to rodzaj struktury ściśle związanej z tabelą lub widokiem, która pomaga w znaczny sposób przyspieszyć pobieranie danych z tych źródeł.
  • Indeks zawiera klucze zawierające jedną, bądź kilka połączonych kolumn tabeli lub widoku.
  • Klucze w indeksie przechowywane są w strukturze zwanej B-drzewem

Indeksy ⌘

  • Clustered
  • Non-Clustered
  • Klucze obce
  • Klucz główny - Primary Key
  • Klucz obcy - Foreign Key
  • Dla skuteczności indeksu najistotniejsze są następujące kwestie:
  • - wysoka selektywność indeksu
  • - aktualność statystyk
  • - niski poziom fragmentacji

Indeksy ⌘

Klucz główny - Primary Key,

Każdy wiersz w naszej tabeli musi mieć wartość która go unikalnie zidentyfikuje.
Aby zakwalifikować dany atrybut jako klucz główny, musimy sprawdzić, czy posiada następujące własności:
  • musi posiadać wartość dla każdego z wierszy
  • dla każdego z tych wierszy wartość musi być unikalna
  • wartość ta nie może się zmienić, ani nie może zostać usunięta podczas całego funkcjonowania wiersza w tabeli


Indeksy ⌘

Klucz obcy - Foreign Key,

Klucz obcy jest kopią klucza głównego z innej tabeli.
Asocjacja jest utworzona pomiędzy tabelami poprzez zaznaczenie, iż wartość z jednej tabeli,
w której jest kluczem obcym, jest powiązana z wartością z innej tabeli, gdzie jest kluczem głównym

Clustered Indexes ⌘


  • Jeden index klastrowany na tabeli
  • Najczesciej zakladany na kolumnie o wysokiej "selektywnosci"
  • Klucz główny – klastrowany index

Non-Clustered Indexes ⌘


  • Do 999 indexów nie-klastrowanych na tabeli
  • Moga byc oparte na indexach klastrowanych.

Wyszukiwanie danych przy pomocy indeksów ⌘

Indexes search.jpg

REBUILD vs. REORGANIZE ⌘


  • REBUILD usuwa i tworzy indeksy od nowa,
  • REORGANIZE tylko sortuje strony, nie usuwa ich,
  • zarówno REBUILD jak i REORGANZIE zmniejsza fragmentację niezależnie od tego ile ona wynosi

(kolumna AVG_FRAGMENTATION_IN_PERCENT w widoku sys.dm_db_index_physical_stat)

Fragmentacja:

  • 0 - 10% - nic
  • 11 - 30% - REORGANIZE
  • 31 - 100% - REBUILD

Statystyki ⌘

  • Optymalizator zapytań SQL Server używa statystyk podczas tworzenia planu zapytań.
  • Statystyki dostarczają informacji o rozkładzie wartości kolumn w uczestniczących wierszach, pomagając optymalizatorowi lepiej oszacować liczbę wierszy lub liczność wyników zapytania
  • SQL Server automatycznie aktualizuje te statystyki gdy AUTO_UPDATE_STATISTICS jest włączone na bazie danych

MODUŁ XI :
Automatyzacja zarządzania serwera SQL ⌘


  • Automatyzacja zarządzania serwerem SQL
  • Wdrożenie i zarządzanie pracami SQL Server Agenta
  • Automatyzacja rutynowych czynności konserwacyjnych bazy danych z wykorzystaniem Maintenance Plans
  • Zarządzanie pracami na wielu serwerach
  • *Skrypty OLA HALLENGREN

Automatyzacja zarządzania serwerem SQL ⌘

  • Zmniejszone obciążenie administracyjne
  • Konsekwentne wykonywanie rutynowych zadań.

Wdrożenie i zarządzanie pracami SQL Server Agenta ⌘

  • Usługa SQL Server Agent
  • Jobs, Steps, Schedules, Alerts , Operators

demo

Maintenance Plans ⌘

  • Tworzenie i edycja
  • Omówienie poszczególnych zadań
  • Wymagane uprawnienia - SysAdmin
  • SSIS package
  • Troubleshooting

Demo

Zarządzanie pracami na wielu serwerach ⌘

  • Registered Servers
  • MultiServer Administration

Registered Servers ⌘

  • Pomaga zarządzać wieloma serwerami i ich bazami.
  • Generowanie różnych raportów o Serwerach i bazach bez dostępu do pojedynczego serwera.
  • Wymagane konto z odpowiednimi uprawnieniami
  • Otwarty port w sieci

demo

MultiServer Administration ⌘

  • Administracja wieloma serwerami obejmuje jeden Master Server, który przechowuje główną kopię zadań i dystrybuuje je do jednego lub więcej serwerów docelowych.
  • Target Serwery są przypisane do jednego Master Serwer, do którego łączą się okresowo aby zaktualizować swój harmonogram zadań i ewentualnie pobrać nowe.
  • Usługa SQL Server Agent i Usługa SQL serwera muszą działać przy użyciu kont domeny Windows.

MODUŁ XII :
Monitorowanie SQL Server przy użyciu alertów i powiadomień ⌘


  • Monitorowanie błędów serwera SQL
  • Konfigurowanie klienta poczty serwera SQL
  • Konfigurowanie operatorów, powiadomień i alertów

Error Log ⌘


  • Lokalizacja

"ProgramFiles\Microsoft SQLServer\MSSQL13.<Instance>\MSSQL\LOG\ERRORLOG"

  • sp_cycle_errorlog
  • Ważne informacje jakie można znaleźć

Database Mail ⌘


  • Konfiguracja
  • Wykorzystanie

Operatorzy, Alerty, Powiadomienia ⌘


  • Konfiguracja
  • Wykorzystanie

Egzamin :)⌘

   Egzamin.JPG

Best Practices⌘


  • Oddzielne dyski dla baz systemowych, aplikacyjnych i TEMP DB
  • Regularne kopie bezpieczeństwa
  • Ograniczony dostęp do serwera baz danych
  • Monitorowanie przyrostu baz
  • Procedury systemowe w administracji
  • Dokumentacja
  • "każdy ma własne..."

Linki⌘


  • www.youtube.com
  • www.sqlservercentral.com
  • www.udemy.com


Ankieta i Certyfikaty⌘

. ⌘

Koniec.JPG