2016-08-16 11 views
1

Я работаю над проектом, который предполагает использование базы данных, и я тестирую ее. Сейчас тесты создают базу данных как файл .mdf и используют его.Как перезаписать файл .mdf

Я хочу сделать копию этого файла .mdf где-то в другом месте и перед каждым тестом заменить исходный файл .mdf копией, которую я только что сделал. Проблема в том, что когда я пытаюсь сделать это, он говорит, что файл используется другим процессом. Я узнал, что процесс sqlservr.exe.

Мой вопрос: есть ли способ остановить использование сервера, чтобы я мог его заменить? Я попробовал опции SQL Server BACKUP и RESTORE, но они недостаточно хороши для меня, потому что они слишком сильно замедляют процесс.

Любая помощь будет высоко оценена.

UPDATE:

Итак, немного больше информации о проблеме. В основном я работаю над улучшением производительности своих модульных тестов. Для большинства тестов требуется подключение к базе данных, поэтому у меня есть LocalDb в файле . Этот файл создается во время TestFixtureSetup. Затем перед каждым тестом (во время SetUp) база данных стирается с помощью команд SQL. Кажется, это не самый эффективный способ воссоздания новой базы данных для каждого теста. Поэтому я уже пробовал два разных метода:

  1. Использовать команды SQL BACKUP и RESTORE. Это работает, но это увеличивает время выполнения моих тестов.
  2. Убийство sqlservr.exe процесс, локальное копирование файла и перезапуск sqlservr.exe. Это также работает, но увеличивает время выполнения.

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

+0

Остановить службу, копировать, а затем начать снова? –

+0

https://msdn.microsoft.com/en-AU/library/ms187858.aspx Отсоединение может работать, а затем Прикрепить его –

ответ

2
  • Вы можете остановить службу, скопируйте файл .MDF и перезапустить службу

  • Вы также можете отключить базу данных, скопировать его и повторно установите его снова

  • Вы также можете резервное копирование базы данных

Update:

Чтобы начать, остановить, приостановить, возобновить или перезапустить SQL Server Browser или экземпляр агента SQL Server.

Запустите диспетчер конфигурации SQL Server, выполнив приведенные выше инструкции. Если появится диалоговое окно «Контроль учетных записей пользователей», нажмите «Да».

В диспетчере конфигурации SQL Server на левой панели щелкните Службы SQL Server.

В панели результатов щелкните правой кнопкой мыши Обозреватель SQL Server, SQL Server Agent (MSSQLServer), или агента SQL Server() для именованного экземпляра,

Затем нажмите кнопку Пуск, Стоп, Пауза, Продолжить или Перезапустить ,

Нажмите «ОК», чтобы закрыть диспетчер конфигурации SQL Server.

Update:

See This Pic

+0

Есть ли более быстрый способ сделать эту резервную копию? Потому что я пытался убить процесс, копируя файлы и снова запуская процесс, но на самом деле это занимает больше времени, чем раньше. – SalysBruoga

+0

Я обновлю свой ответ с помощью imgs. –

+0

@vstrimaitis во всплывающем меню нажмите «Стоп» –

Смежные вопросы