Як зменшити розмір БД на MS SQL Server за допомогою технології FileStream
Якщо у вас використовується Microsoft SQL Server, ви можете істотно скоротити розмір бази даних системи, використовуючи технологію зберігання даних FileStream. Суть даної технології в тому, що великі неструктуровані дані (типу текстових файлів, зображень і т.п.) більше не зберігаються в БД, а переносяться на файлову систему. Даний спосіб зберігання даних дозволить вам, наприклад, використовувати безкоштовну версію Microsoft SQL Server Express Edition для роботи з системою документообігу FossDoc набагато більш тривалий час до моменту вичерпання ліміту на розмір БД - 10Гб (якщо ви його досягнете взагалі).
Як запустити режим FileStream на вашому сервері?
Важливо! FileStream буде працювати при виконанні наступних умов:
- у вас встановлений Microsoft SQL Server версії 2008 і вище;
- на SQL Server використовується тільки Windows-авторизація для підключення до БД.
Додатково у вас повинен бути встановлений продукт Microsoft SQL Server Management Studio, який можна завантажити з сайту розробника.
1. Запустіть додаток Microsoft SQL Server Configuration Manager, який входить до складу установки Microsoft SQL Server, підключіться до сервера і виберіть ваш екземпляр сервера. Виконайте з контекстного меню пункт "Властивості":
2. У діалозі властивостей відзначте все три опції на закладці "FILESTREAM", як показано на мал.:
Натисніть Застосувати.
3. Запустіть Microsoft SQL Server Management Studio та підключіться до вашого сервера. Створіть слідуючий запит:
EXEC sp_configure filestream_access_level, 2
RECONFIGURE
Виконайте даний запит.
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
Що повинно вийти в результаті?
Для того щоб переконатися в тому, що режим 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. Зверніться на форум техпідтримки, додайте даний файл, і ми відповімо, що необхідно зробити, щоб усунути цю проблему.