Функции обеспечения постоянной доступности SQL Server 2016 Enterprise Edition

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

Ведущая функция обеспечения постоянной доступности SQL Server охватывает экземпляры отказоустойчивого кластера AlwaysOn (FCI), группы доступности AlwaysOn (AG) и зеркальное отображение базы данных (Database Mirroring). Эти встроенные технологии повышают доступность, предоставляя различные типы защиты серверов и баз данных. AlwaysOn FCI работает на уровне сервера; кластеры спроектированы для защиты от незапланированных простоев. В случае отказа сервера служба SQL Server перезапускается на оставшемся узле кластера. Группы доступности AlwaysOn и зеркальное отображение базы данных обеспечивают защиту на уровне базы данных. Если сервер и база данных становятся недоступными, то SQL Server может автоматически отрабатывать отказ, и вторичная реплика или зеркало базы данных станет основной базой данных. В данном случае защита ориентирована на базу данных, а не на весь экземпляр SQL Server.

Перечисленные технологии доступности SQL Server — наиболее известные, но в выпуске SQL Server 2016 Enterprise имеется множество менее известных функций, совместное применение которых поможет повысить доступность базы данных.

Операции в сети

Одна из наиболее важных функций доступности в выпуске SQL Server 2016 Enterprise — операции в сети. Они позволяют вносить изменения в базу данных и ее настройки без перевода в автономное состояние или отключения сервера.

  • «Горячее» подключение памяти и процессора. Возможность «горячего» подключения процессора и памяти особенно полезна в виртуальной среде, в которой виртуальная машина может динамически добавлять память в ответ на изменение рабочих нагрузок.
  • Оперативное восстановление страниц и файлов. Позволяет восстанавливать файлы и страницы в базе данных, не отключая ее от сети. В простой модели восстановления вы можете восстановить автономный файл, пока база данных подключена к сети. При полной модели восстановления можно восстановить страницы, пока база данных «в сети».
  • Индексация в сети. Индексация в сети позволяет создавать, изменять и удалять индексы, пока пользователи имеют доступ к базовой таблице, данным кластеризованного индекса и любым связанным некластеризованным индексам во время операций с индексами.
  • Изменение схемы в сети. Другой способ увеличить время непрерывной работы подразумевает возможность вносить изменения в схему таблицы в сети. При этом таблица по-прежнему постоянно доступна.

Функции доступности данных

Выпуск SQL Server 2016 Enterprise также располагает рядом функций, предназначенных для повышения доступности данных.

  • Моментальные снимки базы данных. Это предназначенные только для чтения статистические представления базы данных SQL Server. Они транзакционно согласованы с исходной базой данных на момент создания моментального снимка.
  • Быстрое восстановление. Функция резервного копирования и восстановления, которая позволяет перевести базу данных в режим «в сети» сразу после завершения этапа REDO (применение зафиксированной транзакции) процесса восстановления. Ждать выполнения этапа UNDO (отмены зафиксированной транзакции) процесса восстановления не нужно.

Зеркальные резервные копии — последняя линия обороны. Возможность восстановить резервные копии в случае катастрофического отказа чрезвычайно важна. Но в некоторых случаях резервная копия может оказаться испорченной или непригодной для применения. Вероятность такого исхода снижается благодаря созданию копии резервного файла.

Повышаем время непрерывной работы

Все перечисленные функции устраняют различные проблемы, влияющие на доступность базы данных. Объедините их, и вы убедитесь, насколько эффективно функции обеспечения постоянной доступности SQL Server 2016 Enterprise Edition могут повысить время непрерывной работы и доступность приложений, критически важных для успешной работы компании.

Осваиваем SQL Server 2016 с помощью бесплатных средств обучения

Компания Microsoft выпустила версию системы управления базами данных SQL Server 2016, отличительной чертой которой стало невероятное количество новых функций. Число улучшений столь велико, что загруженному работой специалисту по базам данных трудно изучить их все. На этот случай Microsoft предоставляет несколько бесплатных обучающих ресурсов, которые помогут освоить новшества SQL Server 2016.

Электронная книга Introducing Microsoft SQL Server 2016

(https://www.microsoft.com/en-us/server-cloud/products/sql-server-2016/)

Одна из лучших отправных точек для знакомства с новым выпуском SQL Server 2016 — электронная книга Microsoft. Пока она существует в предварительной версии, так что наверняка впоследствии будет обновляться. На сегодня в книге семь глав; в ней рассказано о новых усовершенствованиях, относящихся к безопасности, таких как Always Encrypted («Постоянное шифрование»), Row-Level Security («Защита на уровне строк») и Dynamic Data Masking («Динамическое маскирование данных»). В разделе обеспечения доступности данных описаны улучшения в группах доступности AlwaysOn. Раздел Database Engine содержит информацию о новом хранилище запросов Query Store и функциях базы данных Stretch. Кроме того, в электронной книге можно найти сведения об интеграции нового языка программирования R и мобильных отчетов.

Учебники по SQL Server 2016

(https://msdn.microsoft.com/en-us/library/hh231699.aspx)

Специалисты Microsoft подготовили несколько учебников о различных подсистемах SQL Server 2016. В основном эти учебники представляют собой наборы инструкций, которые помогут изучить основы каждого компонента SQL Server. Они не сосредоточены исключительно на новых компонентах. Для большинства учебников требуются образцовые базы данных AdventureWorks2016. Microsoft предоставляет следующие учебники по SQL Server 2016:

  • Analysis Servers («Серверы анализа данных»);
  • «Службы Reporting Services»;
  • «Службы Integration Services»;
  • «Ядро СУБД»;
  • «Репликация»;
  • «Службы R Services».

Видеопрезентации на канале Channel 9

(https://channel9.msdn.com/Search?term=SQL%20Server%202016#ch9Search)

Если вы предпочитаете учиться, просматривая видеоролики и презентации, используйте видеоматериалы на канале Channel 9, многие из которых подготовлены менеджерами продуктов SQL Server. Здесь есть видео о Microsoft SQL Server 2016 Mobile Reports, SQL Server GA и SQL on Linux, сборе бизнес-аналитики с использованием SQL Server 2016, ответы на часто задаваемые вопросы об R Services, обновлении и переходе на SQL Server 2016, материалы об усовершенствованиях SQL Server 2016, базе данных Stretch в Microsoft SQL Server 2016 и поиске неполадок в хранилище запросов SQL Server 2016.

Виртуальные лабораторные работы

(https://technet.microsoft.com/en-us/virtuallabs? id=IMUmyf7VAbE)

Виртуальные лабораторные работы Microsoft — еще один превосходный бесплатный источник знаний об SQL Server 2016. В виртуальных лабораториях реализована управляемая виртуальная среда, с помощью которой можно получить практические навыки работы с различными функциями SQL Server 2016. Пользователям предлагается 42 виртуальные лабораторные работы SQL Server. Вот некоторые из доступных лабораторных работ по SQL Server 2016:

  • SQL Server 2016 CTP3 Exploring Organizational Security and Auditing («Безопасность и аудит организации»);
  • SQL Server 2016 DTP# Exploring Resource Governor I/O Enhancements («Дополнительные возможности ввода-вывода регулятора ресурсов»);
  • Exploring What’s New in SLQ Server 2016 RC2 Integration Services («Службы интеграции»);
  • Exploring What’s New in SQL Server 2016 RC2 Analysis Services;
  • Exploring What’s New in SQL Server 2016 RC2 Mobile Reports («Мобильные отчеты»);
  • Exploring SQL Server 2016 Temporal Tables («Временные таблицы»);
  • SQL Server 2016 CTP3 Always Encrypted («Постоянное шифрование»);
  • Exploring IN-Memory OLTP in SQL Server 2016 («Выполняющаяся в памяти OLTP»).

Техническая документация SQL Server 2016

(https://msdn.microsoft.com/en-us/library/ms130214.aspx)

Наконец, ни один список ресурсов не может быть полным без официальной технической документации SQL Server. На этом сайте размещены электронная документация и ссылки для загрузки SQL Server 2016 Evaluation Edition и среды SQL Server Management Studio.

Таблицы состояния: машина времени SQL Server 2016

Одна из самых интересных функций, добавленных Microsoft в SQL Server 2016, — таблицы состояния. Они были реализованы в рамках стандарта ISO/ANSI SQL:2011. С помощью таблиц состояния можно увидеть таблицу такой, какой она была в тот или иной момент времени. В сущности, таблицы состояния представляют собой таблицы с системным управлением версиями.

Таблица без системного управления версиями содержит только текущий набор строк. Вы можете направить запрос в таблицу в ее нынешнем виде, но не можете запрашивать предшествующие версии или получить доступ к удаленным строкам. Благодаря таблицам состояния SQL Server может сохранить историю данных в таблице, если включено системное управление версиями. Когда оно включено, SQL Server хранит как текущее, так и предыдущие состояния измененных строк. Во временных таблицах SQL Server есть два явно определенных столбца datetime2, которые называются столбцами периода. Эти столбцы используются для записи периода действия для каждой строки. SQL Server хранит различные версии строк, основываясь на времени, когда пользователь изменил данные.

Таблицы состояния обеспечивают несколько новых возможностей, в том числе:

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

Разработчики Microsoft добавили новые предложения FOR SYSTEM_TIME, что позволяет возвращать данные из временной таблицы для конкретного периода. У предложения FOR SYSTEM_TIME имеется несколько вложенных предложений, с помощью которых можно извлекать различные наборы данных.

  • AS OF <дата_время> — возвращает значения для конкретной даты и времени.
  • FROM <начальные_дата_время> TO <конечные_дата_время> — возвращает диапазон значений между указанными датами и временем.
  • BETWEEN <начальные_дата_время> AND <конечные_дата_время> — возвращает диапазон значений между указанными датами и временем.
  • CONTAINED IN (<начальные_дата_время>, <конечные_дата_время>) — возвращает диапазон значений на основе значений указанных даты и времени.
  • ALL — возвращает все значения.

Требования и ограничения

В SQL Server 2016 существует ряд обязательных требований к таблицам состояния:

  • должен быть определен первичный ключ;
  • параметру таблицы SYSTEM_VERSIONING должно быть присвоено значение ON;
  • два столбца DATETIME2 должны быть определены для записи начальной и конечной даты.

Существуют также некоторые ограничения:

  • нельзя использовать выполняющуюся в памяти систему OLTP;
  • таблица состояния и таблица журнала не могут быть типа FILETABLE;
  • триггеры INSTEAD OF не разрешены, а триггеры AFTER разрешены только в текущей таблице;
  • таблица журнала не может иметь никаких ограничений;
  • данные в таблице журнала нельзя изменять.

Назад во времени

С помощью таблиц состояния SQL Server автоматически отслеживает историю данных. Чем же таблицы состояния отличаются от функции записи изменения данных (Change Data Capture, CDC)? Функция CDC предназначена для сбора сведений об изменениях в таблице для внешних процессов, таких как задание извлечения, преобразования и загрузки (ETL). Она не служит для хранения данных в течение длительного времени. Таблицы состояния спроектированы для аудита и могут хранить исторические данные очень долго. Если вы используете таблицы состояния в сочетании с большими таблицами, то полезно рассмотреть вопрос об использовании баз данных типа Stretch или секционированных таблиц, чтобы упростить управление хранилищами данных.

Рекомендации по виртуализации SQL Server 2016

Сервер HPE Superdome X отличается высочайшей масштабируемостью и надежностью, необходимой для нормального функционирования узлов виртуализации компании. Благодаря 288 процессорным ядрам и оперативной памяти размером до 24 Тбайт сервер HPE Superdome X пригоден для одновременного запуска многих высокопроизводительных рабочих приложений. Аппаратная платформа виртуализации — отличный фундамент для успешной виртуализации корпоративных баз данных SQL Server, однако существует и ряд других факторов настройки, заслуживающих внимания. Далее в статье приводятся основные рекомендации по виртуализации SQL Server.

  • Не перегружайте сервер. Важно не переоценить наличные процессорные сетевые ресурсы сервера. Ничто не мешает создавать и запускать виртуальные машины, которые используют больше виртуальных процессоров (vCPU), чем имеется физических ядер. Однако необходимо помнить, что в таком случае время от времени могут происходить отключения. То же относится к сетевым ресурсам. Когда на узлах виртуализации выполняются десятки виртуальных машин, легко перегрузить физические сетевые адаптеры. Важно следить за использованием сетевых и вычислительных ресурсов и соответствующим образом настроить узел.
  • Помните о настройках NUMA. Они могут быть важны для виртуальных машин со многими виртуальными процессорами. Системная архитектура NUMA используется в многопроцессорных системах, в которых процессоры и память назначаются группам, именуемым узлами. Когда запускается виртуальная машина, гипервизор Hyper-V пытается выделить этой виртуальной машине всю память из одного физического узла. Если число виртуальных процессоров вашей виртуальной машины больше числа процессоров узла NUMA или объем памяти превышает настройку NUMA, то вычисления выполняются на нескольких узлах NUMA и при этом снижается производительность.
  • Используйте динамическую память для SQL Server. Если рабочая нагрузка SQL Server приводит к росту процесса sqlserver.exe, то виртуальной машине динамически выделяется дополнительная память. Ядро SQL Server обнаруживает добавленную память и может увеличить свои буферы в соответствии с повышенными требованиями рабочей нагрузки. Чтобы использовать преимущества динамической памяти, необходима версия SQL Server 2016 Enterprise Edition. В стандартной редакции не предусмотрено горячее подключение процессоров или оперативной памяти. Кроме того, гостевая операционная система виртуальной машины должна поддерживать горячее подключение оперативной памяти. Такая возможность есть в Windows Server 2012, 2008 R2 SP1 и редакциях 2003 R2 SP2 Enterprise и Datacenter.
  • Используйте фиксированные виртуаль­ные жесткие диски. Фиксированный виртуальный жесткий диск (VHD/VHDX) — оптимальный выбор для виртуальных систем SQL Server, выполняющих производственные рабочие нагрузки. Динамические виртуальные жесткие диски подходят для лабораторий, тестовой среды и некритических производственных рабочих нагрузок, так как они занимают меньше места на диске, хотя и не обеспечивают того же уровня производительности. Выполнение рабочих нагрузок на динамических виртуальных жестких дисках может временно приостанавливаться, если динамический диск требуется расширить, чтобы увеличить хранилище данных. Раньше транзитные (pass-through) диски были предпочтительны для рабочих нагрузок с самыми высокими требованиями к вводу-выводу, но им не хватает гибкости фиксированных виртуальных жестких дисков, а производительность фиксированных виртуальных жестких дисков теперь практически такая же.
  • Используйте одинаковые диски VHD или VHDX для операционной системы, данных и файлов журналов. В настройках по умолчанию применяется единственный виртуальный жесткий диск в качестве хранилища. Почти все производственные рабочие нагрузки SQL Server немедленно приводят к борьбе за диск. Для производственных экземпляров SQL Server необходимо разместить операционную систему, данные и файлы журналов на различных дисках VHD или VHDX, и эти диски должны быть на разных накопителях, чтобы избежать конфликтов ввода-вывода. Обычно для файлов журналов требуются накопители с хорошей скоростью записи, а для операционной системы и файлов данных необходимо более высокое быстродействие при чтении.

Четыре недопустимых ошибки администратора

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

Работа по выявлению и устранению неполадок отнимает у администратора баз данных массу времени. И пользователи, и разработчики совершают ошибки, доставляющие немало хлопот. Но несмотря на все эти отвлекающие факторы, как администратор базы данных, вы не можете снять с себя ответственность за выполнение важнейших повседневных процедур, которые позволяют обеспечивать защиту корпоративных данных и бесперебойное функционирование экземпляров SQL Server. Давайте подробнее рассмотрим четыре наиболее серьезных ошибки администратора баз данных. Итак, чего нельзя делать ни в коем случае:

  1. Забывать о тестировании резервных копий. Все мы знаем, насколько важно выполнять резервное копирование баз данных. Даже при использовании самых современных технологий обеспечения высокой доступности и восстановления данных после аварийного сбоя резервные копии остаются основой стратегии защиты данных. Резервные копии баз данных — это наша последняя линия обороны. Представьте, что вы пытаетесь восстановить содержимое баз данных, а резервные копии не работают. Трудно вообразить ситуацию более катастрофическую. Чтобы гарантированно избежать такого положения, пользуйтесь командой BACKUP VERIFYONLY, и вы сможете убедиться, что интересующая вас резервная копия может быть восстановлена. В дополнение к проверке резервных копий полезно применять ко всем резервным и восстановленным копиям функцию CHECKSUM. Она выполняет дополнительные проверки и дает ответ на вопрос, повреждена ли та или иная база данных. Наконец, полезно регулярно выполнять операции по восстановлению баз данных на незащищенных системах. Так вы сможете убедиться в том, что ваши резервные копии функционируют нормально.
  2. Не принимать меры по ограничению доступа в целях обеспечения безопасности. Безопасность — критический фактор всех систем SQL Server уровня предприятия. Однако некоторые профессионалы в области баз данных не уделяют этой стороне дела должного внимания. Результатом предоставления сотрудникам или приложениям более широких, чем положено, прав доступа, может стать потеря данных, брешь в защите или даже непреднамеренное повреждение базы данных. Часто встречается такая ошибка: разработчикам предоставляются привилегии администраторов, а также прямой доступ к данным, касающимся производства. Нередко такие решения обосновываются удобством разработки или необходимостью отладки, однако подобную практику нельзя считать приемлемой. Безопасность баз данных следует обеспечивать по принципу наименьших привилегий, в соответствии с которым пользователям, разработчикам и даже администраторам предоставляются разрешения самого низкого уровня.
  3. Пренебрегать плановыми мероприятиями по обслуживанию баз данных. Система SQL Server обладает широкими возможностями автоматической настройки и множеством средств самовосстановления, однако не следует думать, что база данных будет выполняться сама по себе. Существует целый ряд важных мер по обслуживанию баз данных, которые администратор должен использовать регулярно. Во-первых, все имеющие отношение к производству базы данных необходимо подвергать проверкам на целостность с помощью команды DBCC CHECKDB. Во-вторых, следует регулярно проверять индексы на фрагментацию, а также обновлять статистику производственных баз данных. Эти процессы можно автоматизировать, например с помощью агента SQL или плана обслуживания, предусматривающего выполнение перечисленных действий. Кроме того, существует несколько сценариев и инструментов независимых поставщиков, способствующих эффективной работе баз данных. Разумеется, вам необходимо следить за тем, чтобы эти отличающиеся активным потреблением ресурсов средства не применялись в рабочие часы с пиковыми нагрузками.
  4. Откладывать мониторинг использования сервера. Еще одна категория жизненно важных мероприятий, которые следует проводить регулярно, включает мониторинг систем и контрольное тестирование. Если администратор этого не делает, склонен выжидать и начинает отслеживать уровни функционирования базы данных, а также рабочие нагрузки лишь после того, как в системе возникают проблемы, он допускает грубую ошибку. Периодически проверяя статистику быстродействия системы, вы сможете получить представление о нормальной нагрузке и сформировать шаблоны, которые позднее помогут вам отмечать изменения и отклонения от нормы. Необходимо регулярно проверять данные об использовании процессоров, памяти, подсистемы ввода-вывода, блокировок, а также такие показатели, как объем свободного дискового пространства, выделяемого для данных и файлов регистрации.

Значение эталонных тестов

Напрасно некоторые полагают, что контрольные тесты теряют актуальность, поскольку не отражают реальных условий эксплуатации. На самом деле эти испытания — важнейшее средство контроля. Когда производители серверов поставляют на рынок новое оборудование или поставщики баз данных, такие как Microsoft и Oracle, выпускают новые версии серверов баз данных, они нередко пропускают свое изделие через новый набор эталонных испытаний, дабы показать, что новый аппаратный и/или программный продукт функционирует более эффективно, нежели предыдущие версии. Ожидается, что рабочие характеристики новой версии будут выше, чем у старой, и если все пойдет нормально, они к тому же превзойдут соответствующие показатели изделий конкурентов.

Некоторые специалисты считают, что эталонные тесты нельзя считать адекватным средством измерения производительности, поскольку такие тесты не всегда показывают, какие результаты можно получить при использовании определенных комбинаций аппаратных и программных продуктов, применяемых в конкретных условиях. Однако я убежден, что официальные стандартизованные контрольные испытания, такие как тесты TPC (Transaction Processing Council tests), со всей очевидностью демонстрируют первоклассные возможности масштабирования системы баз данных. Эталонные тесты TPC предоставляют данные как о быстродействии системы, так и о соотношении цена/производительность. В результате вы получаете ясное представление о предлагаемых преимуществах системы.

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

Предназначенный для обеспечения масштабирования в исключительно широких пределах HPE Integrity Superdome X Server удерживает первые места по результатам различных эталонных тестов для систем. К числу наивысших показателей, продемонстрированных сервером HPE Superdome X на эталонных тестах, относятся:

  • два мировых рекорда на эталонном тесте TPC-H benchmark @ 10000 scale factor;
  • первое место по общей производительности @ 10000 GB scale factor на некластеризованном тесте TPC-H;
  • общее первое место по 8-модульному соотношению цена/производительность на 10000 Гбайт на некластеризованном эталонном тесте TPC-H;
  • первые места в категориях x86 и 16 P max-jOPS на эталонном тесте SPECjbb2015-MultiJVM.

Продемонстрировав масштабируемость, достойную приложения уровня предприятия, сервер HPE Superdome X занял ведущее место по результатам двухуровневого стандартного теста приложений SAP Sales and Distribution (SD) с использованием 16 процессоров, показав при этом следующие результаты: 100000 пользователей эталонного теста SAP и 545 780 SAPS.

Показавший такие результаты сервер HPE Superdome X был оснащен шестнадцатью процессорами Intel Xeon E7-8890 v3 с тактовой частотой 2,5 ГГц и 4 Тбайт памяти. На нем были установлены следующие продукты: Microsoft Windows Server 2012 R2 Datacenter Edition, Microsoft SQL Server 2014 Enterprise Edition и пакет SAP enhancement package 5 for the SAP ERP application 6.0.