Sql server 2018 как запустить: Запуск, остановка, приостановка, возобновление и перезапуск служб SQL Server — SQL Server

Содержание

Как запустить SQL Profiler Trace ночью, в определенное время? / Хабр

Как запустить SQL profiler trace, когда проблему надо ловить с 3:00 до 3:30 утра? Делать это можно с помощью трейса на стороне сервера, но это крайне неудобно. Именно не сложно, а неудобно, и всегда лень. Наконец я решился автоматизировать это раз и навсегда. Вот так:


Jenkins тут, кстати, совсем необязателен и служит лишь интерфейсом, чтобы вызвать скрипт с нужными параметрами:

Решение я покажу крупными мазками, все равно там много специфики, связанных именно с нашей инфраструктурой. То есть я выполню то, что показано слева:

Итак, bat файл кое что делает и переносит действие уже в PowerShell script, которому передает все параметры и еще две переменные — ‘%BUILD_USER_ID%’,’%BUILD_USER_EMAIL%’ — полученные от Jenkins. Они нам пригодятся позднее:

Как ни странно, в самом ps1 мало что происходит действительно ценного: там вызывается некая процедура, которая по имени сервера создает и возвращает имя директории на специальной share, куда будет положен этот файл. Сервер, где будет создана эта директория зависит от datacenter, где находится сервер, на котором будет запущен трейс. Кроме того, юзеру выдаются права на чтение трейса, и есть процесс который через пару дней чистит эти директории. Как видите, вам это может не понадобится и все это вы можете спокойно пропустить.

Теперь действие переносится уже на сервер, где будет запущен трейс, в SQL файл. loc это как раз параметр, содержащий путь, куда будет скопирован готовый трейс. Вы можете заменить его константой.

Вначале мы должны найти место, куда будем писать трейс файл локально. Например, так:

Далее небольшая чистка. Вдруг такой файл уже есть или трейс ктото запустил раньше? Вам надо будет покверить sys.traces и остановить/удалить трейс пишущий в %jenkinsTraceSch%, если такой уже есть. Дальше создаем трейс (ограничьте его размер!) и немного занудства с вызовами sp_trace_setevent. Вы можете облегчить себе жизнь, сделав CROSS JOIN между events и columns:

Теперь добавим фильтры по вкусу. Тут как раз вы дорисовываете свою сову. Это первое место, где мы используем параметры скрипта — тип фильтра и имя базы:

Теперь пошел трэш:

В @j вы формируем команду для Job, которая будет:

  • Ждать нужного времени с помощью WAITFOR
  • Запускать трейс
  • Выждать заказанное время
  • Остановить трейс
  • Подождать еще секунду на всякий случай — операции асинхронные
  • Формировать команду на копирование трейса в нужное место
  • Выполнять ее
  • Формировать Subject и body письма
  • Отправлять письмо заказчику через sp_send_dbmail со ссылкой на трейс


Теперь надо создать Job с шагом 1, описанным в @j. Однако я еще добавляю к этой Job самоубийство, чтобы джоба исчезала бесследно по завершении работы:

Я тут слышу крики про xp_cmdshell… Не хочу это комментировать. В конце концов, никто же не должен свидетельствовать на суде против самого себя. Но вы можете поступить иначе. Вряд ли у вас получится отправить трейс по почте — он большой. Хотя вы можете запаковать его. Ну или оставить его на самом сервере и предоставить юзеру забрать его самостоятельно или вытянуть по UNC в доступное для пользователя место

Итак, вы имеем:

  • Jenkins вызывает bat
  • bat вызывает powershell
  • powershell вызывает скрипт SQL через sqlcmd
  • Скрипт создает Job
  • Job создает трейс и, перед самойбийством посылает почту:


Никогда бы не подумал, что такая длинная цепочка будет работать. Но она работает…

P.S.: И да, даже если xp_cmdshell запрещен и вы не можете его включить, у вас есть по крайней мере 2 способа написать my_xp_cmdshell. Так что эта «защита» не защищает ни от чего.

Как изменить учётную запись под которой запускается служба ЛЭРС УЧЕТ — Сервер




Программа установки ЛЭРС УЧЁТ создаёт учётную запись LersServerAccount для запуска сервера ЛЭРС УЧЁТ. В случае если SQL-сервер локальный, учётная запись будет создана на локальном компьютере. Если SQL-сервер доменный, то эта учётная запись будет создана в текущем домене.

Если вы по какой-то причине хотите изменить учётную запись для работы сервера, то воспользуйтесь этой инструкцией.

Внимание

Если SQL-сервер установлен на одном компьютере с сервером ЛЭРС УЧЁТ, вы можете использовать локальную учётную запись. Если SQL-сервер установлен на другом компьютере, то для правильной работы они должны входить в домен. В этом случае потребуется создать доменную учётную запись.
Все действия нужно проводить из-под учётной записи локального администратора или администратора домена (если используется доменная учётная запись для запуска сервера ЛЭРС УЧЁТ).

Сначала нужно заменить учётную запись, которая будет использоваться для запуска службы «ЛЭРС УЧЁТ — Сервер». Для этого:

  1. На компьютере с установленным сервером ЛЭРС УЧЁТ откройте оснастку «службы» и остановите службу сервера ЛЭРС УЧЁТ. Инструкция.
  2. Дважды щёлкните по службе «ЛЭРС УЧЁТ — Сервер» и в открывшемся окне перейдите на закладку «Вход в систему».
  3. Введите имя учётной записи, или нажмите кнопку «Обзор» и выберите нужную запись. Обратите внимание, что при вводе доменной учётной записи нужно указать и имя и домен.
  4. Введите и повторите пароль учётной записи.
  1. Нажмите кнопку «ОК». Указанной учётной записи будет предоставлено право на вход в качестве службы.

Внесите данную учётную запись в группу Обновление ЛЭРС УЧЁТ. Для этого выберите пункт меню Пуск -> Панель управления -> Система и безопасность -> Администрирование -> Управление компьютером -> Локальные пользователи и группы.

Выберите нужную учётную запись, откройте её свойства, перейдите на закладку Членство в группах и добавьте для пользователя группу Обновление ЛЭРС УЧЁТ.

Далее необходимо настроить права доступа к файловой системе сервера для этой учётной записи.

Доступ на чтение к папке Program Files должен присутствовать изначально, но потребуется так же полный доступ к другим папкам. Откройте свойства папки C:\Program Files\LERS\Common\Plugins и дайте нужной учётной записи полный доступ к этой папке.

Теперь нужно предоставить выбранной учётной записи доступ к базе данных «LERS», иначе сервер после запуска не сможет подключиться к хранилищу.

Для упрощения работы загрузите пакет Microsoft SQL Server Management Studio для вашей редакции SQL-сервера.

  1. Подключитесь к вашему SQL-серверу
  1. В группе «Security->Logins» нажмите «New Login»
  1. Введите имя учётной записи

Cозданному логину нужно дать доступ к БД «LERS»

  1. Откройте узел «Databases\LERS\Security\Users»
  2. В контекстном меню выберите «New User…»
  1. Введите имя логина SQL-сервера и назначьте ему роли db_backupoperator и db_owner

Запустите службу ЛЭРС УЧЁТ — сервер.

Урок 1. Подключение к ядру СУБД — SQL Server

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронная почта

  • Статья

Применяется к: SQL Server

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

Этот урок содержит следующие задания:

  • Инструменты для начала работы
  • Подключение к Management Studio
  • Авторизация дополнительных подключений
  • Компонент SQL Server Database Engine поставляется с различными инструментами. В этом разделе описываются первые инструменты, которые вам понадобятся, и они помогают выбрать правильный инструмент для работы. Доступ ко всем инструментам можно получить из меню Start . Некоторые средства, такие как SQL Server Management Studio (SSMS), не устанавливаются по умолчанию. Выберите необходимые инструменты в составе клиентских компонентов во время установки. Полное описание средств, описанных ниже, можно найти в электронной документации по SQL Server. SQL Server Express содержит только часть инструментов.

Основные инструменты

  • SQL Server Management Studio (SSMS) — это основной инструмент для администрирования компонента Database Engine и написания кода Transact-SQL. Он размещен в оболочке Visual Studio. SSMS доступен для бесплатной загрузки. Последнюю версию можно использовать с более ранними версиями компонента Database Engine.

  • Диспетчер конфигурации SQL Server устанавливается вместе с SQL Server и клиентскими инструментами. Он позволяет включать серверные протоколы, настраивать параметры протокола, такие как TCP-порты, настраивать серверные службы для автоматического запуска и настраивать клиентские компьютеры для подключения предпочтительным способом. Этот инструмент настраивает более сложные элементы подключения, но не включает функции.

Образец базы данных

Образцы баз данных и образцы не включены в состав SQL Server. В большинстве примеров, описанных в электронной документации по SQL Server, используются образцы баз данных AdventureWorks.

Чтобы запустить SQL Server Management Studio
  • В текущих версиях Windows на странице Start введите SSMS, а затем выберите Microsoft SQL Server Management Studio .
  • При использовании более старых версий Windows на Пуск меню, выберите Все программы , выберите Microsoft SQL Server , а затем выберите SQL Server Management Studio .
Чтобы запустить Диспетчер конфигурации SQL Server
  • В текущих версиях Windows, на странице Запуск введите Диспетчер конфигурации , а затем щелкните SQL Server версия Диспетчер конфигурации .
  • При использовании более старых версий Windows на Меню «Пуск» , выберите «Все программы» , выберите Microsoft SQL Server , выберите Средства настройки и щелкните Диспетчер конфигурации SQL Server .

Подключение к Management Studio

  • Подключиться к компоненту Database Engine из инструментов, работающих на том же компьютере, несложно, если известно имя экземпляра и если вы подключаетесь в качестве члена локальной группы администраторов на компьютер. Следующие процедуры необходимо выполнять на том же компьютере, на котором размещен SQL Server.

Примечание

В этом разделе обсуждается подключение к локальному SQL Server. Сведения о подключении к базе данных SQL Azure см. в разделе Краткое руководство: использование SSMS для подключения и отправки запросов к базе данных SQL Azure или Управляемому экземпляру SQL Azure.

Чтобы определить имя экземпляра компонента Database Engine
  1. Войдите в Windows как член группы администраторов и откройте Management Studio.
  2. В диалоговом окне Подключиться к серверу выберите Отмена .
  3. Если Зарегистрированные серверы не отображаются, в меню Просмотр выберите Зарегистрированные серверы .
  4. Выбрав Database Engine на панели инструментов «Зарегистрированные серверы», разверните Database Engine , щелкните правой кнопкой мыши Local Server Groups , выберите Tasks , а затем выберите Register Local Servers . Разверните Local Server Groups , чтобы просмотреть все экземпляры компонента Database Engine, установленного на отображаемом компьютере. Экземпляр по умолчанию не имеет имени и отображается как имя компьютера. Именованный экземпляр отображается как имя компьютера, за которым следует обратная косая черта (\), а затем имя экземпляра. Для SQL Server Express экземпляр называется 9.0083 \sqlexpress, если имя не было изменено во время установки.
Чтобы убедиться, что ядро ​​СУБД работает
  1. Если на зарегистрированных серверах имя вашего экземпляра SQL Server имеет зеленую точку с белой стрелкой рядом с именем, ядро ​​СУБД работает и никаких дальнейших действий не требуется. необходимый.

  2. Если имя вашего экземпляра SQL Server имеет красную точку с белым квадратом рядом с именем, компонент Database Engine остановлен. Щелкните правой кнопкой мыши имя компонента Database Engine, выберите 9.0017 Service Control , а затем выберите Start . После диалогового окна подтверждения должен запуститься компонент Database Engine, а кружок с белой стрелкой должен стать зеленым.

Для подключения к компоненту Database Engine

При установке SQL Server была выбрана по крайней мере одна учетная запись администратора. Выполните следующий шаг, войдя в Windows как администратор.

  1. В Management Studio в меню Файл выберите Подключить обозреватель объектов .
  • Откроется диалоговое окно Connect to Server . В поле Тип сервера отображается тип компонента, который использовался последним.
  1. Выберите Компонент Database Engine .
  1. В поле Имя сервера введите имя экземпляра компонента Database Engine. Для экземпляра SQL Server по умолчанию имя сервера — это имя компьютера. Для именованного экземпляра SQL Server имя сервера — это <имя_компьютера> \ <имя_экземпляра> , например ACCTG_SRVR\SQLEXPRESS . На следующем снимке экрана показано подключение к экземпляру SQL Server по умолчанию (без имени) на компьютере с именем PracticeComputer . Пользователь, выполнивший вход в Windows, — Мэри из домена Contoso. При использовании проверки подлинности Windows вы не можете изменить имя пользователя.
  1. Выбрать Подключить .

Примечание

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

Авторизация дополнительных подключений

Теперь, когда вы подключились к SQL Server в качестве администратора, одной из ваших первых задач является авторизация других пользователей для подключения. Вы делаете это, создавая логин и авторизуя этот логин для доступа к базе данных в качестве пользователя. Логины могут быть либо логинами аутентификации Windows, которые используют учетные данные из Windows, либо логинами аутентификации SQL Server, которые хранят информацию аутентификации в SQL Server и не зависят от ваших учетных данных Windows. Дополнительные параметры входа включают входы в Azure Active Directory, о которых вы можете узнать больше, прочитав статью Использование проверки подлинности Azure Active Directory.

По возможности используйте проверку подлинности Windows.

Совет

Большинство организаций имеют пользователей домена и будут использовать проверку подлинности Windows. Вы можете поэкспериментировать самостоятельно, создав дополнительных локальных пользователей на своем компьютере. Локальные пользователи будут аутентифицироваться вашим компьютером, поэтому домен — это имя компьютера. Например, если ваш компьютер называется MyComputer и вы создаете пользователя с именем Test , тогда описание пользователя в Windows будет Mycomputer\Test 9. 0201 .

Создание входа для проверки подлинности Windows
  1. В предыдущей задаче вы подключились к компоненту Database Engine с помощью Management Studio. В обозревателе объектов разверните экземпляр сервера, разверните Security , щелкните правой кнопкой мыши Logins и выберите New Login . Появится диалоговое окно «Вход — Новый ».

  2. На странице General в поле Login name введите логин Windows в формате: <домен>\<логин>

  1. В поле База данных по умолчанию выберите базу данных AdventureWorks, если она доступна. В противном случае выберите базу данных master .
  2. На странице Роли сервера , если новый логин должен быть администратором, выберите sysadmin , в противном случае оставьте это поле пустым.
  3. На странице User Mapping выберите Map для AdventureWorks2019 9База данных 0201, если она доступна. В противном случае выберите master . Поле User заполнено логином. При закрытии диалоговое окно создаст этого пользователя в базе данных.
  4. В поле Схема по умолчанию введите dbo , чтобы сопоставить имя входа со схемой владельца базы данных.
  5. Примите настройки по умолчанию для полей Securables и Status и выберите OK для создания входа.

Важно

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

Следующий урок

Урок 2. Подключение с другого компьютера

Обратная связь

Просмотреть все отзывы о странице

Различные способы запуска SQL Server в однопользовательском режиме

В этой статье мы рассмотрим различные способы запуска SQL Server в однопользовательском режиме.

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

Запуск однопользовательского режима SQL Server с помощью диспетчера конфигурации SQL Server

Откройте запуск, нажав одновременно клавиши Windows и R . Поскольку я использую SQL Server 2016, я набрал sqlservermanager13.msc , чтобы открыть диспетчер конфигурации SQL Server.

Пожалуйста, обратитесь к приведенному ниже списку для других версий SQL Server:

  • SQL Server 2012 (11.x) — sqlservermanagr11.msc
  • SQL Server 2014 (12.x) — sqlservermanagr12.msc
  • SQL Server 2016 — sqlservermanager13.msc
  • SQL Server 2017 — sqlservermanager14. msc

Вы также можете открыть его, щелкнув «Пуск» и найдя «Диспетчер конфигурации SQL Server», как показано на изображении ниже, и щелкните «Диспетчер конфигурации SQL Server (версия)», чтобы открыть его.

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

Выберите службу SQL Server экземпляра, который вы хотите запустить в однопользовательском режиме. Щелкните правой кнопкой мыши службу и выберите Properties , как показано на рисунке ниже:

Перейдите на вкладку Startup Parameters . Введите -m и нажмите Добавить , как показано на рисунке ниже:

Нажмите кнопку Применить , которая добавит параметр запуска -m в список параметров запуска этого экземпляра SQL Server. Нажмите на Кнопка OK в окне предупреждения.

Щелкните правой кнопкой мыши службу SQL Server и выберите Restart , чтобы перезапустить экземпляр SQL Server. SQL Server запустится в однопользовательском режиме.

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

Убедитесь, что вы остановили службу агента SQL Server экземпляра SQL Server в качестве агента SQL Server и попробуйте подключиться к SQL Server с помощью SQLCMD или SQL Server Management Studio (SSMS).

Рекомендуется использовать SQLCMD, когда вы хотите запрашивать SQL Server, запущенный в однопользовательском режиме, как прямое подключение и запросы с использованием SQL Server Management Studio, использующего более одного подключения. Чтобы запросить однопользовательский режим SQL Server с помощью SQL Server Management Studio, откройте SQL Server Management Studio и не подключайтесь к SQL Server напрямую. Закройте окно подключения и нажмите Новый запрос , как показано на изображении ниже, которое открывает редактор запросов в SQL Server Management Studio:

Все пользователи, входящие в группу локальных администраторов, могут подключаться к SQL Server с привилегиями роли sysadmin на уровне сервера.

Чтобы запустить SQL Server в многопользовательском режиме, удалите добавленный параметр запуска -m из свойств службы SQL Server и перезапустите службу SQL Server.

Запуск однопользовательского режима SQL Server с помощью командной строки

Мы также можем запустить однопользовательский режим SQL Server с помощью командной строки. Перейдите к . Запустите и выполните поиск служб, как показано на изображении ниже. Нажмите «Службы», чтобы открыть окно «Службы».

В окне «Службы» найдите службу экземпляра SQL Server, которую вы хотите запустить в однопользовательском режиме. Щелкните правой кнопкой мыши службу и выберите Properties , как показано на рисунке ниже:

В окне «Свойства» вы можете увидеть имя и отображаемое имя службы. Теперь скопируйте имя службы, которая будет использоваться в командной строке для запуска экземпляра SQL Server в однопользовательском режиме.

Откройте запуск, нажав одновременно клавиши Windows и R . Введите cmd и нажмите кнопку ввода, чтобы открыть командную строку.

Выполните следующую команду, чтобы остановить службу SQL Server. В этом случае MSSQLSERVER — это имя службы SQL Server. Замените его своим:

СЕТЕВАЯ ОСТАНОВКА MSSQLSERVER

Введите Y, чтобы продолжить, остановив службу агента SQL Server, как показано на рисунке ниже:

После успешной остановки служб запустите службу SQL Server, передав параметр m. Откройте командную строку и выполните следующую команду, чтобы запустить службу SQL Server в однопользовательском режиме. Пожалуйста, обратитесь к изображению ниже:

ЧИСТЫЙ ЗАПУСК MSSQLSERVER/m

Запуск однопользовательского режима SQL Server с помощью исполняемого файла

Откройте командную строку и перейдите в папку, в которой находится sqlservr.exe. Поскольку я использую экземпляр по умолчанию, путь выглядит следующим образом:

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Бинн

Запустите sqlservr.exe с параметром -m, как показано на рисунке ниже:

Заключение

В этой статье мы рассмотрели, как запустить однопользовательский режим SQL Server с помощью диспетчера конфигурации SQL Server, добавив -m в параметр запуска, а также используя командную строку. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь задавать их в разделе комментариев ниже.