Fișierele Arhitectura și grupuri de fișiere

SQL Server atribuie o bază de date cu un set de fișiere de sistem de operare. Datele și informațiile jurnal nu sunt amestecate în același fișier, și fișiere individuale sunt utilizate numai de către o bază de date. Filegroups sunt numite colecții de fișiere și sunt utilizate pentru a simplifica plasarea de date și de a efectua sarcini administrative, cum ar fi cel de backup și recuperare.







baze de date SQL Server conțin trei tipuri de fișiere.

fișiere de date primare.

Fișierul de date primare este punctul de plecare al bazei de date. El indică restul fișierelor bazei de date. Fiecare bază de date are un singur fișier de date primare. Pentru numele fișierului de date primare, se recomandă să utilizați extensia MDF.

fișiere de date secundare.

Pentru fișierele de date secundare includ toate fișierele de date, cu excepția pentru fișierul de date primare. Unele baze de date nu pot avea nici un fișier de date secundare, în timp ce altele au mai multe fișiere de date secundare. Pentru numele fișierului de date secundare, se recomandă să se utilizeze extensia FND.

Fișierele log conțin toate jurnalele de informații sunt utilizate pentru a recupera baza de date. Fiecare bază de date trebuie să aibă cel puțin un fișier jurnal, dar pot exista mai mult. LDF se recomandă să utilizeze extensia la numele fișierelor jurnal.

SQL Server nu necesită utilizarea de extensii de fișiere MDF, NDF, și LDF. Cu toate acestea, aceste extensii ajuta utilizatorul să identifice diferitele tipuri de fișiere și să le folosească în mod corespunzător.

În SQL Server, locația fișierului bazei de date este scris în fișierul bazei de date primare și comandantul bazei de date. În cele mai multe cazuri, componenta SQL Server Database Engine utilizează informații privind locația fișierelor stocate în baza de date master cele mai multe ori. Cu toate acestea, baza de date Engine utilizează informații despre locația fișierelor din fișierul primar pentru a inițializa o înregistrare a locația fișierelor în baza de date master. Acest lucru are loc în următoarele cazuri.

În cazul în care baza de date este conectat folosind instrucțiunea CREATE DATABASE cu una dintre următoarele opțiuni: PENTRU ATTACH sau PENTRU ATTACH_REBUILD_LOG.

Când restaurați o bază de date, dintr-o copie de rezervă.

nume de fișiere logice și fizice

Fișierele SQL Server au două nume.

logical_file_name - numele utilizat pentru a se referi la un fișier fizic în toate declarațiile Transact-SQL. Logică Numele fișierului trebuie să respecte regulile de dispozitive de identificare SQL Server și să fie unic printre numele fișierelor logice în baza de date corespunzătoare.

Nume os_file_name - este numele fișierului fizic, inclusiv calea către directorul. Acesta trebuie să fie conforme cu normele de numele fișierelor de sistem de operare.

fișiere de date, și jurnalele de fișiere SQL Server poate fi folosit ca un sistem de fișiere FAT și sistemul de fișiere NTFS. Se recomandă să se utilizeze sistemul de fișiere NTFS, din cauza securității sale mai mari. Filegroups atât pentru citire și scriere, precum și fișierele jurnal nu pot fi utilizate cu un sistem de fișiere NTFS comprimat. Într-un sistem de fișiere NTFS comprimat este disponibil doar numai pentru bazele de date de citire pot fi plasate și numai citire filegroups secundare. Pentru mai multe informații, consultați. Grup de compresie Secțiunea și fișierul este doar în citire.

În cazul în care un computer se execută mai multe instanțe de SQL Server, fiecare instanță are o anumită locație implicită pentru a stoca fișierele bazei de date create în acest caz. Pentru informații suplimentare. Vedeți locațiile de fișiere pentru implicit și Instanțe cu numele de SQL Server.

Pagini de fișiere de date

fișierele de date Server Pages SQL sunt numerotate secvențial; Prima pagină a fișierului devine cifra zero (0). Fiecare fișier de bază de date are un identificator unic numeric. Pentru a identifica în mod unic o pagină de baze de date, ar trebui să fie utilizată ca ID-ul fișierului și numărul paginii. Exemplul următor arată numărul de pagini care conțin baze de date de volum fișier de date primare în calitate de fișiere de date secundare și 4MB de 1 MB.







Prima pagină a fiecărui fișier - o pagină antet fișier; conține informații despre atributele fișierului. Unele alte pagini sunt situate la începutul fișierului, de asemenea, să conțină informații de sistem, precum hărți locație. Una dintre pagini de sistem, care sunt stocate în fișierul de date primare și primul fișier jurnal este o pagină de pornire a bazei de date, care conține informații despre atributele bazei de date. Pentru mai multe informații despre paginile și paginile de tipuri, a se vedea. Pagini secțiune și extensii.

mărime fișier

Fișierele SQL Server poate crește în mod automat în mărime, depășind parametrii specificați inițial. La determinarea fișierului, utilizatorul poate specifica etapa de creștere dorită. De fiecare dată când umple sale crește dimensiunea fișierului la un pas specificat de creștere. Dacă fișierul are un grup de mai multe fișiere, ele cresc în mod automat doar începutul pentru umplerea toate fișierele. Apoi, fișierele crește în dimensiune de o listă circulară.

În plus, puteți specifica dimensiunea maximă a fiecărui fișier. În cazul în care dimensiunea maximă a fișierului nu este specificat, fișierul poate continua să crească în dimensiune până când ocupă tot spațiul disponibil pe disc. Această caracteristică este utilă în special în cazurile în care SQL Server este utilizat ca o bază de date încorporată într-o aplicație în cazul în care utilizatorul nu are acces facil la administratorul de sistem. După cum este necesar, utilizatorul poate oferi o oportunitate de a depune crească în dimensiune în mod automat, eliminând astfel administratorul preocupărilor de monitorizare a spațiului liber de baze de date și distribuirea de spațiu suplimentar manual.

Tip de fișier utilizat pentru stocarea datelor copiate în timpul înregistrării bazei de date instantaneu depinde de faptul dacă instantaneul este creat de către utilizator sau mecanismele interne utilizate.

Bază de date de date instantaneu, create de către utilizator sunt stocate într-unul sau mai multe fișiere rare. Tehnologia de fișiere rare este o proprietate sistem de fișiere NTFS. Inițial, un fișier rar nu conține date de utilizator, iar spațiul pe disc nu este alocat sub el. Informații generale cu privire la utilizarea de fișiere rare în instantanee de baze de date și cum să crească baza de date instantanee, a se vedea. în modul în care să opereze instantanee de baze de date și alte informații cu privire la dimensiunea fișierelor rare în baza de date instantanee.

Baza de date instantanee pot fi utilizate de mecanisme interne atunci când anumite comenzi DBCC. Aceste comenzi includ DBCC CHECKDB, DBCC CHECKTABLE, DBCC CHECKALLOC și DBCC CHECKFILEGROUP. bază de date instantaneu internă folosind fluxuri de alimentare suplimentare rare fișierele de date de baze de date. La fel ca fișiere rare, fluxuri de date alternative sunt o caracteristică a sistemului de fișiere NTFS. Utilizarea Sparse fluxuri de date suplimentare permite mai multe locații de date cu un singur fișier sau un dosar, fără a afecta dimensiunea fișierului sau volum statistici.

puteți genera grupul de fișiere utilizat pentru a rezolva problemele de distribuție și de administrare a obiectelor bazei de date și fișiere. Există două tipuri de grupuri de fișiere.

filegroups primare

Grupul de fișier primar include fișier de date primare, precum și orice alte fișiere care nu sunt atribuite în mod specific la alte grupuri de fișiere. Toate paginile pentru tabelele de sistem sunt plasate în filegroup primar.

grupuri de fișiere personalizate

Pentru utilizator grupuri de fișiere includ toate grupurile de fișiere care sunt definite cu ajutorul cuvintelor cheie filegroup CREATE DATABASE sau ALTER DATABASE.

Fișierele jurnal nu pot fi incluse în grupurile de fișiere. spațiu de management al jurnalelor este separat de spațiul de gestionare a datelor.

Fișierul nu poate face parte din grupuri de fișiere multiple. Tabelele, indexuri și date LOB poate fi asociat cu grupul de fișiere specificat. În acest caz, toate paginile vor fi plasate în grupul de fișiere; orice tabele și indexurile pot fi separate. tabele și indexuri de date partiționat sunt împărțite în blocuri, fiecare dintre acestea pot fi plasate într-un grup de fișiere bază de date separată. Pentru mai multe informații despre tabele și indexurile partiționate, a se vedea. Tabele partiționate și indexurile.

Fiecare fișier de bază de date, un grup este atribuit fișierul ca grupul implicit. Dacă creați un tabel sau indicele filegroup nu este specificat, se presupune că toate paginile vor fi alocate din filegroup implicit. La un moment dat, doar un singur grup de fișiere poate fi filegroup implicit. Elemente de rol db_owner baze de date fixe poate atribui un anumit grup de stare de fișier al grupurilor de fișiere implicit. În cazul în care grupul de fișiere nu este listat în mod implicit, ca atare, acesta acționează ca un grup de fișiere primar.

Exemple de fișiere și grupuri de fișiere

Următorul exemplu creează o bază de date privind instanță de baze de date SQL Server. Baza de date conține fișierul de date primare, un grup de fișiere de utilizator și fișierul jurnal. Fișierul de date primare face parte din grupul de fișiere primar, și grupul de fișiere definite de utilizator este format din două fișiere de date secundare. Instrucțiunea ALTER DATABASE oferă utilizatorului starea grupului de fișier grupul implicit. Apoi, creați un tabel pentru a defini grup de fișier personalizat.