har du nogensinde troet, at din server kan fungere som en filserver? Oddsene er, at du ikke gjorde det – det gjorde jeg heller ikke, før jeg prøvede en FileTable-funktion, der først blev introduceret i Server 2012. FileTable-funktionen er det næste trin i FILESTREAM – teknologien, der giver dig mulighed for at gemme filer og mapper i de specielle tabeller, men få adgang til dem ved hjælp af traditionelle vinduer SMB-protokol-brugere kan oprette/læse/ændre/slette filer fra en generisk fildeling uden selv at være opmærksom på de underliggende Med andre ord lader Filtabeller os bruge tabeller til ikke-transaktionsadgang.
efter min mening er en af de største fordele ved FileTables-funktionen lagring af filattributter (f.eks.), der giver administratorer mulighed for at revidere filadgangsoperationer ved hjælp af de tilsvarende kolonner i Filtabellerne. I denne artikel vil jeg gerne vise dig, hvordan fillagring 2012-2016 kan bruges til fillagring, og hvilke revisionsmekanismer der kan udnyttes til filer og mapper, der er bosiddende i FILLAGRINGEN. Nogle forudsætninger skal være opfyldt, før Filtabeller kan oprettes i en database, og vi gennemgår alle de trin, der kræves for at forberede Filtabeller, derefter oprette flere tabeller og se, hvordan vi kan arbejde med dem.
lad os starte med at aktivere FILESTREAM for instansen 2012 og oprette en ny FileStream-database:
https://msdn.microsoft.com/en-us/library/gg509097%28v=sql.120%29.aspx
Jeg aktiverer FILESTREAM på Vinduerniveau
- Åbn Konfigurationsadministrator:
- sørg for, at følgende afkrydsningsfelter er markeret:
II aktiver FILESTREAM på Instansniveau:
- klik på ny forespørgsel for at få vist Forespørgselseditoren.
- i Forespørgselseditor skal du indtaste følgende transaktions-kode:
eksekver sp_configure filestream_access_level, 2
omkonfigurere
III Angiv en FILESTREAM-Filgruppe på databaseniveau
før vi kan oprette FileTables i en database, skal databasen have en FILESTREAM-Filgruppe på databaseniveau
før vi kan oprette FileTables i en database, skal databasen have en FILESTREAM-Filgruppe på databaseniveau
filgruppe. For mere information om denne forudsætning, se Opret en FileStream-aktiveret Database.
Da jeg har tænkt mig at oprette en ny database vil jeg først oprette en mappe til at indeholde FileTables:
og derefter definere en Filestream filegroup i denne kode:
Opret DATABASE FILESERVER
På
primær (NAME = FS,
FILENAME = ‘c:\FILESERVER\FSdat.mdf’),
FILEGROUP FileStreamFS indeholder FILESTREAM (NAME = FSgr,
FILENAME = ‘c:\FILESERVER\fs1’)
LOG på (NAME = FSlog, FILENAME = ‘ c:\ FILESERVER \FSlog.ldf’)
Gå
opmærksomhed! Som MS siger: “For en FILESTREAM-filgruppe henviser filnavn til en sti. Stien op til den sidste mappe skal eksistere, og den sidste mappe må ikke eksistere.”I den foregående kode, c:\FILESERVER skal eksistere, men fs1 må ikke på det tidspunkt, du udfører Opret DATABASEERKLÆRINGEN.
egenskabssiden Filegroups database viser nu FileStreamFS filestream til FILSERVERDATABASEN:
IV aktiver ikke-Transaktionel adgang på databaseniveau
Når vi har oprettet databasen, er det sidste trin i forberedelsen af det til FileTables at aktivere ikke-transaktionel adgang på databaseniveau.
FileTables lad vinduer programmer få en vinduer fil håndtag til FILESTREAM data uden at kræve en transaktion. For at tillade denne ikke-transaktionsmæssige adgang til filer, der er gemt i en Server, skal du angive det ønskede niveau for ikke-transaktionsmæssig adgang på databaseniveau for hver database, der indeholder Filtabeller. Hvis vi udfører følgende kode –
vælg DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
fra sys.database_filestream_options;
Gå
…vi ser, at ingen databaser har aktiveret ikke-transaktionsadgang:
for at aktivere ikke-transaktionsadgang til filer på databaseniveau (for FILSERVERDATABASEN i dette tilfælde) skal der angives en yderligere mulighed – en mappe til FileTables: det er den mappe, jeg har oprettet i begyndelsen af artikel – C:\FILESERVER, men mappenavnet skal indtastes uden drevbogstavet og symbolet “\”:
ALTER DATABASE FILESERVER
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N’ FILESERVER’)
GO
“i FileTable mappehierarkiet bliver denne database-niveau mappe barnet i det FileTable mappehierarki. or FileStream på forekomstniveau, og forælderen til filetab – les oprettet i databasen”-det betyder, at FILESERVER vil være undermappen til MSSCLSERVER share, da jeg ikke har ændret det i trin i-2. For mere information, se arbejde med mapper og stier i FileTables
udførelse af denne kode igen viser, at den ikke-transaktionelle adgang er aktiveret med succes:
vælg DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
fra sys.database_filestream_options;
GO
følgende kode viser mappenavnet for FILSERVERDATABASEN:
Vælg DB_NAME ( database_id), direcory_name
fra sys.database_filestream_options;
GO
Her er den fildeling, som brugerne nu kan bruge til at gemme deres filer og mapper:
hvis jeg havde omdøbt standard Share til noget som share1 i trin i-2, ville der ikke have været nogen indikation af nogen involveret server – fra brugerens perspektiv ville det bare være en almindelig fildeling.
alle forudsætninger for oprettelse af FileTables er opfyldt nu, og vi kan fortsætte med at oprette FileTables.
arbejde med SERVERFILTABELLER-del 2