Backup & recovery, SQL Server Agent, AlertsJiří
Tomeš
Administrace MS SQL Serveru(NDBI039)
O čem to dnes bude
Úvodní
motivace
Strategie zálohování
Typy zálohování
Modely pro obnovení
Zálohovací
zařízení
Automatická
záloha
SQL Server Agent
Alerts
Použité
prameny a zdroje
Prostor pro dotazy
Úvodní
motivaceSmysl zálohování
databází
:
Je třeba umět s daty nejen pracovat, ale také
se o ně
i
starat
Zálohováním se zmenšují
transakční
logy
Podíváme se, jaké
možnosti zálohování a obnovy nabízí
SQL server !!!
Může se totiž
stát, že o ně
můžeme nenávratně
přijít
(např. odejde disk, …)
Zálohovaná
data můžeme v případě
havárie obnovit
O zálohovacích strategiích
Obsahuje záložní
a obnovovací
část
Definuje se typ, četnost záloh, povaha a rychlost hardwaru
Definuje, jak se mají
zálohy testovat
a na jaká
media se mají
ukládat
Zálohu
je nutné
si „vyzkoušet“
Kdo je zodpovědný za provádění
a jak ho provést s minimalizací
ztráty dat
Doporučené
je používání
dokumentace a komentářů
Strategie týkající
se zálohování
:
Poté, co jsme si vybrali vhodný model, je třeba danou strategii realizovat.
Vybíráme vhodnou strategii
Abychom dosáhli optima, je třeba zvážit :
Jak často přistupujeme
k databázím
Jak často je měníme
a aktualizujeme
Kolik potřebného místa na zálohu
budeme
potřebovat
sp_spaceused
http://msdn.microsoft.com/en-us/library/ms188776.aspx
Vybrat si správný typ zálohy
(ruční
rozhodně
NE)
Úplná
záloha
(FULL)
Záloha kompletní
databáze
Rozdílová
záloha
(DIFFERENCIAL)
Záloha změn po provedení
úplné
zálohy dat
Záloha transakčního logu
(TRANSACTION LOG)
Lze provést i v případě, že není
k dispozici soubor s daty
Např. při selhání
disku
Záloha souborů
a skupin
(FILES & FILEGROUPS)
Zálohujeme vybrané
soubory nebo celé
skupiny
Typy zálohováníSQL server rozlišuje následující
typy:
Offline data není
možné
zálohovat !!!
Modely obnoveníZákladní
typy modelů
pro SQL server:
Bulk
–
Logged
model
obsahuje všechny informace jako „FULL“, ale ve zjednodušené
podobě
obnovení
dat vždy jen na konci zálohy
(nepodporuje
libovolný časový bod)
Simple
Recovery
model
stejný jako „BULK“, pouze jiné
chování
v kontrolních
bodech (CHECKPOINTS)
Full
Recovery
model
Kompletní
ochrana proti selhání
Možnost obnovení
dat až
do nějakého
časového okamžiku
(k bodu selhání)
V případě
obnovení
z transakčního logu
je třeba, aby byl neporušený
Obnovení
do časového okamžiku
Jak zjistit / nastavit model
Přes
SQL server Management StudioDatabases
-> User (System) database ->
Properties -> Database properties -> Options -> Recovery model list box
SELECT name, recovery_model_descFROM sys.databasesWHERE name
=
‘model’
;
GO
Pomocí
dotazu (Transact
–SQL)
ALTER DATABASE nazev_dbSET RECOVERY FULL | BULK_LOGGED | SIMPLE ;
Nastavení modelu
Zjištění modelu
FULL backup
záloha 1/2
Simple
Recovery
model
bere v úvahu potenciální
pracovní
ztráty
v
případě
havárie
každá
aktualizace = zvýšení
ztráty
záloha
= ztráty se vynulují
BACKUP DATABASE [db_name]
TO DISK=‘c:\zaloha.bak’ WITH FORMAT;
GO
TSQL příkaz
FULL backup
záloha 2/2
FULL & Bulk-logged Recovery
model
Záloha transakčního logu
je zde též
potřebná
BACKUP DATABASE | LOG [db_name]
TO DISK=‘c:\zaloha.bak’WITH FORMAT;GO
TSQL příkaz
FULL B&R pomocí
SSMS 1/3
Záloha
database -> kontextové
menu -> task
->
backup
jméno (povinně) + popis (volitelně)
Obnova database
-> restore database
1) Zvolíme
zdroj (FROM device)2)
Procházet -> vyberu soubor
se zálohou
3) Jméno nové
databáze
(TO database) 4) Zvolíme vybranou zálohu, co bude obnovena
FULL B&R pomocí
SSMS 2/3
Záloha (backup)
FULL B&R pomocí
SSMS 3/3
Obnova (recovery,
restore)
DIFFERENCIAL backup
Zaznamenávají
se pouze změněná
data
od
vytvoření
plné
zálohy
(je to rychlejší
než
plná
záloha)
Pro obnovení
rozdílné
zálohy je třeba mít obnovený
i
její
příslušný základ
Hodí
se, je-li podmnožina databáze upravována
častěji než
zbytek (spotřeba menší
režie)
Její
použití
může snížit počet zálohování
logu, které
bude potřeba obnovit
Zachycují
stav všech rozsahů
(kolekce 8 fyzicky
souvislých stránek)
TRANSACTION LOG
backup
Pouze pro FULL
nebo BULK-LOGGED Recovery
model
Je potřeba mít před tím vytvořenou alespoň
1 plnou zálohu
Doporučená
je zejména častá
zálohaMnohem kratší
log
Minimalizace možných ztrát
Optimální
interval
zálohy závisí
především na
Velikost databáze
Význam dat
Zatížení
serveru
FILE & FILEGROUP backup
Cílem
je zajistit zálohu 1 nebo více souborů
bez zálohy celé
databáze
Pro SIMPLE recovery
model
se to týká
pouze
READ-ONLY souborů
Základní
typy obnovení:
OFFLINE
(podpora u SQL 2012)
Databáze musí
být v době
obnovení
OFFLINE, pak
je provede obnovení
a může být znovu ONLINE
ONLINE
Je-li databáze ONLINE
v době
obnovení, v době
zpracování
souborů
(skupin) je daná
instance OFFLINE
a hned po jejich dokončení
znovu ONLINE
Scénář
(pro SIMPLE model) :
FILE & FILEGROUP recovery
Obnovit každý
poškozený soubor
z jeho poslední
zálohy
Obnovit poslední
relevantní
DIFFERENCIAL backup
pro každý obnovený soubor
a
obnovit celou databáziRESTORE DATABASE name, name1, ...FILE
=
filename,finaname1, …
FROM backup_of_file_and_file1_and_…
WITH (NO)RECOVERY;
RECOVERY =
jiné
zálohací zařízení
Je to vlastně
soubor, kam lze zálohy ukládat
SP_ADDUMPDEVICE
Zálohovací
zařízení
sp_addumpdevice
[@devtype=]
‘device_type’--možné
hodnoty
DISK
(pevný disk) PIPE
(roura v síťovém prostředí)
TAPE
(magnetická
páska)[@logicalname
=]
‘logical_name’
--název
zálohovacího zařízení[@physicalname=]
‘physical_name’
--fyzická
cesta k souboru, kam se bude ukládat
Příklad:
sp_addumpdevice
‘DISK’ , ‘test_dev’, ‘c:\test.bak’
Použijeme plánovač
úloh Windows
pro spouštění
skriptu se zálohou
Skript s příponou .cmd
vyvolá
vytvoření
zálohy
Vytvoření
zálohy provedeme pomocí
nástroje
SQLCMD
ProgramFiles\Microsoft SQL server\verze\Tools\Binn\SQLCMD.exe
Automatická
záloha
ProgramFiles\..\SQLSCMD.exe
–U jmeno
–P heslo
–q “BACKUP DATABASE [db_name]
TO
DISK=‘c:\zaloha.bak’
WITH NAME= N ‘jmeno’”
90 pro SQL Server 2005
100 pro SQL Server 2008
SQL Server Agent
Je služba systému Windows
pro
vykonávání
naplánovaných administrativních úloh
(„JOBS“)
Používá
SQL server
pro ukládání informací
k úloze
1 JOBS= jeden či více JOB kroků
1 JOB KROK= vlastní
task
(např. záloha
databáze)
Puštění
je buď
v reakci na nějakou událost
nebo na požádání
V případě, že nastane nějaká
problém
upozorní
nás
(zaznamená
událost)
Komponenty SQL Server Agenta
JOBS
Sada akcí, které
SQL server vykoná
Lze spustit 1 i vícekrát, podle 1 či více plánů, jako reakce na 1 či více záznamů. sledovat úspěch / neúspěch,…
Úloha může běžet na 1 lokálním serveru
nebo na více vzdálených serverech
Pro spuštění
lze též
zavolat proceduru sp_start_job
Každý JOB krok má
svůj kontext zabezpečení
SCHEDULES
Určuje, kdy job
běží
1 či více jobů
může běžet na stejném plánovači
Plánovač
může definovat podmínky
Kdykoliv se SQL server Agent spustí
Jednou v určitý den a čas
Při opakujícím se plánu
Využití
CPU
počítače je definováno jako „nečinné“
Další
komponenty SQL SA
ALLERTS
Ještě
o nich bude řeč
OPERATORS
Definují
kontaktní
informace pro zodpovědnost
za udržování
1 nebo více instancí
SQL Serveru
Operátor nemá
informace
o bezpečnosti
a ani o
možných principech zabezpečení
SQL Server může upozornit operátory například prostřednictvím
Emailu
Pageru (pomocí
služby emailu)
NET SENDu
Server Agent a bezpečnostSQL Agent používá
k řížení
přístupu mimo
sysadmin
tyto ROLE:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Subsystémy (pro zajištění
bezpečnosti) :Předdefinovaný objekt (funkce) zodpovědný za
JOB krokProxy server má
přístup k 1 či více
subsystémům
Všichni mají přístup k Server
Agentovi
Server Agent a SSMS
Jak se k němu dostanemeObject
Explorer -> SQL Server Agent
Alerts
Definování
alertu
:Jméno
alertu
(nejvýše 128 znaků)
Událost nebo podmínka, která
alert
spustíAkce, které
při shodě
provede SQL Server
Agent
Události generované
SQL serverem vstupující
do logu Windows aplikace
SQL Server Agent
přečte aplikační
log a srovná
tyto události s těmi, které
již
definovaly alerty
Když
agent najde shodu
odstraní
daný alert
(zodpovědný za událost)
Alerts
–
typy událostí
SQL Server Events
Error
number
(dojde k konkrétní
chybě-má
číslo)
Severity
level
(upozornění
pro danou chybu)
Database
(nastane-li v konkrétní
databázi)
Event
text
(událost obsahuje konkrétní
řetezec)
SQL Server performance conditions
Object
(sledovaná
oblast výkonu)
Counter
(atribut monitorované
oblasti)
Instance
(monitorované
instance SQL serveru)
Windows Management Introduction
events (WMI)
Namespace
Query
Závěrečné
shrnutí
Existuje i celá
řada dalších typů
zálohy,
které
se od uvedených liší
jen velmi nepatrně
– třeba jen parametrem (např.
READ-ONLY backup)
Zálohovat má
vždy smysl, ale stojí
nás i
určitou režii
Nutno vždy počítat s tím, že kdykoliv
může
dojít k nějakému neočekávanému chování
či katastrofě
Je vždycky dobré
znát vlastnosti a
přesné
možnosti
konkrétního serveru (podle používané
verze)
Použité
zdroje a prameny
BACKUP & RECOVERY
http://msdn.microsoft.com/en- us/library/ms187048.aspx
http://www.dbsvet.cz/view.php?cisloclanku=200504 1801
http://www.sqlteam.com/article/backup-and-restore- in-sql-server-full-backups
http://www.sqlservervideos.com/player/backups- with-managementstudio/
SQL Server Agent
http://msdn.microsoft.com/en-us/library/ms189237(v=sql.105).aspx
http://learnsqlwithbru.com/2011/12/15/start-sql-server-agent-from-sql- server-management-studio/
Alerts
http://msdn.microsoft.com/en-us/library/ms180982.aspx
Zeptejte se na to, co Vás zajímá
Prostor pro dotazy
DÍKY za pozornost během prezentace