Как уменьшить размер БД на 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. Обратитесь на форум техподдержки, приложите данный файл, и мы ответим, что необходимо предпринять, чтобы устранить данную проблему.