Did you ever thought that your SQL server can work as a file server? Kertoimet ovat, että et-en minäkään, kunnes yritin Tiedostettavissa ominaisuus ensimmäisen kerran käyttöön SQL Server 2012. Tiedostettavissa oleva ominaisuus on seuraava askel FILESTREAM-tekniikassa, jonka avulla voit tallentaa tiedostoja ja kansioita erikoistaulukoihin, mutta käyttää niitä perinteisellä Windows SMB – protokollalla-käyttäjät voivat luoda/lukea/muokata/poistaa tiedostoja yleisestä tiedostonjaosta edes tietämättä taustalla olevista SQL-komennoista. Toisin sanoen, FileTables olkaamme käyttää SQL taulukoita ei-transactional access.
mielestäni yksi FileTables-ominaisuuden suurimmista eduista on tiedoston attribuuttien (kuten Last-Writeetime, Last_AccessTime jne.), jonka avulla järjestelmänvalvojat voivat tarkastaa tiedostojen käyttöoikeustoimintoja käyttäen Tiedostotiedostojen vastaavia sarakkeita. Tässä artikkelissa haluaisin näyttää, miten SQL Server 2012-2016 voidaan käyttää tiedostojen varastointiin ja mitä valvontamekanismeja voidaan hyödyntää tiedostojen ja kansioiden asuvat SQL-tiedoston osakkeiden. Joidenkin edellytysten on täytyttävä, ennen kuin Tiedostotaulukot voidaan luoda tietokantaan, ja käymme läpi kaikki tarvittavat vaiheet Tiedostotaulukkojen valmistelemiseksi, sitten luodaan useita taulukoita ja katsotaan, miten voimme työskennellä niiden kanssa.
aloitetaan SQL 2012-instanssin FILESTREAMIN käyttöönotosta ja uuden FILESTREAM-tietokannan luomisesta:
https://msdn.microsoft.com/en-us/library/gg509097%28v=sql.120%29.aspx
I Enable FILESTREAM at the Windows level
- Open SQL Configuration manager:
- varmista, että seuraavat valintaruudut on valittu:
II ota FILESTREAM käyttöön SQL-Instanssitasolla:
- SQL Server Management studiossa, Napsauta uusi kysely näyttääksesi Kyselyeditorin.
- Kirjoita Kyselyeditoriin Seuraava Transact-SQL-koodi:
EXEC sp_configure filestream_access_level, 2
REKONFIGURE
III Anna Tiedostoryhmä Tietokantatasolle
ennen kuin voimme luoda Tiedostotiedostoja tietokantaan, tietokannassa on oltava TIEDOSTORYHMÄ filegroup. Lisätietoja tästä edellytyksestä on ohjeaiheessa FileStream-yhteensopivan tietokannan luominen.
koska aion luoda uuden tietokannan, luon ensin kansion sisältämään FileTables:
ja määrittele sitten FileStream filegroup tässä koodissa:
CREATE DATABASE FILESERVER
on
PRIMARY (NAME = FS,
FILENAME = ”c:\FILESERVER\FSdat.mdf”),
FILEGROUP FileStreamFS CONTAINS FILESTREAM (NAME = FSgr,
FILENAME = ”c:\FILESERVER\fs1”)
LOG ON (NAME = FSlog, FILENAME = ” C:\ FILESERVER \FSlog.ldf”)
GO
Attention! Kuten MS sanoo: ”Tiedostoryhmälle tiedostonimi viittaa polkuun. Viimeiseen kansioon johtavan polun on oltava olemassa, ja viimeisintä kansiota ei saa olla olemassa.”Seuraavassa koodissa, c:\FILESERVER täytyy olla olemassa, mutta fs1 ei silloin, kun suoritat Luo tietokanta lauseke.
:
iv mahdollistavat ei-kaupallisen pääsyn tietokantatasolla
kun tietokanta on luotu viimeinen vaihe sen valmistelussa Tiedostotiedostoja varten on enbable ei-kaupallisen käytön tietokantatasolla.
Tiedostotiedostot antavat Windows-sovellusten hankkia Windows-tiedoston käsittelemään tiedostoja tiedostonsiirtoon ilman, että vaaditaan tapahtumaa. Jotta SQL Server-palvelimeen tallennettuihin tiedostoihin voidaan käyttää ei-kaupallista pääsyä, on määritettävä haluttu ei-kaupallisen käytön taso tietokantatasolla jokaiselle Tiedostotiedostot sisältävälle tietokannalle. Jos suoritamme seuraavan koodin –
valitse db_name(database_id), non_transacted_access, non_transacted_access_desc
SYS: ltä.database_filestream_options;
GO
…näemme, että tietokannoissa ei ole ei-kaupallista pääsyä käytössä:
mahdollistaaksesi ei-kaupallisen pääsyn tiedostoihin tietokantatasolla (FILESERVER – tietokannalle tässä tapauksessa) yksi vaihtoehto on määritettävä – Hakemisto tiedostoille: se on hakemisto, jonka olen luonut the beginingissä artikla-C:\FILESERVER, mutta hakemiston nimi tulee kirjoittaa ilman aseman kirjainta ja symbolia ”\”:
ALTER DATABASE FILESERVER
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N’ FILESERVER’)
GO
”Tiedostokansiohierarkiassa tästä tietokantatason hakemistosta tulee lapsi Jaa nimi määritetty FileStream instance tasolla, ja vanhempi filetab les luotu tietokantaan”-se tarkoittaa FILESERVER on alikansioon MSSQLSERVER osake kuin en ole muuttanut sitä vaiheessa I – 2. Lisätietoja, Katso työ hakemistojen ja polkujen kanssa Tiedostotiedostoissa
tämän koodin uudelleen suorittaminen näyttää ei-kaupallisen käytön onnistuneen:
valitse db_name(database_id), non_transacted_access, non_transacted_access_desc
SYS: ltä.database_filestream_options;
GO
seuraava koodi näyttää tiedostopalvelintietokannan hakemiston nimen:
valitse DB_NAME ( database_id), direcory_name
SYS: stä.tietokanta_filestream_options;
GO
tässä on ”SQL”-tiedostonjako, jota käyttäjät voivat nyt käyttää tiedostojen ja kansioiden tallentamiseen:
Jos I oli nimennyt oletuksena MSSQLSERVER osake osaksi jotain share1 vaiheessa I – 2 ei olisi ollut mitään viitteitä mistään SQL Server mukana-käyttäjän näkökulmasta se olisi vain tavallinen tiedosto Jaa.
kaikki tiedostotiedostojen luomisen edellytykset täyttyvät nyt ja voimme siirtyä tiedostotiedostojen luomiseen.
työskentely SQL Server File Tables-part 2