MS SQL Server- по простому.

Фильтр по тегу: настройки


In-Memory tables. Таблицы в памяти - просто.


Начиная с MS SQL Server 2014 Microsoft предоставила к использованию технологию таблиц In-Memory, в 2016 данная технология получила продолжения и улучшения. Технология подразумевает, что определяется таблица, которая оптимизирована для нахождения в памяти сервера, что позволяет повысить производительность обработки данных в данной таблице, за счет быстроты работы данных в памяти и исключения задержек, связанные с вводом\выводом (хотя здесь есть свои нюансы). Постараюсь описать все нюансы и возможности в одной статье, чтобы не искать по разным страницам msdn, немного много, но зато все в одном.


Итак, требования
Чтобы вы могли в MS SQL Server использовать In-Memory таблицы, то должны проверить следующие требования:
-  64 – разрядный MS SQL Server 2014и выше редакции Enterprise, Developer или Evaluation
- достаточное объем самой оперативной памяти для данных и версионности строк, так же это зависит о нагрузки на использования таблиц в памяти
- Необходимо включить быструю инициализацию файлов, т.е предоставить учетной записи MS SQL Server право на «Perform volume maintenance tasks» в локальных политиках сервера. Это требования желательное, в противном случае может сыграть отрицательно на производительность.

Немного теории.

Основным хранилищем для таблиц In-Memory является основная память, т.е вся память находится в памяти. Строки записываются и считываются только из памяти. Для отказоустойчивости данный таблиц дублируются на диск, но можно настроить, чтобы таблица была только в пам...
читать дальше...
добавлено: 05 дек 16 просмотры: 2305, комментарии: 0



Настройка репликации из MS SQL Server в DB2

Недавно была задача настроить MS SQL Server репликацию на сервер IBM DB2 AS/400, задача получилась непростая и интересная. В процессе настройки репликации было много проблем, описание которых в Интернете было довольно мало. Ниже постараюсь описать проблемы и шаги настройки данной репликации:

Настройку репликации можно разделить на несколько шагов:
1)  Установка драйвера провайдера Microsoft OLE DB Provider for DB2
2)  Настройки на стороне DB2  
3) Получить строку подключения к DB2 AS/400
4) Настройка самой репликации и ее проверка


Имеем:
1) Сервер MS SQL Server 2014 12.0.5000.0 Enterprise Edition
2) Таблицу для репликации с первичным ключом

3) Подписчик в виде сервера IBM DB2 AS/400

Начинаем:

1)      Скачиваем и устанавливаем драйвера DB2OLEDB

К сожалению, найти их в Интернет была проблем, ссылка в поиске вела на сайт Microsoft https://www.microsoft.com/en-us/download/details.aspx?id=29100но там была документации по ним, да и многие ссылки в msdn-е были битые и вели на несуществующие страницы. Драйвера я нашел у себя на сервере, когда –то давно скаченные. Если найдете где они сейчас, сообщите, укажу адрес.
У меня они были версии V3.0
Установка простая, ничего сложного.
После установки имеем кроме провайдера в MS SQL Server, еще и приложение Data Access Tool, которое нам очень пригодится.

2)      Настройки на стороне DB2  

Тут работы администраторы DB2 AS/400, что он ...
читать дальше...
добавлено: 29 ноя 16 просмотры: 1378, комментарии: 0



Приятные «плюшки» при установке MS SQL 2016

В новой версии, кроме новых возможностей в части Database Engine, есть приятные графические плюшки, одни из них получаем при установке MS SQL Server.

Итак, при установке MS SQL Server 2016 редакции (в предыдущей редакции они были не так представлены)
Microsoft SQL Server 2016 (CTP3.1) - 13.0.801.12 (X64 )

Мы получаем:
1    1)      Во вкладке указания учетных записей служб MS SQL Server, есть возможность сразу предоставить права «Perform Volume Maintenance» для учетных записей.

Мелочь, а приятная штука. Что это за права и на что она влияет, можно почитать по данной теме либо здесьлибо погуглив по теме «perform volume maintenance tasks sql server».
А так же стоит проверить, что у вас стоит на ваших серверах, только нужно понимать для чего это и если на ваши сервера настроена политика полной безопасности, то включать наверно вам это не надо.

2)      И очень приятная плюшка по настройке MS SQL Server, это связанная с настройкой базы данных Tempdb.  


MS SQL Server сам определяет сколько ядер на сервере и ставит соответствующее количество файлов. У меня на виртуальной машине было 2 ядра, поэтому выставилось два файла. В этой же вкладке можно сразу выставить расположение файлов баз данных TempDB, их размер и приращения.

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

Больше плюшек при установке не заметил, если есть еще что-то, то ... это хорошо.

Так же хотелось, чтобы была во...
читать дальше...
добавлено: 18 дек 15 просмотры: 2628, комментарии: 1



Обслуживание системных баз данных MS SQL Server.

В MS SQL Server есть несколько системных баз данных:

master - В этой базе данных хранятся все данные системного уровня для экземпляра SQL Server.
Model - Используется в качестве шаблона для всех баз данных, создаваемых в экземпляре SQL Server.Изменение размера, параметров сортировки, модели восстановления и других параметров базы данных model приводит к изменению соответствующих параметров всех баз данных, создаваемых после изменения.
Msdb - Используется агентом SQL Server для планирования предупреждений и задач, так же является хранилищем пакетов SSIS, хранилищем информации по резервному копированию.
tempdb - База данных для временных объектов и для промежуточных результирующих наборов.
Resource - База данных только для чтения. Содержит системные объекты, которые входят в состав SQL Server. Системные объекты физически хранятся в базе данных Resource, но логически отображаются в схеме sys любой базы данных.

Задачей обслуживания данных баз данных является возможность восстановления данных баз данных во время их повреждения, неудачного обновления, выхода из строя оборудования и других возможных проблем.

Типичные задачи обслуживания для системных баз данных (за исключением БД TempDb и resource):
      -          Создание резервной копии баз данных (с глубиной хранения минимум 7 дней)

-          Проверка целостности баз данных инструкцией DBCC CHECKDB

Все эти операции можно завернуть в задание sql agent-а и выполнять ежедневно, благо объем данных баз данных обычно небольшой, то и операции проходят довольно быстро, а спокойствия прибавляет).
Но это еще не все, на базе данных msdb я бы хотел подробней остановиться, к типичным вышеуказанным задачам добавляются специфичные задачи обслуживания msdb.

Как известно, в базе данных msdb хранится история резервных копий по базам данных. Теперь представим сервер, у которого баз данных более 50, каждые 10-15 минут проходит создание резервное копирование файла транзакций, какой объем будет таблиц с данной информацией?
На одном месте работы, когда я только туда пришел, на сервере было более 70 баз данных, серверу было более 2,5 лет и информация по резервному копированию никогда не чистилась, в итоге объем базы данных msdb был более 20 Гб!! А это уже совсем другое время и для создания резервной копии баз данных и для проверки целостности самой базы данных, и лишняя дисковая активность, плюс и время восстановления при аварии, в итоге имеем полно минусов, которые мы можем спокойно решить.

Очистка истории резервного копирования осуществляется через процедуру:
sp_delete_backuphistory [ @oldest_date = ] 'oldest_date'

где
[ @oldest_date = ] 'oldest_date'
Самая ранняя дата, сохраненная в таблицах журнала резервного копирования и восстановления. Аргумент oldest_date имеет тип datetime и не имеет значения по умолчанию
Одну информацию почистили, что еще там хранится?!

Почта. Настроен ли у вас Database Mail  и происходит ли отсылка писем, а если еще с вложениями письма?
Вся история по нему так же хранится в базе данных msdb. Для очистки данной истории тоже есть системные процедуры:

sysmail_delete_mailitems_sp  [ [ @sent_before = ] 'sent_before' ] [ , [ @sent_status = ] 'sent_status' ]
где
[ @sent_before = ] 'sent_before'
Удаляет сообщения электронной почты до даты и времени, указанных аргументом sent_before. Аргумент sent_before имеет тип datetime и не имеет значения по умолчанию. Значение NULL соответствует всем датам.

[ @sent_status = ] 'sent_status'
Удаляет сообщения электронной почты, тип которых указан аргументом sent_status. Аргумент sent_status имеет тип varchar(8) и не имеет значения по умолчанию. Допустимые значения: sent, unsent, retrying и failed. Значение NULL соответствует всем состояниям.

sysmail_delete_log_sp  [ [ @logged_before = ] 'logged_before' ] [, [ @event_type = ] 'event_type' ]
где:

[ @logged_before = ] 'logged_before'
Удаляет записи вплоть до даты и времени, указанных в аргументе logged_before. Аргумент logged_before имеет тип datetime и значение по умолчанию NULL. Значение NULL соответствует всем датам.

[ @event_type = ] 'event_type'
Удаляет журнальные записи определенного типа, заданного аргументом event_type. Аргумент event_type имеет тип varchar(15) и не имеет значения по умолчанию. Допустимые записи: success, warning, error и informational. NULL соответствует всем типам событий.

С почтой мы решили, удалил старую информацию, что еще может быть там?
А есть ли у вас SSIS пакеты и как часто они запускаются? История по их выполнению хранится в таблице [msdb].[dbo].[sysssislog].

Для очистки ее настроена простая инструкция:
delete
  FROM [msdb].[dbo].[sysssislog] where starttime<@dt
Где @dt – дата, записи до которой следует удалить.

 После этого, выше указанные операции:
-  удаление истории резервного копирования
- очистка журнала Database Mail  
- очистка таблицы истории [msdb].[dbo].[sysssislog]

Мы заворачиваем в ms sql agent задание  и запускаем пару раз в месяц, и в итоге имеем наши компактные системные базы данных:).

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

Возможно что-то пропустил, так что буду рад комментариям.
Будь аккуратны, держите рабочее место в чистоте!:).
добавлено: 02 авг 15 просмотры: 1671, комментарии: 4



Настройки серверов HP серии DL 580 и DL 980 для MS SQL Server


Best Practice for Tuning Microsoft SQL Server on HP Proliant DL980


Очень часто компании, которые имеют деньги, приобретают высокопроизводительные и дорогие сервера для MSSQL Server, но используют их не более 10%. Причины могут быть разные. В итоге сервера простаивают, потребляют энергию, а также могут происходить “странные” события: вроде дорогой сервер, а имеет проблемы. Источником данных проблем является то, что производитель создает режимы энергопотребления, которые включаются, когда сервер не нагружен. Результатом данного режима для MS SQL Server могут быть совсем разные.

В данной статье хотелось бы рассказать о проблеме с которой пришлось столкнуться, а также сделать вольный перевод Best Practice for Tuning Microsoft SQL Server on the HP Proliant DL980.

Итак, сначала часть перевода данной статьи.

Я б хотел остановиться именно на настройках оборудования, без конфигурирования MS SQL Server, поэтому будет перевод только части.

Настройки BIOS
Для входа в BIOS необходимо при загрузке сервера нажать F9. Ниже будут представлены критические настройки, влияющие на производительность:

 
• System Options > Processor Options > Hyper-threading > Enable or Disable (see section on Hyper-threading below)
• Power Management Options > HP Power Profile > Custom
• Power Management Options > HP Power Regulator > OS Control
• Power Management Options > Advanced Power Management Options > Minimum Processor Idle Power State > C1E (reduces power when possible, for perf...
читать дальше...
добавлено: 19 апр 15 просмотры: 2193, комментарии: 0



Настройка параметров приращения баз данных MS SQL Server


В данной статье постараюсь описать об настройках баз данных, а именно об настройках файлов баз данных, а еще конкретнее об размере приращения файлов баз данных.  Данный вопрос вроде как и простой и понятный, но в то же время часто появляются вопросы у начинающих администраторов. А если пойти дальше и глубже, то данный вопрос очень важный для правильной настройки параметров баз данных критических систем. Так же хочу сразу, сказать, что при неправильной конфигурации данных параметров, это может привести и к простою системы.

Цель статьи объяснить
- в мегабайтах или процентах указывать размер приращения?!
- размер самого приращения - 1, 30, или 500 мб?!

Немного теории.
При создании базы данных, как мы знаем, создается база, с параметрами базы данных model, а именно:
Размер файла данных 5 мб,
Размер приращения файла данных 1 мб,
Размер файла логов(транзакций) 1 мб,
Размер приращения файла логов(транзакций)  10 %
Рост файлов неограничен
Модель восстановления Full.

Так же эти параметры можно поменять при создании.
Далее по мере работы с базой, роста объема данных, сервер SQL Server автоматически увеличивает размеры файлов баз данных на основе установленных параметров.
По умолчанию, размер файлов не ограничен, и это, если не проводит определенных задач администрирования, может привести к заполнению всего свободного места на диске.

Итак, по вопросам:
Указывать приращение в процентах или в мегабайтах?!

Ответ – можно так и так, в зависимости от размера базы данных.
Если размер файла базы &nbs...
читать дальше...
добавлено: 09 апр 15 просмотры: 1980, комментарии: 0



Настройка SPN для MS SQL Server - просто

Немного теории.
MS SQL Server поддерживает сетевую проверку через следующие типы проверок:

 - NTLM
 - Kerberos.

NTLMдовольно старый протокол, который еще появился с Windows NT 4.0, вместо него рекомендуется использовать Kerberos.
Kerberos – это сетевой протокол, позволяющий реализовать надежную проверку подлинности в клиента и сервера в сети, основанный на главном ключе (master key) и, так называемых, зашифрованных билетах(tickets).
MS SQL Server поддерживает Kerberos для следующих сетевых протоколов:
- TCP\IP
- Именованные каналы(Shared pipes)
- Shared memory.

SQL Server поддерживает протокол Kerberos через Windows Security Support Provider(SSPI) если используется Windows аутификация на сервере.
Если протокол Kerberos не может быть использован, то используется протокол вызов-ответ(NTLM).

Более подробно можно посмотреть на MSDN-е.
ну и практика:

Итак, после установки MS SQL Server необходимо зарегистрировать наши SPN для нашего экземпляра MS SQL Server. SPN регистрируется при установке, если изначально указали доменную учетную запись.

Первым признаком, что у вас не зарегистрированы SPN для СУБД, это наличие ошибки в логах sql server-а при загрузке сервера:

The SQL Server Network Interface library could not register the Service Principal Name (SPN) [ MSSQLSvc/SRV.domen.net:1433 ] for the SQL Server service. Windows return code: 0x2098, state: 15. Failure to register a SPN might cause integrated authentication to use NTLM instead of Kerberos. This is an informational message. Further...
читать дальше...
добавлено: 07 апр 15 просмотры: 2002, комментарии: 0