Смотрите, что написано в Вики (http://ru.wikipedia.org/wiki/Microsoft_SQL_Server ):
"4 Гб максимальный размер базы (10 Гб для версии SQL Server 2008 R2)"
Недавно столкнулся с переносом периферийной базы с *.dbf-версии на SQL, причем ставил именно на MS SQL Express 2008R2.
Перенос прошел корректно, но в итоге размер базы приблизился к критическому (9,7 Gb). Ну, я честно предупредил клиентов о приближении к пороговому значению, посоветовал сворачивать базу и удалился.
Через некоторое время вызывают - не могут принять загрузку с центральной базы. Вроде все понятно - размер базы уперся в ограничение. Объяснил ситуацию, еще раз поднял тему свертки. На всякий случай залез в базу, раскидал данные на два файла (*.mdf и *.ndf), ушел. Ожидал быстрого вызова (им же надо загрузку принимать), но его не было.
Зайдя через несколько дней, был немало удивлен тем, что после разнесения базы в разные файлы ЗАГРУЗКА ПРОШЛА! Зашел, проверил размер базы. Суммарный объем двух файлов ПРЕВЫСИЛ 10 Гб (разумеется, *.log-файл я не учитывал).
Но при этом база работает, без ошибок и вопросов.
В связи с этим хотелось бы уточнить некоторые вопросы:
1) Что за ограничение непонятное такое? Ведь оно действует не на размер каждого из файлов базы, а на всю базу.
2) Чем это может грозить клиенту.
3) Какие действия стоит предпринять в этой ситуации - как мне, так и клиенту )
(1) MaxDavid, очевидно, осталось только уломать клиента свернуть базу ;)
Однако, если все таки, бесплатность Express - не вопрос, ставь R2 Developer и забудь про всё ( = Datacenter edition, только для разработки, тестирования и демонстраций).
Ответ очевиден. Или у Вас с заказчиком одно желание? Посмотреть чем все кончится? ;)
MS SQL Express 2008R2 - он не умеет увеличивать базы больше 10 гигабайт , но с базой больше 10 гигабайт созданной например в другой редакции он работать будет.
(5) MaxDavid, ситуация такая - это неоднократно обсуждалось на SQL форумах. Ограничение есть , но если при достижении границы , полностью убить , процес Sql , а потом подключить базу обратно , то все будет работать.
Но внести измения (модифицировать) таблицу будет нельзя или , второй вариант , разбить базу на части, меньше ограничения , то же будет работать.
Еще вариант , есть евалюшн версия на 180 дней без ограничений, но придется раз в полгода переставлять.
(7)
У меня, похоже, второй вариант.
Нельзя ли ссылочку на подобные обсуждения? Если запрещено изменение структуры таблиц - следовательно, придется забыть об изменениях структуры базы данных, а вот текст модулей я смогу менять?
(8)
Для того, чтобы клиент выделил деньги на лицензионный SQL, мне необходимо объяснить ему, чем грозит продолжение работы с Express-версией. Кроме того, я сам не люблю, когда не понимаю логику работы приложения.
Если база больше 10 Gb , за небольшой период , то предполагаю , что речь идет о большой организации с большим документооборотом, следовательно с достаточно большим оборотом финансовых ресурсов. А если речь идет только о большом размере базы , то ее надо свернуть. Пусть клиент сам выбирает . Странно только , что про ограничение 1Gb оперативной памяти не мешает работе.
Проблемы возникают , именно при модификации таблиц , вы отдаете команду на принятие изменений , в этот момент происходит проверка на граничные условия и все.
(10)
10 Гб - за два года. Ограничение в 1Гб оперативки не мешает, потому что база периферийная и в ней одновременно работают не более 8 человек.
Проблемы возникают , именно при модификации таблиц , вы отдаете команду на принятие изменений , в этот момент происходит проверка на граничные условия и все.
Еще раз попрошу ссылку, если не сложно. Как-то совсем неочевидно это все (
Например , вот-
1. Есть ли ограничение по объему данных в SQL express версий 2005, 2008 ?
SQL Express 2005, 2008 - максимальный объем базы данных 4 гигабайта.
SQL Express 2008 R2 - максимальный объем базы данных 10 гигабайт.
Но! В SQL Express 2008 R2 - можно включить технологию Remote Blob Storage, где BLOB данные (большие двоичные наборы данных или файлы) хранятся не в базе SQL сервера, а в файловой папке на SQL сервере. Использование данной технологии позволяет сохранять в SharePoint до нескольких терабайт данных. Давайте попробуем прикинуть. Например вы настроили в базе данных DeskWork использование технологии RBS. Допустим что на накладные расходы и метаданные у Вас ушло при "чистом" портале DeskWork 2 Gb (Будем брать по самому максимому).
Например, за несколько лет эксплуатации портала у Вас накопилось 100 000 документов и файлов во всех библиотеках и списках на портале, предположим, что на каждый документ уходит 5 килобайт метаданных, тогда метаданные займут около 0.5 гигабайта, допустим средний размер каждого файла - 5 мегабайт, тогда получается что в базе данных SQL занято 2,5 Гигабайта, в хранилище RBS - 0,5 терабайта.
Т.е. даже грубые расчеты говорят, что при использовании RBS за ограничения на объем данных SQL Express 2008 R2 в 10Gb можно не переживать.
>> 2. Какие файлы или папки с документами физически лежат на диске и где, а не в SQL express или по-прежнему все файлы документов лежат в SQL ?
- ответ тот-же, если не использовать технологию Remote Blob Storage, то все лежит в базе SQL сервера, если использовать, то файлы будут лежать в папке RBS хранилища на диске.
(12) "если использовать, то файлы будут лежать в папке RBS хранилища на диске." - и как это все бэкапить? целым диском?
(17) видимо, у него как раз тот случай, когда SQL взял под себя дисковое пространство, но таблицы не были заполнены полностью - работа же шла нормально.
Он создал второй файл, и стал заполняться второй файл. А при достижении предела - уже разбито на два файла.
А у вас сразу ограничение отрабатывает, видимо..
(20) У меня динамическое увеличение размера обоих файлов по мере заполнения... Прирост 10%, кажется.
В общем, дозвониться не смог, поэтому опишу, что помню:
База 7.7.
Ставил SQl не я, другой человек, он как-то шаманил со связкой 1с7.7-SQL, в частности, подменял dll-ки в системной папке на, кажется, от более старой версии. Потом еще ставил зачем-то MS SQL 2005 Express поверх 2008r2 - я так и не понял, какого икса.
В дальнейшем уже я, для преодоления проблем совместимости, ставил секретный релиз. В общем, гремучая смесь на выходе еще та. Но сама база 1С крутится на сервере SQL 2008, я смотрел специально, сервер 2005 не запускается вообще.
Можно было бы списать на замененные dll-ки, но как тогда объяснить появление предупреждения о превышении размера файлов?
Завтра еще раз зайду к ним лично, уточню в подробностях, может, еще что всплывет.
Базы данных SQL Server содержат файлы трех типов.
Первичные файлы данных.
Первичный файл данных является отправной точкой базы данных. Он указывает на остальные файлы базы данных. В каждой базе данных имеется один первичный файл данных. Для имени первичного файла данных рекомендуется использовать расширение MDF.
Вторичные файлы данных.
Ко вторичным файлам данных относятся все файлы данных, за исключением первичного файла данных. Некоторые базы данных могут вообще не содержать вторичных файлов данных, тогда как другие содержат несколько вторичных файлов данных. Для имени вторичного файла данных рекомендуется использовать расширение NDF.
(15) Да не делал я ничего сверхъестественного, практически все свои действия описал в стартовом посте: создал второй файл. Если вы о закреплении определенных таблиц за конкретными файлами - то ничего такого не было, предоставил базе самой разбираться (вообще не был уверен в том, что трюк сработает).
Порядок моих действий:
1) Прихожу, убеждаюсь, что размер базы уперся в ограничитель. Шринкование ни к чему не приводит, свободного места в базе - 0,02% или около того. При этом обычная работа в базе идет, но принять обновление уже невозможно.
2) Создаю в файловой группе еще один файл, blabla.ndf. ВСЕ. Ухожу.
3) Через несколько дней вижу, что обновления принимаются, суммарный размер файлов превысил 10 Гб.
4) В изумлении пишу на форум )
(27) basuga, объем базы вроде контролируется в момент записи/добавления данных самим SQL'ем. А при подключении существующей базы, позволяет и бОльший объем прицепить.
(36) tigermonster,
ну, на м*сте многие м*стописатели пользуют Экспресс и очень им довольны...
хотя лично я и не представляю, как можно нормально работать в таких ограничениях... разве что в фирме из 10 человек..
Нормально можно на нем работать, правда регламентные процедуры настраивать по хитрому и бэкапы, но в инете есть примеры
А 10 человек или меньше - не в этом дело, просто так надежнее
Подскажите пожалуйста
MS SQL 2005 Express ограничен для базы данных 4ГГБ
Глуповатый вопрос. А сколько таких баз данных можно разместить на сервере?
К примеру можно 20 баз по 4ГГБ
Случайно нет ограничений? Я нигде не нашёл об этом. Но мне важно заранее зать.
А то мне плохо будет.
Успокойте меня пожалуйста.
Я думаю единственно правильный вариант - продать клиенту SQL Sever. Ребята, мы тут деньги зарабатываем или альтруистической фигней занимаемся? Если база достигла 10 гигов, то есть движения, значит и деньги у клиента есть, изъять их - вот главная задача.
(42) CoverG, SQL Server Express 2008 R2 может может распространяться в составе конечного дистрибутива ПО сторонних разработчиков. Это прописано в лицензионном соглашении.
насколько я помню проблема с SQL Express еще и в ограничении используемых процессов или я не прав, поправте, поэтому даже если обмануть с размером, быстро работать сие чудо не будет...
Ну если подойти творчески то что мешает создать что-то вроде OLAP куба из 3 SQL EXpresso-в.... :) хоть это конечно и непросто.. есть несколько вариантов.. но зато вместо денег микрософту деньги пойдут хорошему программисту.. по своей практике тоже стыкался с подобными приколами, тож удивлялся как он понимает больше 10Гб когда захочет а когда нет то нет... :) по наблюдениям он очень чуствителен к железу особенно к процам.. на AMD он как-то неправильно определяет параметры... хоть и работает чуть хуже..
(58)pumbaE, напротив, это моя вина )). В стартовом посте упоминалось, что перевод идет с *.dbf версии (сиречь с 7.7), но не уточнялось, что SQL-платформа той же версии. Прошу прощения, что невольно ввел в заблуждение.
Апну тему.
Вчера история получила неожиданное продолжение.
При групповом проведении документов база опять ругнулась, на этот раз ошибку по моей просьбе заскринили:
"SQL State: 42000
Native: 1105
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось выделить место для объекта 'dbo._1SENTRY'.'PK__1SENTRY' в базе данных '****', поскольку файловая группа 'PRIMARY' переполнена. Выделите место на диске, удалив ненужные файлы, или объекты в файловой группе, добавив дополнительные файлы в файловую группу или указав параметр автоматического увеличения размера для существующих файлов в файловой группе."
То есть ничего сверхъестественного вроде бы.
В файловой группе размер одного файла ~9500Мб, второго - ~850Мб.
Зафиксировал бэкап, потом решил пойти проторенной дорожкой: создал в файловой группе "PRIMARY" еще один файл.
Проведение прошло.
Сегодня специально нашел повод заскочить к ним, просматриваю базу:
Первый файл - 9378Мб;
Второй - 816Мб;
Третий - 43Мб.
Авторасширение у всех - 10%, рост не ограничен.
При этом все работает.
Блин, не могу понять ВООБЩЕ, что происходит. Кафкианство какое-то.
Что же мне теперь, распылять базу по куче мелких файлов, что ли?
Справка-> О программе выдает следующее:
Microsoft SQL Server Management Studio 10.50.1617.0
Компоненты доступа к данным (MDAC) 3.86.3959
Microsoft MSXML 3.0 4.0 5.0 6.0
Microsoft Internet Explorer 9.0.8112.16421
Microsoft .NET Framework 2.0.50727.5448
Операционная система 6.1.7601
Свойства сервера:
Имя: SERVER\SQLEXPRESS
Продукт: Microsoft SQL Server Express Edition with Advanced Services
Версия: 10.50.1617.0
Кластеризован: False
Свойства базы данных:
Размер: 10236,75 МБ
Свободное место: 0,00 МБ
На всякий случай привожу данные таблицы _1SENTRY:
Место, занимаемое индексом: 1 898,219 MB
Число строк: 6153611
Пространство данных: 1 978,914 MB
(54) Вы можете сразу равномерно распределить данные по файлам.
Для этого создайте все файлы одного размера, а потом сделайте реиндексацию (_1sp_DBReindex).
Данные равномерно разольются по файлам. В каждом файле останется много места. Может, проблема и уйдет.
(61) Нет, для меня это несколько неожиданно. Но если после реиндексации и равномерного распределения по файлам база будет работать устойчиво, значит контролируестся не размер базы, а размер файла. Такая информация была бы очень полезна.
(68) Надо же, почти накаркал :))
Действительно, вчера база встала колом по достижении 10240Мб. Теперь остался только вопрос, почему она ругалась на размер и продолжала работать после создания новых файлов, но это более академический интерес, к практике имеющий самое отдаленное отношение.
(55)Maxxi, свернуть базу можно без проблем, это ясно. Меня больше интересует причина такого поведения, т.к. непонятно, чего ждать от базы в дальнейшем.
лично видел базу размером 17гб на sql express 2005, админ не мучается не сворачиваети незнает проблем при работе под терминалами все нормально работает, недавно попытался свернуть вызвали спеца из питера, в итоге база просто каюкналась ни вкакую не очищала индексы
не читал что написано выше,я думаю у тебя вырос лог,попробуй сделать копию,потом удали базу на sql, пото восстанови из копии,сделай выгрузку и загрузку данных,и база уменьшится