Ограничения MSSQL Express - чего-то я недопонимаю...

За решение данного вопроса уже выдалось вознаграждение в размере 10 $m.
[ Закрыто ]
Страницы: 1
1.
MaxDavid 02.02.12 20:02 URL

Смотрите, что написано в Вики (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) Какие действия стоит предпринять в этой ситуации - как мне, так и клиенту )

Ответили: (8)

Изменено: MaxDavid - 02.02.12 20:03 (очепятки)
2.
userrxx 02.02.12 20:32 URL

MS SQL Express 2008R2 - он не умеет увеличивать базы больше 10 гигабайт , но с базой больше 10 гигабайт созданной например в другой редакции он работать будет.

Ответили: (3)

3.
MaxDavid 02.02.12 20:39 URL

(2) Слышал о таком, но в данном случае база разрослась именно самостоятельно, без подсовывания извне.

4.
userrxx 02.02.12 20:45 URL

База работать будет , но изменения сделать не даст , попробуйте например изменить таблицу.

Ответили: (5)

5.
MaxDavid 02.02.12 22:35 URL

(4) Недопонял. Ограничение на размер базы все-таки, или на изменение таблиц?

Ответили: (7)

6.
bdlk 03.02.12 8:20 URL

На 2005 наблюдаю аналогичную картину. Есть база (не 1С), разрослась до 4 и остановилась, разбили на 2 файла и прекрасно работает.

7.
userrxx 03.02.12 9:52 URL

(5) MaxDavid, ситуация такая - это неоднократно обсуждалось на SQL форумах. Ограничение есть , но если при достижении границы , полностью убить , процес Sql , а потом подключить базу обратно , то все будет работать.
Но внести измения (модифицировать) таблицу будет нельзя или , второй вариант , разбить базу на части, меньше ограничения , то же будет работать.
Еще вариант , есть евалюшн версия на 180 дней без ограничений, но придется раз в полгода переставлять.

Ответили: (9)

8.
mayer 03.02.12 19:33 URL

(1) MaxDavid, очевидно, осталось только уломать клиента свернуть базу ;)
Однако, если все таки, бесплатность Express - не вопрос, ставь R2 Developer и забудь про всё ( = Datacenter edition, только для разработки, тестирования и демонстраций).

Ответ очевиден. Или у Вас с заказчиком одно желание? Посмотреть чем все кончится? ;)

Ответили: (9)

9.
MaxDavid 04.02.12 11:44 URL

(7)
У меня, похоже, второй вариант.
Нельзя ли ссылочку на подобные обсуждения? Если запрещено изменение структуры таблиц - следовательно, придется забыть об изменениях структуры базы данных, а вот текст модулей я смогу менять?
(8)
Для того, чтобы клиент выделил деньги на лицензионный SQL, мне необходимо объяснить ему, чем грозит продолжение работы с Express-версией. Кроме того, я сам не люблю, когда не понимаю логику работы приложения.

10.
userrxx 04.02.12 17:07 URL

Если база больше 10 Gb , за небольшой период , то предполагаю , что речь идет о большой организации с большим документооборотом, следовательно с достаточно большим оборотом финансовых ресурсов. А если речь идет только о большом размере базы , то ее надо свернуть. Пусть клиент сам выбирает . Странно только , что про ограничение 1Gb оперативной памяти не мешает работе.

Проблемы возникают , именно при модификации таблиц , вы отдаете команду на принятие изменений , в этот момент происходит проверка на граничные условия и все.

Ответили: (11)

11.
MaxDavid 05.02.12 0:36 URL

(10)
10 Гб - за два года. Ограничение в 1Гб оперативки не мешает, потому что база периферийная и в ней одновременно работают не более 8 человек.

Цитата
Проблемы возникают , именно при модификации таблиц , вы отдаете команду на принятие изменений , в этот момент происходит проверка на граничные условия и все.

Еще раз попрошу ссылку, если не сложно. Как-то совсем неочевидно это все (

12.
userrxx 05.02.12 8:06 URL

Например , вот-
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 хранилища на диске.

Ответили: (19)

13.
alexk-is 05.02.12 19:06 URL

(0) Пытаюсь загрузить большую базу в 2008 R2, 10Гб и больше не лезет.
"раскидал данные на два файла" - это как?

Ответили: (14)

14.
MaxDavid 05.02.12 19:47 URL

(13)
Файлы базы данных

Цитата
Базы данных SQL Server содержат файлы трех типов.
Первичные файлы данных.
Первичный файл данных является отправной точкой базы данных. Он указывает на остальные файлы базы данных. В каждой базе данных имеется один первичный файл данных. Для имени первичного файла данных рекомендуется использовать расширение MDF.
Вторичные файлы данных.
Ко вторичным файлам данных относятся все файлы данных, за исключением первичного файла данных. Некоторые базы данных могут вообще не содержать вторичных файлов данных, тогда как другие содержат несколько вторичных файлов данных. Для имени вторичного файла данных рекомендуется использовать расширение NDF.

Ответили: (15)

15.
alexk-is 05.02.12 23:45 URL

(14) Вообще-то вопрос был о другом. Не о создании файлов, а о "раскидывании данных".

Ответили: (16)

16.
MaxDavid 06.02.12 0:08 URL

(15) Да не делал я ничего сверхъестественного, практически все свои действия описал в стартовом посте: создал второй файл. Если вы о закреплении определенных таблиц за конкретными файлами - то ничего такого не было, предоставил базе самой разбираться (вообще не был уверен в том, что трюк сработает).
Порядок моих действий:
1) Прихожу, убеждаюсь, что размер базы уперся в ограничитель. Шринкование ни к чему не приводит, свободного места в базе - 0,02% или около того. При этом обычная работа в базе идет, но принять обновление уже невозможно.
2) Создаю в файловой группе еще один файл, blabla.ndf. ВСЕ. Ухожу.
3) Через несколько дней вижу, что обновления принимаются, суммарный размер файлов превысил 10 Гб.
4) В изумлении пишу на форум )

Ответили: (17)

17.
alexk-is 06.02.12 1:08 URL

(16) Может быть какая-нибудь особенная сборка MS SQL?
У меня 10.50.2500.0 и чтобы я не делал, упираюсь в общее ограничение файлов базы данных.

Ответили: (18) (19)

18.
MaxDavid 06.02.12 6:15 URL

(17) Хм... Сегодня или завтра уточню и отпишусь.

19.
AlexO 06.02.12 13:30 URL

(12) "если использовать, то файлы будут лежать в папке RBS хранилища на диске." - и как это все бэкапить? целым диском?
(17) видимо, у него как раз тот случай, когда SQL взял под себя дисковое пространство, но таблицы не были заполнены полностью - работа же шла нормально.
Он создал второй файл, и стал заполняться второй файл. А при достижении предела - уже разбито на два файла.
А у вас сразу ограничение отрабатывает, видимо..

Ответили: (20)

20.
alexk-is 06.02.12 13:44 URL

(19) Ограничение срабатывает даже на этапе выделения дискового пространства, разумеется при этом файлы базы совершенно пустые.

Ответили: (21)

21.
MaxDavid 06.02.12 16:26 URL

(20) У меня динамическое увеличение размера обоих файлов по мере заполнения... Прирост 10%, кажется.
В общем, дозвониться не смог, поэтому опишу, что помню:
База 7.7.
Ставил SQl не я, другой человек, он как-то шаманил со связкой 1с7.7-SQL, в частности, подменял dll-ки в системной папке на, кажется, от более старой версии. Потом еще ставил зачем-то MS SQL 2005 Express поверх 2008r2 - я так и не понял, какого икса.
В дальнейшем уже я, для преодоления проблем совместимости, ставил секретный релиз. В общем, гремучая смесь на выходе еще та. Но сама база 1С крутится на сервере SQL 2008, я смотрел специально, сервер 2005 не запускается вообще.
Можно было бы списать на замененные dll-ки, но как тогда объяснить появление предупреждения о превышении размера файлов?
Завтра еще раз зайду к ним лично, уточню в подробностях, может, еще что всплывет.

22.
cool.vlad4 06.02.12 16:34 URL

Может в тему http://sysadmins.ru/post9451305.html

Ответили: (24) (25)

24.
MaxDavid 07.02.12 23:35 URL

(22) В третьем посте я уже упоминал, что слышал о такой фишке. Но в данном случае размер базы превысил лимит во время работы пользователей.

25.
alexk-is 08.02.12 9:40 URL

(22) Попробовал. Не прокатило. Получил ту же ошибку про превышение суммарного объема файлов базы, но чуть в другой формулировке.

26.
1cvirus 08.02.12 21:42 URL

Так ка-же все-таки по правильному MS SQL обманывать? Я создавал в express 2005 базу, останавливал, подсовывал большую базу

27.
basuga 08.02.12 22:51 URL

А у Вас точно стоит Express ??? Может отломал кто-то его? ) Потому как у меня не получается ни одним способом увеличить базу выше лимита )

Ответили: (28)

28.
GranVaz 09.02.12 22:25 URL

(27) basuga, объем базы вроде контролируется в момент записи/добавления данных самим SQL'ем. А при подключении существующей базы, позволяет и бОльший объем прицепить.

29.
Andrey12Andrey 10.02.12 10:08 URL

При покупке MS SQL Server 2008r2 для него ничего докупать не надо?

34.
victor_vv 11.02.12 15:01 URL

Есть ограничение по объему данных в SQL express

SQL Express 2005, 2008 - максимальный объем базы данных 4 Gb.
SQL Express 2008 R2 - максимальный объем базы данных 10 Gb.

35.
serginios 12.02.12 10:17 URL

надо полный скл ставить

36.
tigermonster 12.02.12 14:45 URL

согласен. полный SQL и никаких проблем. При очередной проблеме клиенту надо указать на это. Как известно, скупой платит дважды!

Ответили: (37)

37.
AlexO 12.02.12 21:09 URL

(36) tigermonster,
ну, на м*сте многие м*стописатели пользуют Экспресс и очень им довольны...
хотя лично я и не представляю, как можно нормально работать в таких ограничениях... разве что в фирме из 10 человек..

38.
1cvirus 12.02.12 23:11 URL

Нормально можно на нем работать, правда регламентные процедуры настраивать по хитрому и бэкапы, но в инете есть примеры
А 10 человек или меньше - не в этом дело, просто так надежнее

39.
mazafaka007 13.02.12 0:48 URL

Подскажите пожалуйста
MS SQL 2005 Express ограничен для базы данных 4ГГБ
Глуповатый вопрос. А сколько таких баз данных можно разместить на сервере?
К примеру можно 20 баз по 4ГГБ
Случайно нет ограничений? Я нигде не нашёл об этом. Но мне важно заранее зать.
А то мне плохо будет.
Успокойте меня пожалуйста.

Ответили: (41)

40.
Barchuk 13.02.12 19:22 URL

Я думаю единственно правильный вариант - продать клиенту SQL Sever. Ребята, мы тут деньги зарабатываем или альтруистической фигней занимаемся? Если база достигла 10 гигов, то есть движения, значит и деньги у клиента есть, изъять их - вот главная задача.

41.
alexk-is 15.02.12 21:47 URL

(39) Ограничения только на объем файлов с данными, относящихся к одной базе данных. Баз данных может быть очень много.

42.
CoverG 17.02.12 8:17 URL

а вы еще лицензию почитайте, там написано что применять SQL Express можете только для разработки... :)

Ответили: (43)

43.
GreenLab 19.02.12 1:04 URL

(42) CoverG, SQL Server Express 2008 R2 может может распространяться в составе конечного дистрибутива ПО сторонних разработчиков. Это прописано в лицензионном соглашении.

44.
GTSE 20.02.12 12:25 URL

4gb предел у express

46.
ПиН 21.02.12 16:13 URL

насколько я помню проблема с SQL Express еще и в ограничении используемых процессов или я не прав, поправте, поэтому даже если обмануть с размером, быстро работать сие чудо не будет...

47.
erdos 21.02.12 20:29 URL

sql express еще имеет ограничение на объем ОЗУ - 1ГБ

48.
HDA 22.02.12 16:43 URL

Ну если подойти творчески то что мешает создать что-то вроде OLAP куба из 3 SQL EXpresso-в.... :) хоть это конечно и непросто.. есть несколько вариантов.. но зато вместо денег микрософту деньги пойдут хорошему программисту.. по своей практике тоже стыкался с подобными приколами, тож удивлялся как он понимает больше 10Гб когда захочет а когда нет то нет... :) по наблюдениям он очень чуствителен к железу особенно к процам.. на AMD он как-то неправильно определяет параметры... хоть и работает чуть хуже..

49.
AAA2011 24.02.12 8:56 URL

Shrink БД когда начинает разрастаться не помешает раз в месяц делать!!!

50.
blackpopov 24.02.12 9:07 URL

Точно не помню гдеименно, но в SQL можно увеличивать размер базы (по средствам реестра) в инете найди!!!

51.
b099ard 24.02.12 13:59 URL

Через Entrpraise Manager, в свойствах базы, можно сделать ресайз базы.

53.
pumbaE 27.02.12 17:28 URL

db2 не предлагать?

Ответили: (57)

54.
MaxDavid 29.02.12 11:22 URL

Апну тему.
Вчера история получила неожиданное продолжение.
При групповом проведении документов база опять ругнулась, на этот раз ошибку по моей просьбе заскринили:
"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

Ответили: (60)

55.
Maxxi 29.02.12 15:14 URL

Попробовать удалить ненужные данные - подчистить базу, попробовать ужать базу

Ответили: (56)

56.
MaxDavid 29.02.12 16:48 URL

(55)Maxxi, свернуть базу можно без проблем, это ясно. Меня больше интересует причина такого поведения, т.к. непонятно, чего ждать от базы в дальнейшем.

57.
MaxDavid 29.02.12 16:52 URL

(53) pumbaE, а разве 7.7 заведется под db2? Сходу ссылок (именно на 7.7) не нашел, поделитесь, если не жалко.

Ответили: (58)

58.
pumbaE 29.02.12 17:58 URL

(57) MaxDavid, извините в постановке задачи не увидел нигде 7.7 и предположил что 8.2, ну а дальше надеюсь понятен ход моих мыслей...

Ответили: (59)

59.
MaxDavid 29.02.12 18:15 URL

(58)pumbaE, напротив, это моя вина )). В стартовом посте упоминалось, что перевод идет с *.dbf версии (сиречь с 7.7), но не уточнялось, что SQL-платформа той же версии. Прошу прощения, что невольно ввел в заблуждение.

60.
valval 29.02.12 22:39 URL

(54) Вы можете сразу равномерно распределить данные по файлам.
Для этого создайте все файлы одного размера, а потом сделайте реиндексацию (_1sp_DBReindex).
Данные равномерно разольются по файлам. В каждом файле останется много места. Может, проблема и уйдет.

Ответили: (61)

61.
MaxDavid 29.02.12 23:07 URL

(60) Спасибо, попробую. А вы не скажете, за счет чего база превысила ограничение в 10 Гб?

Ответили: (62) (68)

62.
valval 01.03.12 12:55 URL

(61) Нет, для меня это несколько неожиданно. Но если после реиндексации и равномерного распределения по файлам база будет работать устойчиво, значит контролируестся не размер базы, а размер файла. Такая информация была бы очень полезна.

63.
slydernet 01.03.12 15:55 URL

лично видел базу размером 17гб на sql express 2005, админ не мучается не сворачиваети незнает проблем при работе под терминалами все нормально работает, недавно попытался свернуть вызвали спеца из питера, в итоге база просто каюкналась ни вкакую не очищала индексы

57.
Erhov_egor 02.03.12 7:28 URL

не читал что написано выше,я думаю у тебя вырос лог,попробуй сделать копию,потом удали базу на sql, пото восстанови из копии,сделай выгрузку и загрузку данных,и база уменьшится

65.
kotuke 05.03.12 6:00 URL

Тоже встречал базы размером около 20 Гб, и вы не поверите, при переносе всё проходило успешно. Благо это было не у моего клиента, а разовая работка.

66.
Behemoth1 05.03.12 13:50 URL

помнится как то проходил фокус с подменой файла во время останова сервера..

67.
itit 05.03.12 14:36 URL

не сталкивался, у меня пока норм

68.
alexk-is 08.03.12 11:07 URL

(61) База ещё не превысила ограничение в 10 Гб, но скоро превысит...
10 Гб это 10240 Мб. Так что осталось ждать не долго...

А я ведь повелся. Думал, в самом деле, удалось преодолеть ограничение.

Ответили: (69)

Это лучший ответ
69.
MaxDavid 08.03.12 12:58 URL

(68) Надо же, почти накаркал :))
Действительно, вчера база встала колом по достижении 10240Мб. Теперь остался только вопрос, почему она ругалась на размер и продолжала работать после создания новых файлов, но это более академический интерес, к практике имеющий самое отдаленное отношение.

Страницы: 1