Как работать с ms sql server
Перейти к содержимому

Как работать с ms sql server

  • автор:

Работа с MSSQL

MSSQL Server (Microsoft SQL Server) — это система управления базами данных от компании Microsoft. Для работы в MSSQL используется расширенный язык SQL — Transact-SQL.

Существует 4 редакции MS SQL Server:

  • Enterprise — содержит все возможности MSSQL.
  • Standard — содержит основные возможности. В сравнении с Enterprise имеет ограничения в функциональности и в ресурсах.
  • Developer — редакция для разработчиков. Содержит все возможности SQL Server, но использовать можно только для разработки программного обеспечения.
  • Express — бесплатная редакция сервера SQL. Можно использовать в обучении или на небольших серверах.

На хостинге 2DOMAINS поддержка MS SQL есть на тарифах Windows-хостинга (кроме Host-Lite) и Windows VPS.

На хостинге установлена СУБД Microsoft SQL Server 2016 Web Edition c возможностью работы в режиме совместимости с SQL Server 2008. Подробнее о том, какое ПО установлено на серверах хостинга 2domains.ru, читайте в нашей статье.

Как создать базу данных MSSQL на хостинге

1. Войдите в панель управления хостингом. Для этого в списке услуг нажмите на услугу хостинга, а затем на Панель управления.

2. В левом меню перейдите в раздел Базы данных и нажмите Добавить базу данных:

3. Заполните поля для новой базы данных и пользователя:

  • Имя базы данных,
  • Сервер баз данных — выберите localhost (по умолчанию для MS SQL),
  • Соответствующий сайт,
  • Имя пользователя базы данных,
  • Пароль,
  • Подтверждение пароля.

Затем нажмите OK:

Готово, вы создали базу данных MSSQL.

MSSQL: удалённый доступ

Работать с базой данных можно через панель управления хостингом или удалённо при помощи SSMS (SQL Server Management Studio). Рассмотрим второй вариант.

Скачайте SSMS с сайта Microsoft и установите на ваш компьютер. После завершения установки вы сможете подключиться к серверу. Для этого:

1. Запустите SSMS и укажите параметры для подключения к серверу баз данных:

  • Тип сервера — Ядро СУБД;
  • Имя сервера — имя сервера, на котором находится ваша услуга хостинга. Его можно посмотреть в письме, которое приходит на контактный email при заказе хостинга. Или в Личном кабинете на странице хостинга — Реквизиты доступа;
  • Проверка подлинности — выберите «Проверка подлинности SQL-сервер»;
  • Имя для входа — имя пользователя базы данных;
  • Пароль — пароль пользователя базы данных.

2. Нажмите Соединить:

Готово, вы установили SQL Server Management Studio и получили удалённый доступ к MSSQL.

Как отфильтровать базы данных

В списке баз данных в SSMS отображаются все базы данных, которые есть на сервере. Вы можете настроить фильтр, чтобы отображалась только нужная вам база данных. Для этого:

1. В меню «Обозреватель объектов» правой кнопкой мыши нажмите на Базы данных, затем ФильтрНастройки фильтра.

2. На пересечении строки «Имя» и столбца «Значение» введите имя вашей базы данных и нажмите OK:

Готово, теперь в списке будет только нужная база данных:

Как уменьшить размер базы данных MS SQL

На тарифных планах хостинга 2DOMAINS максимальный размер базы данных составляет 4 ГБ. Если этот лимит будет превышен, услуга хостинга будет заблокирована, а база данных исключена из автоматического резервного копирования. Чтобы снять блокировку, нужно уменьшить размер базы данных.

Много места на диске может занимать лог транзакций базы данных. Этот логи можно сжать. Для этого:

1. В меню «Обозреватель объектов» перейдите в папку Базы данных, нажмите правой кнопкой мыши на нужную и нажмите Свойства.

2. Перейдите в раздел «Параметры». В пункте «Модель восстановления» выберите Простая:

3. Проверьте, какие данные занимают больше всего пространства в БД. Для этого перейдите в раздел «Файлы». Если в столбце «Размер (МБ)» самое большое значение у типа данных «ЖУРНАЛ», нажмите OK и перейдите к следующему шагу. Если больше всего места занимают данные, нужно оптимизировать или очистить таблицы базы данных. Для этого советуем обратиться к разработчику вашего сайта.

4. Так как для сжатия логов необходимы права «db_owner», проверьте их наличие. Для этого в меню «Обозреватель объектов» перейдите в БезопасностьИмена для входа, нажмите правой кнопкой мыши на пользователя, затем Свойства.

5. Перейдите в раздел «Сопоставление пользователей» и нажмите на пользователя БД. В поле «Членство в роли базы данных для:» проверьте чек-бокс напротив «db_owner» и нажмите OK:

Если права отсутствуют, обратитесь в поддержку.

6. В верхнем меню SSMS нажмите Создать запрос и вставьте команду:

USE u1234567_bd_name; GO DBCC SHRINKFILE(u1234567_bd_name_log,100,TRUNCATEONLY); GO

Вместо u1234567_bd_name введите имя вашей базы данных.

7. Нажмите Выполнить и дождитесь завершения процедуры.

Готово, размер базы данных уменьшен.

Популярные статьи

  • Как указать (изменить) DNS-серверы для домена
  • Я зарегистрировал домен, что дальше
  • Как добавить запись типа A, AAAA, CNAME, MX, TXT, SRV для своего домена
  • Что такое редирект: виды и возможности настройки
  • Как создать почту со своим доменом

Microsoft SQL Server. Эффективная работа

Microsoft SQL Server. Эффективная работа

В этой книге рассказывается о том, как устроена система управления базами данных SQL Server 2005, какие принципы лежат в основе ее функционирования, дается понятие об основных компонентах и архитектуре. Большинству система управления базами данных представляется в виде своего рода «черного ящика». Пользователь отправляет серверу запросы и получает в ответ некоторое результирующее множество. Между тем администратор и разработчик должны ясно представлять себе, как именно устроен SQL Server. Материал книги позволяет заглянуть внутрь «черного ящика», узнать, как работает оптимизатор запросов, как SQL Server использует память, каким образом пул рабочих потоков способен повысить эффективность обработки пользовательских запросов и многое другое.

Пока нет отзывов

Запуск и первоначальная настройка MS SQL Server для клиент-серверной версии «1С: Предприятие 8»

Нет сомнения, что связка MS SQL Server + сервер «1С: Предприятие 8» — в своей нише самая востребованная и часто применяемая связка. Для её качественной поддержки желательно понимание обоих продуктов. В то же время, на практике, специалист поддержки обычно либо специализируется на администрировании MS SQL Server и не ориентируется в особенностях сервера «1С: Предприятие 8», либо, наоборот, специализируется на администрировании сервера «1С: Предприятие 8» и не ориентируется в особенностях MS SQL Server.

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

Для облегчения восприятия информации приводятся случаи из практики, примечания и советы (выделены курсивом).

Как, возможно, уже известно читателю, база данных в рассматриваемом случае имеет трёхзвенную архитектуру:

Звено 1: СУБД MS SQL Server. «Хранит» и обслуживает базу данных, в конечном счёте выполняет все виды операций с базой данных. Таким образом, производительность работы базы данных, скорость и параллельность чтения-записи данных – во многом определяются производительностью MS SQL Server.

Звено 2: Сервер «1С: Предприятие 8». Служит посредником во взаимодействии между клиентами (пользователями) и MS SQL Server. Все клиентские запросы направляются на сервер, который «переводит» их на язык запросов MS SQL Server, получает результаты выполнения этих запросов, отправляет результаты клиенту.

Есть лишь малая часть операций, которые выполняются на уровне сервера «1С: Предприятие 8», без обращения к MS SQL — это, в частности, отслеживание так называемых «управляемых блокировок», чтение-запись «параметров сеанса». Обращения к СУБД в таких случаях не требуется, так как эти операции производятся не с данными базы, а со вспомогательной информацией сервера.

Звено 3: Клиентская часть «1С: Предприятие 8». Обращается к серверу «1С: Предприятие 8», получает от него результаты (то есть, например, выборки данных), отвечает за пользовательский интерфейс.

«Хотел как лучше».

После переустановки сервера «1С: Предприятие 8» пользователи жалуются на резкое падение производительности. Специалист по внедрению ПП «1С: Предприятие», производивший переустановку – лишь удивляется – мол, хотел как лучше, система должна была начать работать быстрее. Анализ ситуации показал, что серверу «1С: предприятие 8» была выделено слишком много ресурсов: его процессы (см. пункт 3) rphost заняли 15.5 Гб из 16Гб оперативной памяти сервера, в результате для уступчивого MS SQL Server практически не осталось доступной оперативной памяти.

Как результат – постоянный «своп», ненужная нагрузка на дисковую подсистему, и крайне медленное выполнение операций с базой данных — вследствие того, что MS SQL Server не успевает обрабатывать запросы, поступающие от «разогнанного» сервера «1С: Предприятие 8».

На момент подготовки статьи разработчики фирмы «1С» рекомендуют следующие варианты:

    1. SQL Server 2008 R2.
    2. SQL Server 2008, требуется установка пакета обновлений 1 (SP1).
    3. SQL Server 2005, требуется установка пакета обновлений 3 (SP3).

Следует учитывать, что в настоящий момент эта версия снята с поддержки, а также не имеет 64-разрядной версии для архитектуры x86-64.

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

Установка клиент-серверной версии «1С: Предприятие 8»

У одного из заказчиков установку «1С: Предприятия 8» произвёл системный администратор, не имеющий опыта в работе с «1С:Предприятием 8». И хотя, по его словам, он «установил 1С» — на пользовательских компьютерах отсутствовала клиентская часть, а на сервере — серверная. Разбор ситуации прояснил картину – в комплекте «1С: Предприятия 8» имелось 2 диска – установка платформы и установка шаблонов баз данных. Администратор не стал вникать в порядок установки – и установил шаблоны баз данных, а не исполняемые файлы, компоненты платформы.

Конечно же, это нетипичный пример исключительно невнимательного отношения к работе.

При установке «1С: Предприятия 8» следует учитывать, что отдельно устанавливаются:

Шаблоны конфигураций «1С: Предприятие» — это файл внутреннего формата платформы, с помощью которого платформа может создать чистую или демонстрационную базу данных той структуры, которая заложена в шаблоне. Также с помощью шаблона обновления можно обновить структуру существующей базы данных, уже наполненной данными.

При установке платформы следует уделить внимание выбору компонент:

Компонента «1С: Предприятие» может не устанавливаться на сервере (серверах).

В этом случае сервер будет предоставлять клиентским компьютерам доступ к базам данных «1С: Предприятие», но работа с БД в пользовательском режиме непосредственно с сервера будет невозможна.

64-битная версия платформы не содержит клиентской части. Поэтому при установке на сервер отдельно устанавливаются 64-битные серверные компоненты, и отдельно – 32-битные компоненты клиентского приложения.

Компонента «Сервер 1C: Предприятия» нужна для подключения к MS SQL Server — это сервер приложений, связующее звено между платформой на клиентских рабочих местах и MS SQL Server.

Возможна установка компоненты в режиме простого приложения или системного сервиса, и рекомендуется, конечно — второй вариант.

При установке «как сервис» эта компонента будет запускаться и выполняться от имени выбранного пользователя:

После загрузки компонента порождает несколько процессов, как то: «агент сервера», «менеджер кластера серверов», «рабочие процессы сервера».

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

Рабочими процессами сервера можно будет управлять (добавлять, удалять, ставить ограничение на использование ОЗУ, объявлять основным или резервным), если будет установлена компонента «Администрирование сервера 1С: Предприятия».

Для 32-битной версии сервера рекомендуется установка рабочих процессов в таком количестве, чтобы не оставлять оперативную память незадействованной — каждый из них имеет заметное ограничение на использование оперативной памяти, от 2 до 4Гб в зависимости от конфигурации системы.

Для 64-битной версии сервера теоретически достаточно двух рабочих процессов – одного рабочего и одного резервного. Однако на практике для обеспечения надёжности и стабильности подключений на существенном (несколько сотен) количестве пользователей требуется большее количество, оно зависит многих факторов — от количества пользователей, наполнения базы данных и объёма выполняемых запросов, поэтому авторы считают, что количество процессов в этом случае следует подбирать экспериментально.

После неудачной оптимизации настроек сервера «1С: Предприятие 8» пользователи просигнализировали о крайне медленной работе системы, а системный администратор отметил постоянную 100% загрузку процессора на сервере.

Анализ ситуации показал источник проблемы — при настройке было установлено слишком маленькое ограничение на использование оперативной памяти рабочими процессами.

А дело в том, что данное ограничение работает следующим образом:

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

Установленное ограничение было настолько маленьким (300Мб), что рабочий процесс не мог полностью обслужить даже одного интенсивно работающего пользователя — в результате менеджер кластера серверов непрерывно перезапускал рабочие процессы и переподключал пользователей. Как только создавался новый процесс и пользователи к нему подключались – лимит оперативной памяти почти мгновенно достигался и вызывал следующий перезапуск. На это и уходило 100% загрузки процессора.

Компонента «Сервер 1C: Предприятия» не нужна на клиентских рабочих местах, да и не сможет там запуститься, так как требует физического наличия ключа защиты.

В случае, если количество подключаемых пользователей невелико (менее 50) – сервер приложений обычно устанавливают на том же компьютере, где работает MS SQL Server.

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

Компонента «Администрирование сервера 1С: Предприятия» может быть полезной и на клиентах – например, с её помощью можно увидеть список информационных баз, подключённых к заданному серверу «1С: Предприятия».

На самом сервере её настоятельно рекомендуется установить.

Для проверки того, что доступ обеспечен, недостаточно использования утилиты администрирования серверов 1C: Предприятия, и тем более недостаточно присутствия сервера в «Сетевом окружении»!

Необходимо на каждом клиенте выполнить вход в базу данных, установленную на сервере – только это даст 100% уверенность, что доступ обеспечен.

1. В зависимости от политик безопасности, для MS SQL Server применяется аутентификация по учетной записи Windows либо аутентификация по учётной записи MS SQL Server.

В последнем случае при создании базы данных «1С: Предприятия» система будет запрашивать логин и пароль учётной записи MS SQL Server (например, sa), в первом случае логин и пароль следует оставлять пустыми:

и тому пользователю системы, от имени которого запущен сервер 1С: Предприятия, необходимо дать права в MS SQL Server, а именно:

    полные права на базу данных, в которой располагается информационная база
    доступ к базе данных master (роль public)
    рекомендуется – права на создание базы данных, в противном случае каждую новую базу данных нужно будет сначала создавать средствами MS SQL Sever, а уже затем подключать к серверу 1С: Предприятия
    рекомендуется — право на удаление своей базы данных

Если у всех пользователей одновременно пропал доступ к рабочей базе данных – нужно перепроверить права и роли пользователя в MS SQL Server, в том числе установленные для конкретной базы данных, то есть User mapping:

2. Сервер 1С: Предприятия обращается к MS SQL Server через механизм Microsoft Data Access, поэтому его компоненты должны быть установлены, а у пользователя сервера 1С: Предприятия (см. предыдущий пункт) должны быть права на их запуск.

3. Связь между клиентами и сервером поддерживается по протоколу TCP, поэтому необходимо, чтобы этот протокол поддерживался обеими сторонами. Возможны проблемы с сопоставлением имени сервера и его IP адреса, например, если используется одноранговая сеть. В таком случае следует записать соответствие в файле [С:\WINDOWS\] system32\drivers\etc\hosts .

В случае, если сеть одноранговая – для обеспечения постоянного подключения к серверу создайте сетевой диск, который обращается к какой-либо из папок этого сервера.

4. В случае использования протокола Named Pipes, и если MS SQL Server и сервер 1С: Предприятия установлены на разных компьютерах – пользователь, от имени которого работает сервер 1С: Предприятия, должен быть зарегистрирован в списке пользователей компьютера, на котором запущен MS SQL Server.

5. В некоторых случаях может потребоваться дополнительная настройка брэндмауэра Windows, то есть добавление исключений.

6. Некоторые антивирусы могут блокировать «нежелательный» сетевой трафик, так что может потребоваться дополнение их списков исключений.

7. Релиз платформы «1С: Предприятия 8» должен быть абсолютно одинаковым на клиенте и на сервере.

«У одного из заказчиков применялось два сервера баз данных, на каждом из которых располагалась одна рабочая база. Пользователи работали — каждый одновременно с обеими базами. Службы поддержки выполнила обновление платформы «1С: Предприятия 8» на серверах и клиентах…. И тут посыпались жалобы на невозможность подключения – то к одной, то к другой базе. Анализ ситуации показал – обновление на клиентах и серверах делали несколько человек, и устанавливающие специалисты не перепроверяли, что устанавливают один и тот же релиз. Поэтому на одном сервере был один релиз платформы, на втором – другой, на половине клиентов – первый из этих релизов, на другой половине – другой. Получилось, что каждый пользователь имеет доступ только к одной из баз данных.

Для быстрого решения проблемы пришлось устанавливать каждому пользователю оба релиза платформы и создавать отдельные ярлычки для входа в каждую базу данных.

Первоначальные настройки MS SQL Server и базы данных

MS SQL Server отличается простотой начальной установки, поэтому не все администраторы озадачиваются его дополнительной настройкой – после выполнения установки по умолчанию база заработала, пользователи в неё вошли – работа выполнена. Такой подход почти всегда влечёт за собой возникновение проблем примерно через месяц или два – причём, конечно же, внезапно и в самый неудобный момент.

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

И, конечно, именно в этот момент обнаружится, что база при таком пересчете «зависает», или «вылетает», или не даёт работать остальным пользователям.

Этот своего рода «закон Мэрфи» касается каждого из нижеперечисленных пунктов.

Перед началом использования MS SQL Server в качестве СУБД для «1С: Предприятие» рекомендуется:

1. Установить значение параметра max degree of parallelism равным 1.

    зайти в MS SQL Management Studio
    после подсоединения к серверу войти в свойства сервера через контекстное меню, пункт Properties
    далее выбрать страницу Advanced и отредактировать параметр max degree of parallelism

В противном случае некоторые запросы, формируемые сервером 1С: Предприятия, могут вызвать ошибку «Intra-query parallelism caused your server command (process ID #XX) to deadlock. Rerun the query without intra-query parallelism by using the query hint option (maxdop 1)». После этой ошибки клиентская часть зачастую аварийно завершается.

Ошибка не будет проявляться стабильно, так как план запроса формируется по-разному в зависимости от накопленных статистик – она проявит себя на объёмных и сложных запросах, то есть в самый неудачный момент.

2. Создать План обслуживания (Maintance Plan), еженочно обрезающий (shrink) базу данных временных таблиц tempdb. Автоматически база временных таблиц сервером 1С: Предприятия очищается не всегда, а иногда, в результате неудачно написанного запроса, может быть сформирована и не очищена временная таблица размером, например, 50 Гб. Вследствие этого может закончиться место на диске, вследствие этого возможно аварийное завершение и клиентской, и серверной части, также присутствует небольшой риск нарушения целостности данных.

    зайти в MS SQL Management Studio
    после подсоединения к серверу раскрыть раздел «Maintance plans»
    создать новый (или дополнить имеющийся) План обслуживания,
    добавить в него пункт «Execute T-SQL Statement task» (так как в задании «Shrink database» нельзя выбрать базу tempdb) с кодом

1.USE [tempdb]
2.
3.GO
4.
5.DBCC SHRINKFILE (N’tempdev’ , 0, TRUNCATEONLY)
6.
7.GO
8.
9.DBCC SHRINKFILE (N’templog’ , 0, TRUNCATEONLY)
10.
11.GO

Следует учесть, что имя файла базы данных временных таблиц может не быть равным «tempdev». Для проверки этого имени можно использовать скрипт

1.USE tempdb
2.
3.GO
4.
5.EXEC sp_helpfile
6.
7.GO

“Горшочек, не вари”

Самый часто встречающийся на практике способ переполнить tempdb и тем самым «уронить» сервер – это забыть указать условие при соединении таблиц.

А именно, допустим, у нас в базе есть две таблицы, размером по 20 тысяч записей каждая. Допустим, между их записями можно установить однозначное соответствие, и мы пишем запрос, создающий временную таблицу, которая содержит 20 тысяч записей с полями обеих исходных таблиц. Но если мы забудем указать условие соединения – каждая запись первой таблицы соединится с каждой записью второй! То есть получится результирующая таблица из 20’000* 20’000=400 млн. записей. И так далее.

3. Ради снижения нагрузки на дисковую подсистему рекомендуется по возможности разносить по разным физическим дискам рабочую базу и tempdb , логи, файл подкачки системы.

Нужный путь для хранения файлов рабочей базы лучше задать при её создании, отредактировав колонку Path (Путь):

Для изменения физического расположения файлов базы временных таблиц используется команда ALTER DATABASE, то есть в MS SQL Management Studio нужно выполнить следующий скрипт (команда «New query»)

1.USE master
2.
3.GO
4.
5.ALTER DATABASE tempdb
6.
7.MODIFY FILE (NAME = tempdev, FILENAME = ‘Новый_Диск:\Новый_Каталог\tempdb.mdf’)
8.
9.GO
10.
11.ALTER DATABASE tempdb
12.
13.MODIFY FILE (NAME = templog, FILENAME = ‘Новый_Диск:\Новый_Каталог\templog.ldf’)
14.
15.GO

4. Не следует затруднять «рост» рабочей базы данных и её лога – ограничения на размер быть не должно, свойство «Autogrowth» должно быть установлено в процентах, рекомендуемое значение 10%. В противном случае добавление данных в базу, восстановление из архива и другие операции могут выполняться неоправданно долго.

Для установки этого свойства нужно через контекстное меню зайти в свойства базы, выбрать раздел Files, открыть редактирование свойств файла:

5. Рекомендуется включить в MS SQL Server поддержку сетевого протокола TCP/IP и выключить все остальные, в противном случае совместная работа MS SQL Server и сервера 1С: Предприятия будет менее стабильной.

6. Там же — очистить раздел Alias, т.к. её установка приводит к ошибкам взаимодействия MS SQL Server и сервера 1С: Предприятия.

Перед началом эксплуатации базы данных рекомендуется:

1. При создании базы данных из «1С: Предприятия» установить «смещение дат» 2000, в противном попытка записи даты ранее 01.01.1753 (что возможно в силу человеческого фактора) — будет вызывать сбои в работе базы данных.

Внимание! Смещение дат нельзя будет поменять у существующей базы данных!

2. Установить Режим восстановления (Recovery model) в значение Простой (Simple), либо создать План обслуживания (Maintance Plan), который будет ежедневно создавать резервную копию (backup) базы данных и обрезать журнал транзакций (log-файл). В противном случае при некоторых операциях журнал транзакций (log-файл) будет очень быстро расти: например, при реструктуризации базы данных рост размера log-файла может в несколько раз превысить размер самой базы данных.

3. Создать План обслуживания (Maintance Plan), выполняющий следующие регламентные задания как минимум раз в неделю:

    Создание резервной копии (backup) базы данных.
    Обновление статистик базы данных и очистка процедурного кэша (следует отметить, что свойство autoupdate statistics не подразумевает очистку процедурного кэша).
    Очистка процедурного КЭШа – не входит в стандартные операции Планов обслуживания, этот шаг нужно определять как выполнение скрипта (Execute T-SQL Statement) со следующим содержимым:
    DBCC FREEPROCCACHE
    Реиндексация таблиц базы данных.

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

Рассмотрены вопросы, которые чаще всего вызывают затруднения у системных администраторов и внедренцев «1С: Предприятие 8», в связи с совместным использованием MS SQL Server и клиент-серверной версии «1С: Предприятие 8».

Автор надеется, что достаточно последовательно и доступно осветил «обе стороны медали».

P.S. Чаще делайте бэкапы!

Добавление базы данных MS SQL Server в Solution и git

в общем пишу веб приложение ASP.NET, ну и у меня есть потребность залить его на GitHub, проблема заключается в том что к проекту подключена база данных MS SQL Server, и без БД приложение естественно работать не будет. Допустим у меня есть друг/партнер с которым мы вместе решили разрабатывать это веб приложение. Насколько я знаю, в ASP.NET есть папочка App_Data, где как написано в книжечке с которой я ознакомился, должны желательно как раз и лежать БД, ну как туда запихать БД я не знаю и вообще стоит ли это делать тоже не знаю. Я использую Visual Studio 2019, MS SQL Server 2017. Я хотел бы узнать как эту проблему решить, желательно без издевок и подробно, или есть какой то другой путь решения этой проблемы, в общем ПОМОГИТЕ ПОЖАЛУЙСТА!

Отслеживать
задан 5 сен 2019 в 5:17
163 6 6 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Если база данных имеет сложную структуру с кучей таблиц, представлений, хранимых процедур и так далее, и при этом постоянно модифицируется, причём разными людьми, то самым правильным решением будет SQL Server Data Tools или сокрощённо SSDT. Это особый вид проекта Visual Studio для баз данных. Там в виде скриптов описывается струкура всей БД. Потом из этого проекта можно делать различные скрипты на изменения в БД. Но самое главное, эту структуру можно удобно хранить в git. У вас будет человеческая история изменений. Кроме того, данные в этой структуре не хранятся, так что объём получается небольшой (это важно, ведь git будет хранить все версии файла).

Но если у вас в БД пара таблиц, которые в ближайшей перспективе не изменятся, то есть ещё такие варианты:

  • Бэкап базы
  • Data-tier application
  • Скрипт на создание БД

Наполнение каких-то служебынх таблиц, типа словарей, во всех случаях можно так же описать скриптом.

Сама тема с SSDT слишком обширна, чтобы её просто так тут описывать.

Отслеживать
ответ дан 5 сен 2019 в 7:49
506 2 2 серебряных знака 5 5 бронзовых знаков
Спасибо, мне понравилась тема с SSDT, я подразобрался и это лучший способ для меня, так что спасибо)
8 сен 2019 в 8:50

Насколько я знаю, в ASP.NET есть папочка App_Data, где как написано в книжечке с которой я ознакомился, должны желательно как раз и лежать БД

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

Существует 2 способа решить Вашу задачу без особых трудозатрат:

  • Сделать бэкап и приложить файл с ним к репозиторию (желательно с инструкцией по развёртыванию);
  • Если используется EntityFramework и в целом платформа не очень старая, перейти на миграции. Тогда БД будет подниматься и обновляться по команде в консоли или автоматически (если Вы напишите соответствующий скрипт).

Последний подход более современный и простой в развёртывании (особенно со скриптом).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *