automatizálási folyamatok az sql 2012-ben
DESCRIPTION
SQL 2012 TKOC. Automatizálási folyamatok az SQL 2012-ben. Király István Microsoft Certified Trainer Microsoft Certified Systems Engineer. Bevezetés - Tartalom Miről lesz szó a mai napon?. SQL Server Agent SQL JOB SQL Credentials , Proxy SQL Server Agent Security. - PowerPoint PPT PresentationTRANSCRIPT
SQL 2012 TKOC
Automatizálási folyamatok az SQL 2012-ben
Király IstvánMicrosoft Certified TrainerMicrosoft Certified Systems Engineer
Bevezetés - TartalomMiről lesz szó a mai napon?
SQL Server AgentSQL JOBSQL Credentials, ProxySQL Server Agent Security
Automatizálás előnyei
• Feladatok csökkentése
• Csökkenő kockázat, nincs elmaradt feladat
• „Human Error” megszűnik
• Proaktív Management
Automatizálási lehetőségek
JOB – Rendszeres feladatok végrehajtásaALERT – Figyelmeztetések, reagálás eseményekreOPERATOR – akiket értesítünk
SQL Server Agent áttekintés
Windows service-ként futFutnia kell, hogy:• Job-okat tudjunk futtatni• Alert-eket tudjunk konfigurálni• Operátorokat tudjunk konfigurálni
Automatikus indulás beállítása a célszerű
Az SQL Server Agent komponens felelős az automatizálási folyamatokért, feladatokértAz SQL Server Agent komponens felelős az automatizálási folyamatokért, feladatokért
demo SQL Server Agent beállítása
Hogyan definiálható az SQL Server Agent Job?
• Egy Job tartalmazhat:
• Transact-SQL parancsot
• CMD parancsot, vagy futtatható alkalmazást
• PowerShell script-et, Integration Services Package
• Job futhat:
• Egyszer, többször, ütemezve
• Automatikusan vagy kézzel futtatva
• A Jobok kategóriákba rendezhetők
• SSMS vagy sp_add_job tárolt eljárás segítségével
SQL Server Agent Job olyan feladat vagy feladatok sorozata, melyeket rendszeresen/gyakran végrehajtunk az SQL Server Agent segítségévelSQL Server Agent Job olyan feladat vagy feladatok sorozata, melyeket rendszeresen/gyakran végrehajtunk az SQL Server Agent segítségével
Creating Job Steps (sp_add_jobstep)
Fail?Yes
No
Write to Application LogWrite to Application Log
Fail the jobFail the job
Job step 1: Back up Database (Transact-SQL)Job step 1: Back up Database (Transact-SQL)
Job step 2: Transfer Data (CmdExec)Job step 2: Transfer Data (CmdExec)
Job step 3: Custom Application (PowerShell)Job step 3: Custom Application (PowerShell)
Yes
Yes
Job succeeded
Notify operator
Job succeeded
Notify operator
No
No
Fail?
Fail?
Notify operator Notify operator
Jobok ütemezéseJob: Backup Transaction LogJob: Backup Transaction Log
Schedule: Mon-Sun Shift 1
Every 1 HoursFrom: 8:00 A.M.To: 5:00 P.M.
Every 1 HoursFrom: 8:00 A.M.To: 5:00 P.M.
Daily ScheduleDaily Schedule
Schedule: Mon-Sun Shift 2
Every 4 HoursFrom: 5:01 P.M.To: 7:59 A.M.
Every 4 HoursFrom: 5:01 P.M.To: 7:59 A.M.
Daily ScheduleDaily Schedule• Job futtatása több ütemben (lsd példa)• 1 job-ból 1 példány futhat egy időben (más job
futhat!)
• Job futtatása több ütemben (lsd példa)• 1 job-ból 1 példány futhat egy időben (más job
futhat!)
Scripting JobsJobok scriptelhetők pl.: dokumentáció, vagy más szerverre/instance-ra másolás/költöztetés miatt
Kik az Operátorok?
• Emberek vagy csoportok akiket értesíteni kell, lehet Feladatokról, feladat részekről, vagy problémákról
• Értesíthetőek email-ben, vagy net send-el (msg.exe)
• Sp_add_operator (sysoperators table in msdb database)
demo Job készítése
SSMS-elScript készítése
Job History
• SQL Server Agent feladat információi az msdb adatbázisban tárolódnak
• Az információk lekérhetők direktben vagy SSMS segítségével
• Job Activity monitor élő állapotot mutat a Jobokról
• A historikus adatok tárolódhatnak az idő vagy a méret függvényében is
HibakeresésHa az SQL Server Agent nem fut• Service beállítások átnézése• Msdb adatbázis-sal minden OK?
Job history átnézése• Mely lépés nem futott le?• Miért nem futott le az adott step?
Ha a job nem indul:• Státusza ‚enabled’?• Ütemezés rendben?• Ütemezés engedélyezve van?
Függőségek ellenőrzése:• A job-ban használt objektumok elérhetők?• Jogosultság ellenőrzése
SQL Server Agent Security
Hálózati jogosultság• Local Service (kompatibilitás) és Network Service• Windows domain user használata az ajánlottHozzáférése kell legyen:• SQL Server instance –hoz T-SQL parancsok
futtatásához• Windows és hálózati hozzáférés egyéb műveletek
végrehajtásáhozProxy Accounts használata ajánlott
Minden JOB a megfelelő biztonsági környezetben fut?
Credential
• Hozzáférés külső erőforrásokhoz• Titkosított jelszómentés• SQL server login „felruházása” windows auth
információkkal• Proxy Account felruházása hitelesítési adatokkal• SQL Server is hoz létre(##)
Olyan SQL Server objektum, mely authentikációs információkat tartalmaz.
Proxy Accounts
• SSMS vagy dbo.sp_add_proxy procedurein msdb
Job Step Proxy Credential Resource
A credentials-t proxy accountként használhatjuk a jobokban. Ha sz SQL Agent account-nak nincs elég jogosultsága
demo Proxy Account készítése
CMD_exec hibakeresésPorxy Account és Credentials használata
Database Mail szolgáltatás áttekintése
• Egyszerű beállítás: Database Mail Configuration Wizard• Különböző profilok beállításának lehetősége• Sp_send_dbmail segítségével• Kiváltja az SQL Mail szolgáltatást
• SQL Server Agent mail:• Figyelmeztetések és értesítések küldése• Az SQL Server Agent account részére is létre kell hoznunk egy profilt
Az SMTP protokoll implementációja, mely lehetővé teszi, hogy az adatbázis komponensek leveleket tudjanak küldeni. SMTP szerver szükséges hozzá!
Database Mail Profilok
• Egy vagy több e-mail profil létrehozása• Profilonként eltérő beállítások megadásának lehetősége• Megbízhatóság növelése több profil segítségével
• Ha nem határozzuk meg, hogy mely profilból küldünk levelet, akkor a Default Profile lesz használatban
Profile Type Description
PrivateA hozzárendelt felhasználók vagy szerepkörök használhatják. Az alapértelmezett private profil elsőbbséget élvez az alapértelmezett publikus profillal szemben.
Public Minden user és role használhatja megfelelő jogosultság esetén (DatabaseMailUserRole)
Database Mail Security
Database mail:• Külön processz futtatja (ne local system legyen az SQL
server account, nem fog hozzáférni az smtp szerverhez )
• Alapból tiltva (sp_configure Databse Mail XPs 1)• Csak a DatabaseMailUserRole tagjai küldhetnek levelet
(a sysadmin csoport már tagja)• Szabályozható csatolmány kiterjesztés és méret
demo Database Mail
Config Database Mail & SQL Agent MailAdd operator, send mail
Figyelmeztetések kezeléseAz adatbázis engine által jelzett hibák tulajdonságai
Attribute Description
Error number Minden hibabejegyzés rendelkezik vele
Error Message String típusú leírás a hibáról
Severity A hiba súlyossága
State A hiba állapota
Procedure Name A tárolt eljárás vagy trigger neve ami okozhatta a hibát (ha van ilyen)
Line Number A hiba bekövetkeztének helye (az adaott sor sorszáma)
Error SeverityA hiba súlyosságát jelző számok jelentése
Error Number Range Description
0 to 9 Informational messages
10 Információs üzenetek állapotát visszaadó információ vagy jelentés, nem súlyos hibák
11 to 16 Hibák, mely felhasználói beavatkozással korrigálhatók (pl. dedlock: 13, szintaktikai hiba: 15)
17 to 19 Közvetlen felhasználói beavatkozással nem javítható hibák (memória, diszk stb)
20 to 24 Súlyos hibák
25 SQL Server service-t érintő súlyos hiba
SQL Server Error Log konfigurálása
• A súlyos hibák az alkalmazás és az SQL Server logban is megjelennek• sp_altermessage tárolt eljárással konfigurálható
• Minden instance újraindulás után keletkezik egy új errorlog• Alapértelmezetten 6 log fájlunk lesz• sp_cycle_errorlog tárolt eljárással bármikor nyithatunk új
logfilét
SQL Server Error Log konfigurálása
Logok alapértelmezett helye:Program Files\Microsoft SQL Server\MSSQL11.<Instance>\MSSQL\LOG\ERRORLOG
6db, de módosítható:SQL Server Management StudioREG: [HKLM\Software\Microsoft\MSSQLServer\MSSQLServer\NumErrorLogs]
Logok helye hogyan állapítható meg?SQL Server Config Manager startup parameter (-e)
demo SQL Server Error Log