280 likes | 401 Views
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.
E N D
SQL 2012 TKOC Automatizálási folyamatok az SQL 2012-ben Király István Microsoft CertifiedTrainer Microsoft Certified Systems Engineer
Bevezetés - TartalomMiről lesz szó a mai napon? • SQL Server Agent • SQL JOB • SQL Credentials, Proxy • SQL Server AgentSecurity
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ása ALERT – Figyelmeztetések, reagálás eseményekre OPERATOR – akiket értesítünk
SQL Server Agent áttekintés Az SQL Server Agent komponens felelős az automatizálási folyamatokért, feladatokért • Windows service-ként fut • Futnia 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ű
Hogyan definiálható az SQL Server Agent Job? SQL Server Agent Job olyan feladat vagy feladatok sorozata, melyeket rendszeresen/gyakran végrehajtunkazSQL Server Agent segítségével • Egy Job tartalmazhat: • Transact-SQL parancsot • CMD parancsot, vagy futtatható alkalmazást • PowerShell script-et, IntegrationServicesPackage • 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
Creating Job Steps(sp_add_jobstep) Yes Job step 1: Back up Database (Transact-SQL) Fail? Write to Application Log No Yes Job step 2: Transfer Data (CmdExec) Fail? Notify operator No Yes Job step 3: Custom Application (PowerShell) Fail the job Fail? No Job succeeded Notify operator
Schedule: Mon-Sun Shift 1 Schedule: Mon-Sun Shift 2 Every 1 Hours From: 8:00 A.M.To: 5:00 P.M. Every 4Hours From: 5:01 P.M.To: 7:59 A.M. Jobok ütemezése Job: Backup Transaction Log Daily Schedule Daily Schedule • Job futtatása több ütemben (lsd példa) • 1job-ból 1 példány futhat egy időben (más job futhat!)
Scripting Jobs • Jobok 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 (sysoperatorstableinmsdbdatabase)
Job készítése demo SSMS-el Script 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és • Ha azSQL Server Agent nem fut • Service beállítások átnézése • Msdbadatbá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 Minden JOB a megfelelő biztonsági környezetben fut? • Hálózati jogosultság • Local Service (kompatibilitás) és Network Service • Windows domain user használata az ajánlott • Hozzá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ához • Proxy Accounts használata ajánlott
Credential Olyan SQL Server objektum, mely authentikációs információkat tartalmaz. • Hozzáférés külső erőforrásokhoz • Titkosított jelszómentés • SQL server login „felruházása” windowsauth információkkal • Proxy Account felruházása hitelesítési adatokkal • SQL Server is hoz létre(##)
Proxy Accounts A credentials-t proxy accountként használhatjuk a jobokban. Ha sz SQL Agentaccount-nak nincs elég jogosultsága • SSMS vagydbo.sp_add_proxy procedurein msdb
Proxy Account készítése demo CMD_exec hibakeresés Porxy Account és Credentials használata
Database Mail szolgáltatás áttekintése 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á! • 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
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 DefaultProfile lesz használatban
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_configureDatabse 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
Database Mail demo ConfigDatabase Mail & SQL Agent Mail Add operator, send mail
Figyelmeztetések kezelése • Az adatbázis engine által jelzett hibák tulajdonságai
Error Severity • A hiba súlyosságát jelző számok jelentése
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_errorlogtárolt eljárással bármikor nyithatunk új logfilét
SQL Server Error Log konfigurálása • Logok alapértelmezett helye: • ProgramFiles\Microsoft SQL Server\MSSQL11.<Instance>\MSSQL\LOG\ERRORLOG • 6db, de módosítható: • SQL Server Management Studio • REG: [HKLM\Software\Microsoft\MSSQLServer\MSSQLServer\NumErrorLogs] • Logok helye hogyan állapítható meg? • SQL Server Config Manager startupparameter (-e)
SQL Server Error Log demo