har DU noen gang tenkt at SQL-serveren din kan fungere som en filserver? Oddsen er at du ikke gjorde det – heller ikke jeg før jeg prøvde En FileTable-funksjon først introdusert I SQL Server 2012. FileTable-funksjonen er neste trinn I FILESTREAM-teknologien som lar deg lagre filer og mapper i de spesielle tabellene, men få tilgang til dem ved hjelp av tradisjonell WINDOWS SMB – protokoll. Med Andre ord, FileTables la OSS bruke SQL-tabeller for ikke-transaksjonstilgang.etter min mening er en av De største fordelene Med FileTables-funksjonen lagring av filattributter(For Eksempel Last-WriteTime, Last_AccessTime, etc.) som gjør det mulig for administratorer å overvåke filtilgangsoperasjoner ved hjelp av de tilsvarende kolonnene i Filtabellene. I denne artikkelen vil jeg gjerne vise deg HVORDAN SQL Server 2012-2016 kan brukes for fillagring og hva overvåking mekanismer kan utnyttes for filer og mapper som ligger i SQL fil aksjer. Noen forutsetninger må være oppfylt Før Filtabeller kan opprettes i en database, og vi vil gå over alle trinnene som kreves for å forberede Filtabeller, deretter opprette flere tabeller og se hvordan vi kan arbeide med Dem.
La oss starte fra å aktivere FILESTREAM FOR SQL 2012 forekomst og opprette en NY filestream database:
https://msdn.microsoft.com/en-us/library/gg509097%28v=sql.120%29.aspx
Jeg Aktiverer FILESTREAM På Windows-nivå
- Åpne SQL Configuration manager:
- kontroller at følgende avmerkingsbokser Er Valgt:
II Aktiver FILESTREAM PÅ SQL-Forekomstnivå:
- i SQL Server Management Studio klikker Du Ny Spørring for å vise Redigeringsprogrammet For Spørring.
- i Spørringseditor skriver du Inn Følgende Transact-SQL-kode:
EXEC sp_configure filestream_access_level, 2
RECONFIGURE
III Gi EN FILESTREAM Filgruppe På Databasenivå
før vi kan lage Filtabeller i en database, må databasen ha EN FILESTREAM filgruppe. Hvis du vil Ha mer informasjon om denne forutsetningen, kan Du se Opprette En Filestream-Aktivert Database.
Siden Jeg kommer til å opprette en ny database jeg vil først opprette en mappe som inneholder FileTables:
og deretter definere En Filestream filegruppe i denne koden:
OPPRETT DATABASE FILESERVER
PÅ
PRIMÆR (NAME = FS,
FILENAME = ‘c:\FILESERVER\FSdat.mdf’),
FILGRUPPE FileStreamFS INNEHOLDER FILESTREAM(NAVN = FSgr,
FILNAVN = ‘c:\FILESERVER\fs1’)
LOGG PÅ (NAME = FSlog, FILENAME = ‘ c: \ FILESERVER \FSlog.Ldf’)
GÅ
Oppmerksomhet! SOM MS sier: «FOR EN FILESTREAM filgruppe refererer FILNAVN til en bane. Banen til den siste mappen må eksistere, og den siste mappen må ikke eksistere.»I den foregående koden, c:\FILESERVER må eksistere, men fs1 må IKKE når du utfører OPPRETT DATABASE-setningen.
filegroups database egenskapsside viser Nå FileStreamFS filestream FOR filserver database:
IV Aktiver Ikke-Transaksjonell Tilgang På Databasenivå
når vi har opprettet databasen, er det siste trinnet i å forberede det For FileTables å aktivere ikke-transaksjonell tilgang på databasenivå.
FileTables la Windows-programmer få En Windows – fil håndtak TIL FILESTREAM data uten å kreve en transaksjon. Hvis du vil tillate denne ikke-transaksjonstilgangen til filer som er lagret I SQL Server, må du angi ønsket nivå for ikke-transaksjonstilgang på databasenivå for hver database som skal inneholde Filtabeller. HVIS vi utfører følgende kode –
VELG DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
fra sys.database_filestream_options;
GO
…vi ser at ingen databaser har ikke-transaksjonstilgang aktivert:
for å aktivere ikke-transaksjonell tilgang til filer på databasenivå (FOR FILSERVER – databasen i dette tilfellet) må det spesifiseres et annet alternativ – en katalog For Filtabeller: det er katalogen jeg har opprettet i begynnelsen av artikkelen-c:\FILESERVER, men katalognavnet skal skrives uten stasjonsbokstaven og symbolet»\»:
ENDRE DATABASE FILESERVER
SETT FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N’ FILESERVER’)
GÅ
«i filetable mappehierarkiet blir denne katalogen på databasenivå barnet filestream på forekomst nivå, OG den overordnede av filetab les opprettet i databasen»-DET BETYR FILESERVER vil være undermappe AV MSSQLSERVER DEL SOM JEG IKKE HAR ENDRET DET I TRINN I – 2. Hvis du Vil Ha mer informasjon, kan Du se Arbeide med Kataloger og Baner i FileTables
Utføring av denne koden igjen vil vise at ikke-transaksjonstilgang er aktivert:
VELG DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FRA sys.database_filestream_options;
GÅ
følgende kode viser katalognavnet FOR filserverdatabasen:
Velg DB_NAME ( database_id), direcory_name
FRA sys.database_filestream_options;
GÅ
her er «SQL» fildeling som brukere nå kan bruke til å lagre sine filer og mapper:
Hvis jeg hadde omdøpt STANDARD mssqlserver share til noe som share1 i trinn i-2 ville det ikke vært noen indikasjon på noen sql server involvert – fra brukerens perspektiv ville det bare være En Vanlig fildeling.
Alle forutsetninger for å lage FileTables er oppfylt nå, og vi kan fortsette å lage FileTables.
Arbeide MED SQL Server – Filtabeller-del 2