Як зменшити розмір БД на MS SQL Server за допомогою технології FileStream

Якщо у вас використовується Microsoft SQL Server, ви можете істотно скоротити розмір бази даних системи, використовуючи технологію зберігання даних FileStream. Суть даної технології в тому, що великі неструктуровані дані (типу текстових файлів, зображень і т.п.) більше не зберігаються в БД, а переносяться на файлову систему. Даний спосіб зберігання даних дозволить вам, наприклад, використовувати безкоштовну версію Microsoft SQL Server Express Edition для роботи з системою документообігу FossDoc набагато більш тривалий час до моменту вичерпання ліміту на розмір БД - 10Гб (якщо ви його досягнете взагалі).

Як запустити режим FileStream на вашому сервері?

Важливо! FileStream буде працювати при виконанні наступних умов:

Додатково у вас повинен бути встановлений продукт Microsoft SQL Server Management Studio, який можна завантажити з сайту розробника.

1. Запустіть додаток Microsoft SQL Server Configuration Manager, який входить до складу установки Microsoft SQL Server, підключіться до сервера і виберіть ваш екземпляр сервера. Виконайте з контекстного меню пункт "Властивості":

SQL Server Configuration Manager

2. У діалозі властивостей відзначте все три опції на закладці "FILESTREAM", як показано на мал.:

Властивості FILESTREAM служби SQL Server

Натисніть Застосувати.

3. Запустіть Microsoft SQL Server Management Studio та підключіться до вашого сервера. Створіть слідуючий запит:

EXEC sp_configure filestream_access_level, 2

RECONFIGURE

SQL Server Management Studio

Виконайте даний запит.

4. Відкрийте будь-яким редактором (наприклад "notepad") файл App.config вашого примірника серверу:

"C:\Program Files\FOSS\FossDoc Application Server\Instances\{папка вашого примірника}\App.config"

Всередині файлу знайдіть рядок з параметром: "AllowSnapshotIsolation", і змініть значення value="false", в результаті повинно бути:

‹add key="Foss.FossDoc.ApplicationServer.DatabaseProvider.MSSQL.Transaction.AllowSnapshotIsolation" value="false" ⁄›"

Також у рядку з параметром "FileStreamEnabled" встановіть значення value="true", в результаті повинно бути:

‹add key="Foss.FossDoc.ApplicationServer.DatabaseProvider.MSSQL.FileStreamEnabled" value="true" ⁄›"

Збережіть зміни.

5. Перезапустіть службу вашого серверу FossDoc

Служба сервера FossDoc

Що повинно вийти в результаті?

Для того щоб переконатися в тому, що режим FileStream був успішно запущений на вашому сервері, перейдіть в папку MSSQL\DATA в каталозі, де у вас встановлений SQL Server. Наприклад, якщо у вас встановлений SQL Server Express Edition, то за замовчуванням шлях для даної папки: C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA. За даним шляхом у вас повинна з'явиться папка виду "Ім'я сервера_bin", в якій сервер буде зберігати всі бінарні файли.

Якщо режим FileStream так і не був запущений, дізнатися з якої причини це сталося можна за допомогою log-файлу сервера FossDoc - MYSQL.log. Зверніться на форум техпідтримки, додайте даний файл, і ми відповімо, що необхідно зробити, щоб усунути цю проблему.