Как правильно настроить MS SQL сервер для работы с 1С
Во-первых нам нужен только сервер, остальные службы, которые к нему относятся и возможно кто-то ими пользуется, нам только тормозят работу. Останавливаем и отключаем такие службы, как FullText Search (у 1С собственный механизм полнотекстового поиска), I ntegration S ervices и иже с ними.
SQL Server (sqlservr.exe)
SQL Server Agent (SQLAGENT.exe)
SQL Writer (sqlwriter.exe)
Далее в свойствах сервера, через Server Management Studio устанавливаем:
Максимально отведенное серверу количество памяти из расчета:
[Общее количество оперативной памяти сервера] – [4ГБ под систему(2ГБ если Win2003)] – [1,5 ГБ * количество процессов rphost (если SQL и 1С на одном сервере вращаются.)] Например если у нас на сервере всего 36 ГБ оперативной памяти, стоит Windows 2008 и запущено 8 процессов rphost то рассчет идет так: 36 - 4 - 1.5*8 = 20 ГБ ставим ограничение для SQL.
Это необходимо для того, чтобы sql сервер рассчитывал на этот объем и чистил память заблаговременно, т.к. если поставить неограниченный объем, и сервер попробует получить память, которой нет, он начинает крепко задумываться над своим поведением и крайне медленно отвечать на запросы.
Максимальное количество потоков (Maximum worker threads) ставим 2048, по умолчанию стоит 0 и с таким значением сервер не создает больше 255 потоков, а этого ему не хватает (установлено опытным путем, что при большом количестве одновременных транзакций сервер реально начинает быстрее работать). Также выставляем галку повышенного приоритета сервера ( Boost priority ).
Собственно с глобальными настройками все. Теперь переходим к настройкам рабочей базы данных (или нескольких баз, если такое имеет место быть).
2. Настройка рабочей базы данных
Заходим в свойства нужной нам базы данных:
Если база еще не развернута из .dt файла, и вы знаете примерный ее размер, то первичному файлу размер инициализации лучше сразу указать >= размера базы, но это дело вкуса, он все равно вырастет при развертке. А вот Автоувеличение размера надо обязательно указать примерно по 200 МБ на базу и по 50 МБ на лог, т.к. значения по умолчанию – рост по 1МБ и по 10% очень сильно тормозят работу сервера, когда ему при каждой 3й транзакции надо файл увеличивать. Также, если не используетет RAID массив, то хранение файла базы и файла лога лучше указать на разных физических дисках. Ну и ограничить лог 2-4 ГБ, чтоб сильно не пух.
Остальные настройки как на скришоте:
С настройками базы все. Осталось настроить регламентные задания.
3. Настройка регламентных заданий
Сначала создаем Maintenance Plan в разделе Management:
Дефрагментацию индексов и сбор статистики нужно производить ежедневно, т.к. если фрагментированость индексов > 25%, это резко снижает производительность сервера. Дефрагментация и обновление статистики делается быстро и не требует отключения пользователей. Насколько ваши индексы фрагментированы можно посмотреть очень хорошей и многофункциональной обработкой Гилева Вячаслава, с названием Lock1C.epf, и которую он убрал со своего сайта из-за наезда 1С-ников за нарушение какого-то пункта лицензионного с., но хорошему админу гугл всегда в помощь J . Также желательно делать полную переиндексацию, с блокировкой БД, хотя бы раз в неделю, естественно после полной переиндексации сразу же делается дефрагментация индексов и обновление статистики.
Настройка бэкапа средствами SQL.
Ту все просто, добавляем 2 новых задания Agent'у:
Full BackUp, с периодичностью 1 раз в сутки и 2мя шагами T-SQL скриптов:
1. BACKUP DATABASE [< ИмяБД >] TO DISK = N'< ПутьКПапке >\Backup\< ИмяБД >.bak' WITH NOFORMAT, INIT, NAME = N'< ИмяБД >-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
DBCC SHRINKFILE (N'< ИмяБД >_log' , 0)
И второе задание с периодичностью 1 раз в 1-2 часа Differencial BackUp и с одним T-SQL скриптом:
BACKUP DATABASE [< ИмяБД >] TO DISK = N'< ПутьКПапке >\Backup\< ИмяБД >Diff.bak' WITH DIFFERENTIAL , NOFORMAT, INIT, NAME = N'< ИмяБД >-Differential Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
Такой бэкап делается, даже при активной работе пользователей, 4-6 минут и практически не сказывается на быстродействии сервера.
Да, и добавим очистку процедурного после переиндексации (раз в неделю), в задание, кторое у же появилось в агенте после сохранения Maintenance Plan добавляем еще один шаг:
Не забыв поменять в настройках первого шага после завершения не выходить, а перейти к следующему. Спс gilv за подсказку.
Вот, собственно, и все. По поводу бэкапа средствами 1С: //infostart.ru/public/65849/ - Full BackUp и выгрузку 1С можно делать одновременно.
Специальные предложения- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
При индексации блокируется только таблица , незачем делать ее в режиме тестирования и исправления.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
прецедент, инцидент, претеНдент
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(249) кто хочет тот найдет, кто не хочет, тот придумает почему нельзя найти некоторые регламенты нужно делать не зависимо от того "как кому то хочется работать" вы что бэкапы к примеру не будете делать из-за того что 24х7 ? ну-ну
если у вас за ночь не успевает дефрагментация - значит вам надо перепроектировать структуру хранения данных, обрезать периодически базу, увеличивать скорость записи дисков и другие элементарные действия, а не ныть
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Более грамотный подход к архивированию читаете в учебнике http://www.learn1c.ru/ebooks/book002.html При подходе описанном автором 100% геморрой при восстановлении. и проблнмы с log'ом А настройка сервера для новичков -хороша.
- Скопировать ссылку
- Перейти
(15) Во-первых ваша ссылка для 7ки (кстати тоже неоднократно посещалась при поиске информации), во вторых никакого геморроя с восстановлением - раз в 2 дня в тестовую базу восстанавливаем: 20 минут из полного файла, 15 минут из diff файла и готовая база примерно на час отстающая от рабочей. А вот при полной модели бэкапа (full а не simple), какраз имеете огромный геморой с восстановлением, т.к. если лог натянете на полный бэкап, то diff не встанет, если diff натянете, то лог не встанет. целостность базы нарушена полюбому. А в simple-модели бэкап лога не нужен.
(16) Если у вас rphost'ы максимум по 500 МБ отъедают памяти в процессе работы, то столько им и оставляйте. Сдесь взято по максимуму и у нас они действительно по столько иной раз занимают (правда не видал, когда все одновременно, но чем чорт не шутит. )
- Скопировать ссылку
- Перейти
Помимо размера и log рабочей базы необходимо также настраивать размер и log базы tempdb Размер этой базы должен составлять от 25% до 40% самой большой базы данных Лучший вариант размещения базы данных tempdb – на отдельном диске или дисковом массиве RAID0 (эта база данных не нуждается в восстановлении). Приращение лога для temdb - обязательно не в процентах.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Boost priority - что дает? Сервер 1С находится вместе с сиквелом? почему минимум = 0?
наверно слишком пафосно "правильная настройка", скорее "настройка для случая Х" еще многе зависит от операционки, разрядности и т.п.
вцелом труд в правильном направлении сделан, хотя некоторые выводы необоснованы
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Сколько сетевух на сервере? Может быть пора посмотреть 10гигабитку. К тому же не всегда есть возможность и целесообразность совмещать. А то Вас тут почитают и таких дров наломают.
Но это так, непринципиальная критика. Просто не хотелось бы рядом с дельными советами видеть "отсебятину". Т.е. лучше меньше советов, но максимально дающих эффект.
- Скопировать ссылку
- Перейти
Не хорошо писать письма без обратного адреса. а по делу- по комментируйте(дело было в понедельник 15 февраля), что и как вы по Вашей схеме будете восстанавливать: ЗАГОЛОВОК: Microsoft SQL Server Management Studio ------------------------------
Не удается вывести требуемое диалоговое окно.
Не удается вывести требуемое диалоговое окно. (SqlMgmt)
SQL Server обнаружил логическую ошибку ввода-вывода, связанную с согласованностью: неверный идентификатор страницы (ожидаемый 1:712; фактический 0:0). Она произошла при прочитать страницы (1:712) в базе данных с идентификатором 4 по смещению 0x00000000590000 файла "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MSDBData.mdf". Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных событий. Это серьезная ошибка, которая угрожает целостности базы данных и должна быть немедленно исправлена. Выполните полную проверку базы данных на согласованность (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами; дополнительные сведения см. в электронной документации по SQL Server. (Microsoft SQL Server, ошибка: 824)
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
100Gb - техника обычная для нашего бизнеса.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Дык по английски мы читать не умеем. А восстановление заняло 5 минут. Всего лишь упал Log у Master. Какой переезд на другой сервер, какой ребут, я же писал магазин, работающий 24 часа
А вообще по жизни, был хороший ресурс, но теперь для поднятия рейтинга постят ВСЕ. Хорошо если читает грамотной, он разберется ,что к чему, а новичек, прочтет сделает по данной схеме получит геморой в лучшем случае или увольнение после очередного падения сервера Читайте и думайте.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(49) причем тут статистика и кэш? надо просто понимать рекомендации, а не только тупо их выполнять если объем данных изменяется не сильно, то очистка процедурного кэша скорее зло, так как скулю придется компилировать запрос заново
именно поэтому у админов есть термины типа "прогретый кэш", потому что все необходимые данные подняты в кэш и скомпилированы запросы т.е. при первом запуске когда кэши "холодные" запросы исполняются дольше
резюмирую: процедурный кэш надо чистить не ради чистки, а если вы видите что система очень сильно загруженно и очитска кэша ускоряет общую производительность (т.е. когда заново скомплированный запрос работает с новыми условиями типа статистики, объемов строк, индексами и т.п.)
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(65) нет, не хочу то что я считал нужным расказать публично, я выкладываю на свой сайт gilev.ru все что считаю конкурентным преимущество, я "продаю" на курсах или ввиде консалтинговых услуг
но если кто сомневается, что скуль просядет на 1000 юзерах, попробуйте сами.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
про Максимальное количество потоков по-умолчанию ссылка: MSSQL max worker threads на msdn
Вроде неплохие базовые настройки, плохо конечно, что без описания почему-куда, тут gilv верно отметил.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Спасибо. Лишний раз, для спокойствия, перепроверил параметры скуля.
Кстати, встречалась информация, что связка WinServer2008+MSSQL2008R2+1C8.1 (да и 8.2) дают значительно большие тормоза, чем более ранние версии скуля и винды. Даже тесты делались, дважды тестировали на одном железе, но с разным софтом:
1 Win2003 (32bit) + SQL 2005 Первый тестовый запуск 3:30 Второй тестовый запуск 2:30
2 Win2003 (32bit) + SQL 2005 + оптимизации Первый тестовый запуск 3:30 Второй тестовый запуск 2:30
3 Win2008R2 + SQL 2008 + 1C x64 Первый тестовый запуск 5:30 Второй тестовый запуск 4:30
4 Win2008R2 + SQL 2008 + 1C x86 Первый тестовый запуск 5:30 Второй тестовый запуск 4:30
5 Win2008R2 + SQL 2005 + 1C x64 Первый тестовый запуск 5:20 Второй тестовый запуск 4:15
6 Win2008R2 + SQL 2005 + 1C x86 Первый тестовый запуск 5:20 Второй тестовый запуск 4:15
7 Win2003 (32bit) + SQL 2005 Первый тестовый запуск 3:15 Второй тестовый запуск 2:20
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(79) Для файловой системы NTFS дефрагментация в принципе не обязательна. Да и на FAT она дает прирост производительности когда часто записывается / удаляется / перезаписывается большое количество мелких файлов. А база данных храниться в двух больших файлах, дефрагментация ничем не поможет.
(78) (80) Здесь же на инфостарте встречал публикацию (правда найти сейчас не могу, может быть так-же в комментариях было где-то), в которой говорилось о том, что Win 2008x64 + SQL 2008x64 дают большую производительность, чем 2003. Насколько я знаю в 2008 винде очень сильно переписана процедура работы с файловой системой, ускоряющая работу с файлами если не на порядок, то в разы точно. И результаты таких тестов являются частным случаем для конкретного оборудования. Если на сервере 2 ГБ памяти, то и дибилу понятно что поставив туда 2008-е вин и скуль, вы снизите производительность в разы, по сравнению с 2003-ми. Вобщем желательно самому на своем оборудовании протестировать и решить с чем работать комфортнее. Да и поддержка M$, обновления и т.п. для 2008-х покачественнее, ИМХО.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(83) Какая разница какого размера диски? Это же не файловый сервер, а сервер БД.
Вот интересная статья про NTFS:
В самом начале утверждалось, что NTFS не подвержена фрагментации файлов. Это оказалось не совсем так, и утверждение сменили - NTFS препятствует фрагментации. Оказалось, что и это не совсем так. То есть она, конечно, препятствует, но толк от этого близок к нулю. Сейчас уже понятно, что NTFS - система, которая как никакая другая предрасположена к фрагментации, что бы не утверждалось официально. Единственное что - логически она не очень от этого страдает. Все внутренние структуры построены таким образом, что фрагментация не мешает быстро находить фрагменты данных. Но от физического последствия фрагментации - лишних движений головок - она, конечно, не спасает. И поэтому - вперед и с песней. -------------------------------------------------------------------------------- NTFS - очень экономная система. Размер кластеров в ней разумно минимален - обычно это 4 кб (на стандартных сейчас дисках в десяток-другой гигабайт). Как известно, система сильнее всего фрагментирует файлы когда свободное место кончается, когда приходится использовать мелкие дырки, оставшиеся от других файлов. Тут возникает первое свойство NTFS, которое прямо способствует серьезной фрагментации. Диск NTFS поделен на две зоны. В начала диска идет MFT зона - зона, куда растет MFT, Master File Table. Зона занимает минимум 12% диска, и запись данных в эту зону невозможна. Это сделано для того, чтобы не фрагментировался хотя бы MFT. Но когда весь остальной диск заполняется - зона сокращается ровно в два раза icon_smile.gif. И так далее. Таким образом мы имеем не один заход окончания диска, а несколько. В результате если NTFS работает при диске, заполненном на около 90% - фрагментация растет как бешенная.
• Попутное следствие - диск, заполненный более чем на 88%, дефрагментировать почти невозможно - даже API дефрагментации не может перемещать данные в MFT зону. Может оказаться так, что у нас не будет свободного места для маневра.
Далее. NTFS работает себе и работает, и всё таки фрагментируется. Этому способствует странный алгоритм нахождения свободного места - второе серьезное упущение. Если файл пишется большими кусками - всё нормально. Но если файл медленно растет - алгоритм такой: берется какой-то определенный объем диска и заполняется файлом до упора. Причем по очень интересному алгоритму: сначала заполняются большие дырки, потом маленькие. Т.е. типичное распределение фрагментов файла по размеру на фрагментированной NTFS выглядит так (размеры фрагментов): 16 - 16 - 16 - 16 - 16 - [скачек назад] - 15 - 15 - 15 - [назад] - 14 - 14 - 14 . 1 - 1 - 1 -1 - 1. Так процесс идет до самых мелких дырок в 1 кластер, несмотря на то, что на диске наверняка есть и гораздо более большие куски свободного места.
Может быть я забыл написать что-то еще. Смысл в том, что никак нельзя сказать, что NTFS препятствует фрагментации файлов. Наоборот, она с радостью их фрагментирует. Фрагментация NTFS через пол года работы доведет до искреннего удивления любого человека, знакомого с работой файловой системой. Поэтому приходится запускать дефрагментатор. Но на этом все наши проблемы не заканчиваются, а, увы, только начинаются. -------------------------------------------------------------------------------- В NT существует стандартное API дефрагментации. Обладающее интересным ограничением для перемещения блоков файлов: за один раз можно перемещать не менее 16 кластеров (!), причем начинаться эти кластеры должны с позиции, кратной 16 кластерам в файле. В общем, операция осуществляется исключительно по 16 кластеров. Следствия:
• В дырку свободного места менее 16 кластеров нельзя ничего переместить (кроме сжатых файлов, но это тонкости).
• Файл, будучи перемещенный в друге место, оставляет после себя (на новом месте) "временно занятое место", дополняющее его по размеру до кратности 16 кластерам.
• При попытке как-то неправильно ("не кратно 16") переместить файл результат часто непредсказуем. Что-то округляется, что-то просто не перемещается.. Тем не менее, всё место действия щедро рассыпается "временно занятым местом". Наверное о нас заботятся, чтобы мы отстали от этого места - чтобы алгоритм дефрагментации не клинило. icon_smile.gif
• "Временно занятое место" освобождается через некоторое время, обычно где-то пол минуты. Гы.
Тем не менее, логично было бы использовать это API. Его и используют. Поэтому процесс стандартной дефрагментации, с поправками на ограниченность API, идет следующими фазами, не обязательно в этом порядке:
• Вынимание файлов из MFT зоны. Не специально - просто обратно туда их положить не представляется возможным. Безобидная фаза, и даже в чем то полезная.
• Дефрагментация файлов. Безусловно полезный процесс, несколько правда осложняемый ограничениями кратности перемещений - файлы часто приходится перекладывать сильнее, чем это было бы логично сделать по уму.
• Дефрагментация MFT, виртуалки (pagefile.sys) и каталогов. Возможна через API только в Windows2000, иначе - при перезагрузке, отдельным процессом, как в Diskeeper-е.
• Складывание файлов ближе к началу - так называемая дефрагментация свободного места. Вот это - воистину страшный процесс.
Допустим, мы хотим положить файлы подряд в начало диска. Кладем один файл. Он оставляет хвост занятости дополнения до кратности 16. Кладем следующий - после хвоста, естественно. Через некоторое время, по освобождению хвоста, имеем дырку <16 кластеров размером. Которую потом невозможно заполнить через API дефрагментации! В результате, до оптимизации картина свободного места выглядела так: много дырок примерно одинакового размера. После оптимизации - одна дыра в конце диска, и много маленьких ><16 кластеров дырок в заполненном файлами участке. Какие места в первую очередь заполняются? Правильно, находящиеся ближе к началу диска мелкие дырки ><16 кластеров. Любой файл, плавно созданный на прооптимизированном диске, будет состоять из дикого числа фрагментов. Да, диск потом можно оптимизировать снова. А потом еще раз.. и еще.. и так - желательно каждую неделю. Бред? Реальность.>
Таким образом, имеется два примерно равнозначных варианта. Первый - часто оптимизировать диск таким дефрагментатором, смиряясь при этом с дикой фрагментацией заново созданных файлов. Второй вариант - вообще ничего не трогать, и смириться с равномерной, но гораздо более слабой фрагментацией всех файлов на диске.
Пока есть один дефрагментатор, который игнорирует API дефрагментации и работает как-то более напрямую - Norton Speeddisk 5.0 для NT. Когда его пытаются сравнить со всеми остальными - Diskeeper, O&O defrag, т.д. - не упоминают этого главного, самого принципиального, отличия. Просто потому, что эта проблема тщательно скрывается, по крайней мере уж точно не афишируется на каждом шагу. Speeddisk - единственная на сегодняшний день программа, которая может оптимизировать диск полностью, не создавая маленьких незаполненных фрагментов свободного места. Стоит добавить также, что стандартное API не может дефрагментировать тома NTFS с кластером более 4 Кбайт - а SpeedDisk, по прежнему, может.
К сожалению, в Windows 2000 засунули дефрагментатор, который работает через API, и соответственно плодит дырки <16 кластеров. Так что как только появится (если уже не появился) - так сразу надо качать Speeddisk для W2k. Как некоторый вывод из всего этого - все остальные дефрагментаторы при одноразовом применении просто >вредны. Если вы запускали его хоть раз - нужно запускать его потом хотя бы раз в месяц, чтобы избавится от фрагментации новоприбывающих файлов. В этом основная суть сложности дефрагментации NTFS теми средствами, которые сложились исторически.
Общий вывод: если начнете делать дефрагментацию, то ее необходимо будет делать постоянно, иначе начнутся тормоза. ИМХО вывод: Нахрена она нужна если на быстродействии базы это никак не скажется, т.к. база лежит (у грамотных админов) на отдельном от системы и TEMP'а диске одним(двумя) файлами. Это как иконка в автомобиле - если с ней вы чувствуете себя спокойнее, то весить надо обязательно, т.к. уверенность в себе водителя за рулем помогает безаварийному вождению.