Sunteți pe pagina 1din 23

Configurarea instanei MSSQL

nainte de a ncepe efectiv configurarea unei instane MSSQL, trebuie s cunoatem ce opiuni pot fi configurate i care sunt setrile curente. Acest lucru se poate realiza prin intermediul sys.configurations.

Schimbarea setrilor curente se poate realiza prin intermediul procedurii stocate sp_configure. Prin intermediul sp_configure specificm noile setri, aplicarea lor efectiv se va face numai dup apelarea RECONFIGURE (n unele cazuri urmat i de o repornire a instanei MSSQL). S lum ca exemplu configurarea show advanced option. Apelat fr niciun parametru, sp_configure va returna o list cu principalele setri ale instanei MSSQL.

n cazul n care se dorete listarea inclusiv a opiunilor avansate, trebuie s schimbm valoarea implicit a opiunii show advanced option.

Urmtoarele apeluri ale procedurii stocate sp_configure vor returna inclusiv setrile opiunilor avansate.

Setrile implicite au fost stabilite pe baza celor mai frecvente implementri MSSQL. Este recomandat a interveni asupra acestor setri numai dup ce se efectueaz o analiz a respectivei instane MSSQL. De cnd lucrez cu MSSQL, am intervenit doar asupra urmtoarelor opiuni:

priority boost; min server memory; max server memory; xp_cmdshell; default trace enabled; optimize for ad hoc workloads;

Dintre cele anterior menionate, de fiecare dat intervin asupra: priority boost, min server memory, max server memory. priority boost aceast opiune presupune schimbarea prioritii alocate procesului instanei MSSQL.

Este important a schimba setarea implicit a priority boost n cazul n care pe acelai server sunt gzduite i alte aplicaii (ex: aplicaii web, antivirus, etc.). Accesul la baza de date este esenial, iar n cazul n care procesul instanei MSSQL concureaz cu alte procese, este foarte probabil ca timpii de rspuns ai SGBD -ului s fie din ce n ce mai mari. Cei care au administrat servere SharePoint (toate rolurile instalate pe o singur main) cu siguran s-au lovit de mesajul de eroare "Unable to connect to database. Check database connection information and make sure the database server is running." dei instana MSSQL nu prezenta probleme. Acest situaie se datoreaz faptului c, implicit, att procesele w3wp.exe ct i sqlservr.exe au acelai nivel de prioritate (Normal). n cazul priority boost, dup configurare este necesar a reporni instana MSSQL.

Din acest moment, procesul sqlservr.exe (asociat instanei MSSQL) va avea prioritatea High (prioritate crescut comparativ cu alte procese), deci, timpi de rspuns cu mult mbuntii.

min server memory & max server memory recomand intervenia asupra acestor opiuni indiferent de configuraie. MSSQL ncepe s aloce memorie pe msur ce crete gradul de utilizare al SGBD-ului, iar aceast memorie nu este prea curnd returnat sistemului de operare. Un alt motiv pentru care trebuie intervenit asupra acestor opiuni este acela de a optimiza accesul la resurse, n special atunci cnd pe acelai server sunt gzduite i alte aplicaii, ori mai multe instane MSSQL. Setrile implicite permit utilizarea pn la max. 2147483647 megabytes deci, n cam toate cazurile MSSQL este liber s foloseasc n ntregime resursele sistemului.

Microsoft ofer cteva sfaturi referitoare la modul de calcul i identificare a necesarului de memorie ce trebuie alocat unei instane MSSQL. n practic eu ncerc s identific maximul utilizrii resurselor prin intermediul Performance Logs and Alerts, iar pe baza logurilor extrase (pe parcursul unei zile de producie) stabilesc necesarul de memorie. De reinut faptul c dac sunt specificate valorile de minim / maxim, instana MSSQL se va ncadra n specificaiile date doar dac nivelul de utilizare al SGBD-ului va cere acest lucru i doar dac punctele de minim / maxim sunt atinse, altfel, instana va folosi doar minimul necesar de resurse.

PowerShell & MSSQL Managementul unei instane MSSQL poate fi realizat i prin intermediul PowerShell. Cred c va fi necesar a scrie un post dedicat pentru a putea acoperi acest subiect, dar n cadrul acestui articol am s fac o scurt introducere. Snap-in-urile pentru PowerShell sunt instalate i nregistrate odat cu instalarea SQL Server Management Studio. Unde sunt gzduite snap-in-urile?

Cum ncrcm aceste snap-in-uri n PowerShell?

sqlps este utilitarul care pornete PowerShell cu snap-in-urile gata ncrcate. Utilitarul poate fi apelat din consol, sau ncrcat direct din directorul unde a fost instalat SQL Server Management Studio (conform instalrilor prezentate n acest articol - C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLPS.exe).

Cele mai frecvente comenzi:

Set-Location (cd); Get-ChildItem (dir); Get-Item; Get-Location (pwd); Get-Member;

Exemplu de conectare la instana implicit.

Exemplu de conectare la instana SQLEXPRESS.

Listarea tabelelor bazei de date COMANDA.

Reindexarea indecilor tabelei Agent.

Cum de am tiut de metoda RebuildIndexes? Prin intermediul Get-Member am listat membrii obiectului $Agent_table. Dac se doresc detalii suplimentare, se poate accesa documentaia MSDN.

Generarea codului pe baza cruia tabela LinieComanda poate fi recreat.

Apelarea comenzilor T-SQL se va realiza prin intermediul Invoke-Sqlcmd.

Am s nchei aceast scurt introducere legat de PowerShell & MSSQL prin a meniona existena SQLPSX (poate fi descrcat de pe codeplex.com). Consider SQLPSX ca fiind necesar n cazul n care managementul instanelor MSSQL se realizeaz prin intermediul PowerShell.

ntr-un viitor articol PowerShell & MSSQL am s discut detaliat i despre SQLPSX

Utilizarea task-urilor planificate (alternativ la SQL Server Agent) Serviciul windows SQL Server Agent este instalat odat cu instana MSSQL (principalul su scop fiind acela de a executa diverse activiti de mentenan), dar n cazul ediiilor EXPRESS, din cauza limitrilor impuse, acest serviciu nu poate fi pornit. Alternativa la SQL Server Agent ar fi utilizarea scheduled task-urilor. Ex: realizarea unui scheduled task care s efectueze (n fiecare duminic, ora 10:30 PM) o copie de siguran n ntregime (eng. full backup) a bazei de date COMANDA. Tot ce trebuie s facem este s programm execuia scriptului ThingsAnITSpecShouldKnowTSQL54.sql. Recomand a salva output-ul execuiilor ntr-un fiier .txt. Deorece parametrul -o al SQLCMD rescrie fiierul de output la fiecare apelare, am s apelez utilitarul SQLCMD dintr-un fiier .bat. Pentru a nu salva n clar userul i parola de conectare la MSSQL, m voi folosi de Windows authentication mode.

10

11

12

13

14

Conectarea aplicaiilor Java la MS- SQL Cei care fac dezvoltare cu Java & MSSQL au nevoie de Microsoft SQL Server JDBC Driver 3.0 (mai multe detalii despre driver putei gsi pe blogul echipei JDBC).

1. Se descarc i dezarhiveaz Microsoft SQL Server JDBC Driver 3.0.

2. Folosind NetBeans se creeaz un proiect de tip Java Application.

15

3. n directorul proiectului JMSSQLApp01 se copiaz sqljdbc4.jar i sqljdbc_auth.dll. Diferena dintre sqljdbc.jar i sqljdbc4.jar n cazul n care autentificarea la instana MSSQL este de tip Windows authentication mode, sqljdbc_auth.dll este necesar a fi prezent n locaia de unde are loc apelarea .jar-ului (eng. working directory).

16

4. Se ncarc JDBC-ul.

17

18

Atenie!!! Implicit NetBeans working directory este directorul proiectului JMSSQLApp01 (director n care se afl sqljdbc_auth.dll). n cazul n care se va distribui JMSSQLApp01, directorul dist\ este cel care conine .jar-ul precum i pachetele adiionale. La final copiem sqljdbc_auth.dll n directorul unde a avut loc mpachetarea (dist\) pentru a fi siguri c distribuim JMSSQLApp01 mpreun cu fiierele ce compun JDBC-ul.

19

PHP & MSSQL n cazul PHP & MSSQL va fi nevoie a descrca i instala Microsoft Drivers for PHP for SQL Server (mai multe detalii despre driver putei gsi pe blogul echipei de dezvoltare).

Ca i n cazul Java & MSSQL am s ofer detalii privind configurarea mediului de lucru (IIS 7.0 & PHP). 1. Se descarc i dezarhiveaz Microsoft Drivers for PHP for SQL Server.

2. n cazul de fa, mediul de test gzduiete IIS 7.0 & PHP 5.3.3 (non thread safe version, compiled with Visual C++ 9.0), aadar n directorul C:\php_5.3.3\ext au fost copiate fiierele php_sqlsrv_53_nts_vc9.dll & php_pdo_sqlsrv_53_nts_vc9.dll.

3. Prin intermediul php.ini configurm mediul PHP s ncarce cele dou extensii.

20

21

22

23