Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

13
Lucruri pe care un administrator IT ar trebui sa le stie Data publicarii: 12-05-2010 - Copyright © Iftode Viorel Cui se adresează acest articol? Sunt mulţi cei care lucrează în IT şi pentru care MSSQL este încă o necunoscută. Într-un environment bazat pe arhitectura Microsoft, MSSQL (Microsoft SQL Server) a devenit o componentă de bază atât pentru produse software special dezvoltate unui anume business, cât şi pentru servicii / produse software care fac parte deja din environment (Microsoft ISA Server , WSUS , Windows SharePoint Services , Windows Rights Management Services , Microsoft Office Sharepoint Server , System Center Configuration Manager , System Center Operations Manager , Visual Studio Team Foundation Server , etc.). De asemeni, sunt mulţi dezvoltatori care nu au avut ocazia de a instala şi configura o instanţă MSSQL (deoarece aceste activităţi au stat în seama unui personal specializat). Alţi sysadmini doresc migrarea soluţiilor pe arhitecturi Microsoft (aplicaţii PHP, Java ce pot fi portate pe diferite arhitecturi). Pe scurt, prezentul articol va face referire la MSSQL astfel încât într-un interval de 1.5 – 3 ore să puteţi dobândi cunoştinţele de bază: instalarea MSSQL; folosirea instrumentelor generice MSSQL; configurarea firewall-ului astfel încât să permiteţi accesul remote la instanţa MSSQL; conectarea la o instanţă MSSQL; managementul accesului; managementul permisiunilor; listarea bazelor de date; ataşarea unei baze de date la o instanţă MSSQL; verificarea integrităţii unei baze date; reindexarea; backup & restore, etc; configurarea instanţei MSSQL - memorie, priority boost, etc. (deoarece marea majoritate a acestor operaţiuni este uşor de realizat prin intermediul SQL Server Management Studio, în prezentul articol am să mă axez mai mult pe realizarea acestor operaţiuni din linie de comandă) Acest articol am să îl scriu în două părţi:

description

descriere

Transcript of Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

Page 1: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

Lucruri pe care un administrator IT ar trebui sa le stie

Data publicarii: 12-05-2010 - Copyright © Iftode Viorel

Cui se adresează acest articol?

Sunt mulţi cei care lucrează în IT şi pentru care MSSQL este încă o necunoscută.

Într-un environment bazat pe arhitectura Microsoft, MSSQL (Microsoft SQL Server) a devenit o componentă de bază atât pentru produse software special dezvoltate unui anume business, cât şi pentru servicii / produse software care fac parte deja din environment (Microsoft ISA Server, WSUS, Windows SharePoint Services, Windows Rights Management Services, Microsoft Office Sharepoint Server, System Center Configuration Manager, System Center Operations Manager, Visual Studio Team Foundation Server, etc.).De asemeni, sunt mulţi dezvoltatori care nu au avut ocazia de a instala şi configura o instanţă MSSQL (deoarece aceste activităţi au stat în seama unui personal specializat). Alţi sysadmini doresc migrarea soluţiilor pe arhitecturi Microsoft (aplicaţii PHP, Java ce pot fi portate pe diferite arhitecturi).Pe scurt, prezentul articol va face referire la MSSQL astfel încât într-un interval de 1.5 – 3 ore să puteţi dobândi cunoştinţele de bază:

instalarea MSSQL; folosirea instrumentelor generice MSSQL; configurarea firewall-ului astfel încât să permiteţi accesul remote la instanţa MSSQL; conectarea la o instanţă MSSQL; managementul accesului; managementul permisiunilor; listarea bazelor de date; ataşarea unei baze de date la o instanţă MSSQL; verificarea integrităţii unei baze date; reindexarea; backup & restore, etc; configurarea instanţei MSSQL - memorie, priority boost, etc.

(deoarece marea majoritate a acestor operaţiuni este uşor de realizat prin intermediul SQL Server Management Studio, în prezentul articol am să mă axez mai mult pe realizarea acestor operaţiuni din linie de comandă)

Acest articol am să îl scriu în două părţi:

Ce este un SGBD?  (secţiune dedicată începătorilor); MSSQL Server  (prima parte - secţiune dedicată începătorilor);

o Efectiv o bază de date poate fi compusă din mai multe fişiere; o Protocoale ;o Porturi ;o T-SQL  (Transact-SQL);o Servicii MSSQL ;o Ediţii MSSQL 2008 ;o Maximum Capacity Specifications for SQL Server 2008 ;

Instrumente necesare ; Descărcarea kit-urilor de instalare ;

Page 2: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

Instalarea Microsoft SQL Server 2008 R2 Express Edition ; MSSQL Server  (partea a doua - secţiune dedicată începătorilor); Publicarea instanţelor MSSQL ;

Ce este un SGBD?(secţiune dedicată începătorilor)

Un Sistem de Gestiune a Bazelor de Date (eng. DBMS - Database management system), este un set complex de programe ce permite organizarea, păstrarea, extragerea datelor din bazele de date. SGBD-urile utilizează anumite modele conceptuale pentru a putea gestiona datele: ierarhic, reţea, relaţional, obiectual şi obiectual-relaţional.Modelul relaţional este şi va rămâne o lungă perioadă de timp (după spusele mai marilor în ale bazelor de date), cel mai utilizat model conceptual. Cel ce a dezvoltat acest model a fost Edgar Frank "Ted" Codd (23 August 1923 – 18 Aprilie 2003) – un specialist de origine britanică ce a adus contribuţii semnificative în ştiinţa calculatoarelor. Modelul relaţional a luat naştere când E.F.Codd lucra la IBM (anii ’70), perioadă în care a publicat un articol „A Relational Model of Data for Large Shared Data Banks” în care a enunţat treisprezece reguli ce vizează modelul relaţional.O bază de date reprezintă o colecţie de date utilizată într-o organizaţie, colecţie care este automatizată, partajată, definită riguros (formalizată) şi controlată la nivel central.O bază de date relaţională (BDR) poate fi definită ca un ansamblu de tabele; fiecare tabel, alcătuit din linii (tupluri), are un nume unic şi este stocat pe suport extern (de obicei disc). La intersecţia unei linii cu o coloană se găseşte o valoare atomică.Un tuplu sau o linie este alcătuit(ă) din mai multe câmpuri (coloane sau atribute) şi regrupează informaţii referitoare la un obiect, eveniment etc., altfel spus, informaţii referitoare la o entitate: o carte, un student, o localitate, un angajat al unei firme, o factură emisă etc. Ordinea tuplurilor nu prezintă importanţă din punctul de vedere al conţinutul informaţional al tabelei (Marin Fotache – Proiectarea bazelor de date (cap.2 pag.33), Editura Polirom).Teoria relaţională spune că într-un tabel, nu pot exista două linii identice. Identificarea unei linii se face prin intermediul atributelor (câmpurilor) care o compun (valorile lor trebuie să fie unice). Cheia primară a unei tabele este un atribut sau un ansamblu de atribute care identifică fără ambiguitate fiecare înregistrare. Există şi câteva restricţii în privinţa cheilor primare: unicitate (să permită identificarea unui singur tuplu dintr-o tabelă), compoziţie minimală (în cazul în care cheia primară este compusă din mai multe atribute, nici un atribut din cheie să nu poată fi eliminat fără a distruge condiţia de unicitate a înregistrărilor), valori non-nule (numită şi restricţie a entităţii – valorile atributelor sau ansamblurilor de atribute, nu pot lua decât valori ne-nule).

Un alt lucru important în bazele de date relaţionale îl reprezintă organizarea tabelelor. Procedeul prin care datele sunt grupate pe tabele distincte, se numeşte normalizare. Acest procedeu presupune parcurgerea unor etape de transformare succesive, până când baza de date este adusă la o formă optimizată. Normalizarea nu este un proces uşor iar lucrarea de faţă nu îşi propune discutarea în detaliu al acestui subiect. Putem spune doar că există cinci forme de normalizare, fiecare pas în normalizare presupune aducerea bazei de date la o formă standard. Principalele obiective ale normalizării sunt reducerea pe cât mai mult posibil a redundanţei datelor şi eliminarea anomaliilor apărute la inserare, modificare, ştergere.

prima formă de normalizare presupune eliminarea câmpurilor compuse şi pe cele repetitive;

Page 3: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

a doua formă de normalizare presupune eliminarea dependenţelor funcţionale parţiale; a treia formă de normalizare presupune eliminarea dependenţelor funcţionale tranzitive; a patra formă presupune eliminarea dependenţelor multivaloare; a cincea formă elimină dependenţele de joncţiune.

Datele unei baze de date pot fi exploatate prin intermediul limbajului de interogare SQL (Structured Query Language). Acesta este un limbaj standardizat ce este folosit de către mai toate sistemele de gestiune a bazelor de date. Prin intermediul acestui limbaj se pot:

creea baze de date şi tabele; realiza indecşi; stabili relaţii între tabele; extrage şi modifica date; etc.

MSSQL Server (prima parte)(secţiune dedicată începătorilor)

Microsoft SQL Server este sistemul de gestiune a bazelor de date produs de către compania Microsoft.Pe o maşină fizică putem găzdui mai multe instanţe MSSQL.O instanţă MSSQL poate găzdui mai multe baze de date.

Efectiv o bază de date poate fi compusă din mai multe fişiere. Fişiere cu extensia:

.mdf – întâlnite şi sub denumirea de primary files sau main files. Acest fişier găzduieşte obiectele unei baze de date (tabele, proceduri stocate, declanşatori, etc.). O bază de date poate să aibă maximum un fişier .mdf.

.ndf – secondary database file. În principal .ndf-ul este folosit în cazul optimizărilor. Spre exemplu: anumite tabele pot fi salvate în fişiere .ndf, fişiere ce vor fi găzduite în locaţii diferite, pe discuri diferite. O bază de date poate avea zero sau mai multe fişiere .ndf.

.ldf – transaction log files – acest fişier va păstra un istoric al operaţiunilor efectuate asupra datelor bazei de date.

Protocoale

Shared Memory: este cel mai simplist protocol de comunicaţie cu MSSQL (nici nu necesită configurări). Accesul la o instanţă MSSQL prin intermediul Shared Memory poate fi făcut doar dacă resursa care accesează instanţa MSSQL este găzduită pe aceeaşi maşină pe care este găzduit şi SGBD-ul. În general se apelează la Shared Memory în momentul în care celelalte protocoale de comunicaţie sunt dezactivate sau greşit configurate.

Named Pipes: acest protocol este indicat a fi folosit în cazul reţelelor locale, sau în cazul local named pipes (caz în care resursa care accesează instanţa MSSQL este găzduită pe aceeaşi maşină pe care este găzduit şi SGBD-ul).

TCP/IP: acest protocol este indicat a fi folosit în cazul WAN (wide area networks), a reţelelor dial-up, etc. În cazul LAN-urilor, diferenţele dintre Named Pipes şi TCP/IP sunt insesizabile, dar e important de ştiut faptul că o instanţă MSSQL poate fi configurată să folosească mai multe protocoale simultan.

VIA: Virtual Interface Adapter – folosit în cazul conectării cu hardware specializat şi în cazurile în care canalul de comunicaţie este unul dedicat. Sunt rare cazurile în care este necesar a configura şi utiliza acest protocol.

Porturi

Depinde mult de configuraţia aleasă!TCP 1433 este portul folosit de instanţa implicită MSSQL.UDP 1434 este folosit de serviciul SQL Server Browser. (pe parcursul acestui articol am să aduc completări legate de SQL Server Browser)În cazul în care este nevoie, portul instanţei MSSQL poate fi stabilit de către sysadmin (altul decât TCP 1433).Putem avea şi situaţii în care portul să fie alocat dinamic. Mai exact, acest lucru este întâlnit atunci când pe acelaşi

Page 4: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

server găzduim mai multe instanţe MSSQL. În cazul instanţelor MSSQL putem avea de-a face cu instanţe MSSQL implicite (eng. default instance) sau instanţe cărora le-a fost alocat un nume (eng. named instance, în română am găsit formularea instanţă denumită). Pe un server putem avea cel mult o instanţă implicită şi zero sau mai multe instanţe denumite. OK, deci în cazul în care pe un server instalăm mai multe instanţe MSSQL, avem două posibilităţi:

pentru fiecare instanţă în parte să alocăm porturi statice; să lăsăm MSSQL să aloce porturi în mod dinamic (asta înseamnă că portul instanţei MSSQL să fie alocat la

fiecare repornire a instanţei – deci nu putem garanta că de fiecare dată va fi alocat acelaşi port TCP);

În aceste cazuri, SQL Server Browser îşi intră în rol şi va putea răspunde cererilor venite pe reţea, astfel încât să informeze clienţii de portul alocat unei instanţe denumite. (voi exemplifica în secţiunea „Publicarea instanţelor MSSQL”)Doar instanţele denumite (eng. named instances) pot fi configurate a li se aloca porturi în mod dinamic (caz în care serviciul SQL Server Browser este necesar a fi pornit şi publicat). Dacă avem de-a face cu o singură instanţă implictă, putem renunţa la serviciul SQL Server Browser (implicit instanţa default este configurată a folosi TCP 1433). http://technet.microsoft.com/en-us/library/ms143531.aspx

T-SQL (Transact-SQL)http://msdn.microsoft.com/en-us/library/ms189826(SQL.90).aspx

Transact-SQL este o extensie a limbajului SQL ce permite adăugarea în (mod programatic) de funcţionalităţi ce nu sunt definite implicit în SQL. Cu ajutorul T-SQL putem defini variabile, proceduri stocate, funcţii, controla excepţii, etc.

Servicii MSSQL

Pe lângă rolul de SGBD, MSSQL (în funcţie de ediţie) poate oferi şi servicii precum:

Service Broker; Replication Services; Analysis Services; Reporting Services; Notification Services; Integration Services; Full Text Search Service;

(în cadrul acestui articol am să discut doar despre rolul de SGBD)

Ediţii MSSQL 2008http://www.microsoft.com/sqlserver/2008/en/us/editions.aspx

Enterprise Standard Workgroup Web Developer Express Compact 3.5

Ultima ediţie MSSQL Express disponibilă la momentul scrierii acestui articol este Microsoft SQL Server 2008 R2 Express Edition. Această versiune MSSQL poate fi folosită atât în procesul de învăţare cât şi în cazul distribuţiei de software.Totuşi, acestei ediţii i-au fost aduse intenţionat anumite limitări:

max 1 CPU; max 1 GB; 4 GB storage / per bază de date (exceptând fişierele log);

Page 5: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

(exemplele din cadrul acestui articol sunt realizate pe baza unei instanţe MSSQL Express)http://www.microsoft.com/sqlserver/2008/en/us/express.aspx

Maximum Capacity Specifications for SQL Server 2008http://technet.microsoft.com/en-us/library/ms143432.aspx

Instrumente necesare

SQLCMD  – este utilitarul linie de comandă prin intermediul căruia se pot efectua diferite operaţii cu MSSQL (permite apelarea comenzilor SQL, execuţia scripturilor, etc.). SQLCMD este utilitarul introdus odată cu Microsoft SQL Server 2005 şi este succesorul OSQL (utilitar cu funcţii asemănătoare apărut odată cu Microsoft SQL Server 2000). Se poate folosi şi OSQL în cazul MSSQL Server 2005, MSSQL Server 2008, doar că OSQL nu acoperă în totalitate funcţionalităţile SQLCMD.

SQL Server Management Studio  – este utilitarul cu interfaţă grafică utilizator şi este ideal în cazul manipulării unei instanţe MSSQL. Trebuie ştiut faptul că SQL Server Management Studio poate fi găsit şi în versiune Express, versiune care poate fi folosită gratuit (evident, spre deosebire de SQL Server Management Studio, versiunea Express are anumite limitări).

Business Intelligence Development Studio  – este mediul integrat de dezvoltare ce este folosit în special pentru manipularea cuburilor OLAP, data mining, reporting services, etc.

Descărcarea kit-urilor de instalare

Microsoft SQL Server 2008 R2 RTM - Express ; Microsoft SQL Server 2008 R2 RTM - Management Studio Express ; Microsoft SQL Server 2008 Command Line Utilities

o X86 Package ;o X64 Package ;o IA64 Package ;

Microsoft SQL Server 2008 R2 RTM - Express with Management Tools ; Microsoft SQL Server2008 R2 RTM - Express with Advanced Services ;

Instalarea Microsoft SQL Server 2008 R2 Express Edition

(Doar pentru a completa anumite posibile scenarii, în acest articol am să instalez două instanţe MSSQL – ambele în ediţie EXPRESS. În cazul primei instanţe MSSQL am să urmez paşii impliciţi ai wizard-ului, iar instanţa va fi una denumită – WEB01\SQLEXPRESS. În cazul celei de-a doua instanţe MSSQL, în etapa de instalare am să configurez instanţa ca fiind instanţă implicită - WEB01. În prezentul articol WEB01 este denumirea NETBIOS a maşinii pe care se efectuează instalarea. Instalarea se va efectua pe baza kitului de instalare Microsoft SQL Server 2008 R2 RTM - Express with Management Tools)

Instalarea Microsoft SQL Server 2008 R2 necesită existenţa:

Microsoft .NET Framwework 3.5 SP1 ; Microsoft Windows Installer 4.5 ; Microsoft Windows PowerShell;

Page 6: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

Instalarea instanţei denumite - WEB01\SQLEXPRESS

Page 7: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

În prezentul articol voi discuta doar despre rolul de SGBD, aşadar în etapa de instalare am selectat doar componentele strict necesare:

Database Engine Services; Management Tools – Basic; SQL Client Conectivity SDK;

Page 8: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

Implicit (în cazul ediţiilor EXPRESS), în etapa de instalare opţiunea implicită este cea de instalare a instanţelor denumite (eng. named instances).

În această etapă de instalare putem configura conturile utilizator sub care serviciile windows asociate instanţei MSSQL vor fi pornite. Lăsaţi valorile implicite şi treceţi la pasul următor.

Page 9: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

Implicit, în etapa de instalare, modul de autentificare la o instanţă MSSQL este Windows authentication mode. Asta înseamnă că autentificarea se va realiza pe baza unui cont utilizator Windows, iar sistemul de operare va fi cel care va confirma identitatea userului. În cazul Windows authentication mode, instanţa MSSQL nu va cere nici o parolă şi nici nu va efectua verificări asupra identităţii. Recomandat ar fi ca instanţele MSSQL să fie configurate a folosi doar Windows authentication mode deoarece:

acest mod de autentificare se foloseşte de protocolul Kerberos (proces de autentificare securizat); pe baza unui singur cont utilizator poate fi alocat accesul la diferite resurse (de asemeni, blocarea acelui

cont utilizator va presupune şi blocarea accesului la toate resursele unde s-a alocat acces); pot fi impuse în mod centralizat politici privind complexitatea, durata de valabilitate a parolelor; în cazul aplicaţiilor, nu este necesară salvarea în clar a userului şi a parolei de acces (atât timp cât aplicaţia

este executată sub credenţialele contului utilizator pentru care s-a alocat acces explicit în instanţa MSSQL); etc.

SQL Server authentication mode, presupune:

ca autentificarea să fie realizată de către instanţa MSSQL; păstrarea userului şi parolei de acces în cadrul instanţei MSSQL (deci nu există nici o legătură între

conturile Windows şi userii MSSQL); furnizarea userului şi a parolei de fiecare dată când se realizează autentificarea la instanţa MSSQL; etc;

Indiferent de opţiunea aleasă în etapa de instalare (Windows authentication mode sau Mixed mode), pentru fiecare instanţă MSSQL instalată va fi realizat contul MSSQL sa. În cazul Windows authentication mode, userul va fi creat, dar contul nu va fi activ (deci, nu va fi posibilă conectarea la instanţa MSSQL pe baza acestui user). În cazul Mixed mode, userul va fi creat, iar imediat după instalare, va fi posibilă conectarea pe baza contului SQL.

Page 10: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

În cadrul aceluiaşi pas de instalare (Database Engine Configuration), în cadrul de pagină Data Directories puteţi să configuraţi:

locaţia pe disc unde va fi instalată instanţa MSSQL; directoarele implicite ce vor găzdui bazele de date; locaţia implicită de găzduire a backup-urilor; etc.

Recomand ca atât instalarea instanţei MSSQL cât şi găzduirea bazelor de date să fie făcute pe volume diferite de cel pe care este găzduit sistemul de operare. (în cazul acestui articol, am să păstrez configuraţia implicită, dat fiind faptul că instanţele MSSQL nu vor fi publicate în mediul de producţie)

Page 11: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

Instalarea instanţei implicite - WEB01

(Efectuez instalarea acestei instanţe doar pentru a completa anumite posibile scenarii. În mod normal o singură instanţă MSSQL este suficientă în etapa de dezvoltare / distribuire software.)

Page 12: Lucruri Pe Care Trebuie Sa Le Stie Un Administratot It

Articol preluat de la blog.iftvio.blogsite.org

- See more at: http://www.tutorialeonline.net/ro/article/lucruri-pe-care-un-administrator-it-ar-trebui-sa-le-stie#sthash.5mfLrFNN.dpuf