Переместить базу данных sql на другой диск

Обновлено: 05.07.2024

Вопрос: как переместить файлы SQL Server MDF и LDF?

Ответ. Недавно я получил этот вопрос во время комплексной проверки работоспособности базы данных. Если вы почитаете старые блоги или выполните поиск в Интернете, вы найдете решение, в котором люди говорят о методе «Отсоединить и прикрепить». Однако это старый метод, и теперь нет необходимости следовать тому же методу.

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

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

Предположим, что мы хотим переместить базу данных SQLAuthority со своего диска D на диск E на моем компьютере.

Шаг 1. Исходное местоположение

Сначала мы получим расположение физических файлов с помощью следующей команды.

Шаг 2. Переведите базу данных в автономный режим

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

Шаг 3. Переместите файлы — MDF и LDF

Теперь на этом шаге вам нужно будет переместить файлы базы данных из исходного местоположения в новое.

Шаг 4. Измените расположение файла внутри SQL Server

Выполнение следующей команды изменит расположение файла для SQL Server.

Шаг 5. Подключите базу данных к сети

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

Шаг 6. Проверьте расположение файла базы данных

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

Ну вот и все. Вам больше не нужно использовать старый метод Отсоединения или Присоединения, если вы хотите переместить базу данных.

Похожие сообщения

перекомпилировать сохраненное процедура

SQL SERVER — два простых способа перекомпилировать хранимые процедуры

Удаление завершения

SQL SERVER Management Studio — удаление времени завершения в сообщениях


SQL SERVER — полнотекстовый поиск не работает для PDF-документов

4 комментария . Оставить новый

Примечание для команды: для вашего обзора.
Это был технологический/предупредительный удар по базе данных и серверу, на котором почти закончилось место на сервере, который должен быть перенесен по этому графику.

Проблема: L-диск SPPATLSQL06 был загружен на 94%, и во время заморозки на сервере могло закончиться рабочее пространство, что привело к отключению всей базы данных на этом интенсивно используемом BI-сервере.
SystemName Описание VolumeName DeviceID MediaType Размер (ГБ) Свободное пространство (ГБ) Свободно (%) Используется (%)
———- ———– ———- ——— ——— —— – ————— ——— ——–
до SPPATLSQL06 Данные локального фиксированного диска3 H: 12 1331 316 24 % 76 %
после SPPATLSQL06 Данные локального фиксированного диска3 H: 12 1331 528 40 % 60 %
до SPPATLSQL06 Local Fixed Disk DATA L: 12 1450 92 6 % 94 %
после SPPATLSQL06 Local Fixed Disk DATA L: 12 1450 304 21 % 79 %
name CurrentLocation state_desc
Access_BA_Data L:\MSSQL\DATA\Access_BA.MDF ONLINE
Access_BA_Log M:\MSSQL\LOGS\Access_BA_2.LDF ONLINE
Access_BA_Index L:\MSSQL\DATA\Access_BA_1.NDF ONLINE
— Отчет об инвентаризации скрипта из базы данных Tempdb
Имя FileSize(mb) SpaceUsed(mb) FreeSpace(mb) PCT_Used PCT_Free Расположение на диске и имя файла
Access_BA_Index 2,052 2,031 21 99 1 L:\MSSQL\DATA\Access_BA_1.NDF
Access_BA_Data 215 489 192 664 22 825 89 11 L:\MSSQL\DATA\Access_BA.MDF
Access_BA_Log 1 301 101 1 201 8 92 M:\MSSQL\LOGS\Access_ BA_2.LDF
Решение: переместите базу данных подходящего размера на другой диск данных, где она поместится на другом диске, тем самым освободив NNN ГБ пространства и, в этом случае, файлы MDF и NDF базы данных [Access_BA]. 217 ГБ.
Техника:
1. Переведите базу данных [Access_BA] в однопользовательский режим.
ALTER DATABASE Access_BA SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
2. Резервное копирование базы данных [Access_BA] в качестве меры предосторожности через 30 минут
3. ИЗМЕНИТЬ БАЗУ ДАННЫХ Access_BA SET OFFLINE;
4. Перемещение Access_BA.MDF и Access_BA_1.NDF с диска L на диск H (перемещение файла объемом 229 ГБ) Время истечения 25 мин.
5. ИЗМЕНИТЬ БАЗУ ДАННЫХ Access_BA
ИЗМЕНИТЬ ФАЙЛ (ИМЯ = Access_BA_Data, FILENAME = ‘H:\data\Access_BA.MDF’);
ИЗМЕНИТЬ БАЗУ ДАННЫХ Access_BA
ИЗМЕНИТЬ ФАЙЛ ( NAME = Access_BA_Index, FILENAME = ‘H:\data\Access_BA_1.NDF’ );
–Сообщение: Файл «Access_BA_Data» был изменен в системном каталоге. Новый путь будет использоваться при следующем запуске базы данных.
6. ИЗМЕНИТЬ БАЗУ ДАННЫХ Access_BA SET ONLINE;
7. ИЗМЕНИТЬ БАЗУ ДАННЫХ [Access_BA] SET MULTI_USER WITH NO_WAIT
8. Подтвердите доступ к базе данных.
конец.

Хэнк Фриман | Старший администратор базы данных SQL Server
Elavon — U.S.Bank

Спасибо за это. Ваш вклад действительно полезен

После выполнения последнего шага

ИЗМЕНИТЬ БАЗУ ДАННЫХ [Test_3.6_log] УСТАНОВИТЬ ОНЛАЙН;

Появляется эта ошибка

Сообщение 5011, уровень 14, состояние 5, строка 18
У пользователя нет разрешения на изменение базы данных «Test_3.6_log», база данных не существует или база данных не находится в состоянии, позволяющем выполнять проверки доступа .
Сообщение 5069, уровень 16, состояние 1, строка 18
Ошибка оператора ALTER DATABASE.

В этой статье описывается перемещение системных баз данных в SQL Server. Перемещение системных баз данных может быть полезно в следующих ситуациях:

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

Перемещение для планового обслуживания диска.

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

Для процедур, описанных в этой статье, требуется логическое имя файлов базы данных. Чтобы получить имя, запросите столбец имени в представлении каталога sys.master_files.

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

Переместить системные базы данных

Чтобы переместить данные системной базы данных или файл журнала в рамках запланированного перемещения или планового обслуживания, выполните следующие действия. Сюда входят системные базы данных model , msdb и tempdb.

Эта процедура применяется ко всем системным базам данных, кроме основной базы данных и базы данных ресурсов. См. далее в этой статье шаги по перемещению базы данных master. База данных Resource не может быть перемещена.

Запишите существующее расположение файлов базы данных, которые вы собираетесь переместить, просмотрев представление каталога sys.master_files.

Убедитесь, что учетная запись службы для ядра базы данных SQL Server имеет полные права доступа к новому местоположению файлов. Дополнительные сведения см. в разделе Настройка учетных записей служб Windows и разрешений. Если учетная запись службы Database Engine не может управлять файлами в новом расположении, экземпляр SQL Server не запустится.

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

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

Скопируйте файл или файлы базы данных в новое место. Обратите внимание, что это необязательный шаг для системной базы данных tempdb, эти файлы будут созданы в новом месте автоматически.

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

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

Последующие действия: после перемещения системной базы данных msdb

Если база данных msdb перемещена и настроена Database Mail, выполните следующие дополнительные действия.

Убедитесь, что компонент Service Broker включен для базы данных msdb, выполнив следующий запрос.

Если Service Broker не включен для msdb , его необходимо снова включить, чтобы Database Mail работала. Дополнительные сведения см. в разделе ALTER DATABASE. УСТАНОВИТЬ ENABLE_BROKER.

Убедитесь, что значение is_broker_enabled теперь равно 1.

Убедитесь, что Database Mail работает, отправив тестовое письмо.

Процедура восстановления после сбоя

Если файл необходимо переместить из-за аппаратного сбоя, выполните следующие действия, чтобы переместить файл в новое место. Эта процедура применяется ко всем системным базам данных, кроме основной базы данных и базы данных ресурсов. В следующих примерах используется приглашение командной строки Windows и утилита sqlcmd.

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

Убедитесь, что учетная запись службы для ядра базы данных SQL Server имеет полные права доступа к новому местоположению файлов. Дополнительные сведения см. в разделе Настройка учетных записей служб Windows и разрешений. Если учетная запись службы Database Engine не может управлять файлами в новом расположении, экземпляр SQL Server не запустится.

Остановить экземпляр SQL Server, если он запущен.

Запустите экземпляр SQL Server в основном режиме восстановления, введя одну из следующих команд в командной строке. Использование параметра запуска 3608 запрещает SQL Server автоматически запускать и восстанавливать любую базу данных, кроме базы данных master. Дополнительные сведения см. в разделе Параметры запуска и TF3608.

Параметры, указанные в этих командах, чувствительны к регистру. Команды не выполняются, если параметры не указаны, как показано.

Для экземпляра по умолчанию (MSSQLSERVER) выполните следующую команду:

Для именованного экземпляра выполните следующую команду:

Сразу после запуска службы с флагом трассировки 3608 и /f запустите соединение sqlcmd с сервером, чтобы заявить единственное доступное соединение. Например, при локальном выполнении sqlcmd на том же сервере, что и экземпляр по умолчанию (MSSQLSERVER), и для подключения с проверкой подлинности интеграции с Active Directory выполните следующую команду:

Чтобы подключиться к именованному экземпляру на локальном сервере с аутентификацией интеграции с Active Directory:

Дополнительную информацию о синтаксисе sqlcmd см. в разделе утилита sqlcmd.

Для каждого файла, который нужно переместить, используйте команды sqlcmd или SQL Server Management Studio, чтобы выполнить следующую инструкцию. Дополнительные сведения об использовании служебной программы sqlcmd см. в разделе Использование служебной программы sqlcmd. После открытия сеанса sqlcmd выполните следующую инструкцию один раз для каждого перемещаемого файла:

Закройте утилиту sqlcmd или SQL Server Management Studio.

Остановите экземпляр SQL Server. Например, запустите NET STOP MSSQLSERVER в командной строке.

Скопируйте файл или файлы в новое место.

Перезапустите экземпляр SQL Server. Например, запустите NET START MSSQLSERVER в командной строке.

Проверьте изменение файла, выполнив следующий запрос.

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

Перемещение основной базы данных

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

Убедитесь, что учетная запись службы для ядра базы данных SQL Server имеет полные права доступа к новому местоположению файлов. Дополнительные сведения см. в разделе Настройка учетных записей служб Windows и разрешений. Если учетная запись службы Database Engine не может управлять файлами в новом расположении, экземпляр SQL Server не запустится.

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

В узле "Службы SQL Server" щелкните правой кнопкой мыши экземпляр SQL Server (например, SQL Server (MSSQLSERVER)) и выберите "Свойства".

В диалоговом окне свойств SQL Server (имя_экземпляра) выберите вкладку "Параметры запуска".

В поле "Существующие параметры" выберите параметр -d. В поле Укажите параметр запуска измените параметр на новый путь к основному файлу data. Выберите Обновить, чтобы сохранить изменения.

В поле "Существующие параметры" выберите параметр -l. В поле Укажите параметр запуска измените параметр на новый путь к главному файлу log. Выберите Обновить, чтобы сохранить изменения.

Значение параметра файла данных должно следовать за параметром -d, а значение файла журнала должно следовать за параметром -l. В следующем примере показаны значения параметров для расположения файла основных данных по умолчанию.

-dC:\Program Files\Microsoft SQL Server\MSSQL .MSSQLSERVER\MSSQL\DATA\master.mdf

-lC:\Program Files\Microsoft SQL Server\MSSQL .MSSQLSERVER\MSSQL\DATA\mastlog.ldf

Если планируется перемещение файла основных данных в E:\SQLData , значения параметров будут изменены следующим образом:

Нажмите "ОК", чтобы сохранить изменения навсегда и закрыть диалоговое окно свойств SQL Server (имя_экземпляра).

Остановите экземпляр SQL Server, щелкнув имя экземпляра правой кнопкой мыши и выбрав Остановить.

Скопируйте файлы master.mdf и mastlog.ldf в новое место.

Перезапустите экземпляр SQL Server.

Проверьте изменение файла для базы данных master, выполнив следующий запрос.

С этого момента SQL Server должен работать нормально. Однако Microsoft рекомендует также изменить запись реестра в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance_ID\Setup , где instance_ID похоже на MSSQL13.MSSQLSERVER . В этом кусте измените значение SQLDataRoot на новый путь. Отсутствие обновления реестра может привести к сбою установки исправлений и обновлений.

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

Перемещение базы данных ресурсов

Расположение базы данных Resource: \ :\Program Files\Microsoft SQL Server\MSSQL\ .\ \MSSQL\Binn\\ . База данных не может быть перемещена.

Последующие действия: после перемещения всех системных баз данных

Если вы переместили все системные базы данных на новый диск или том или на другой сервер с другой буквой диска, внесите следующие изменения.

Измените путь журнала агента SQL Server. Если вы не обновите этот путь, агент SQL Server не запустится.

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

Изменить путь к журналу агента SQL Server

В SQL Server Management Studio в обозревателе объектов разверните агент SQL Server.

Щелкните правой кнопкой мыши Журналы ошибок и выберите Настроить.

В диалоговом окне "Настройка журналов ошибок агента SQL Server" укажите новое расположение файла SQLAGENT.OUT. Расположение по умолчанию — C:\Program Files\Microsoft SQL Server\MSSQL\ . \MSSQL\Журнал\\ .

Изменить местоположение базы данных по умолчанию

Из SQL Server Management Studio в обозревателе объектов подключитесь к нужному экземпляру SQL Server. Щелкните экземпляр правой кнопкой мыши и выберите "Свойства".

В диалоговом окне "Свойства сервера" выберите "Настройки базы данных".

В разделе "Расположения базы данных по умолчанию" перейдите к новому расположению файлов данных и журналов.

Остановите и запустите службу SQL Server, чтобы завершить изменение.

Примеры

А. Перемещение базы данных tempdb

В следующем примере файлы данных и журналов tempdb перемещаются в новое место в рамках запланированного перемещения.

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

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

Определите логические имена файлов базы данных tempdb и их текущее расположение на диске.

Убедитесь, что учетная запись службы для ядра базы данных SQL Server имеет полные права доступа к новому местоположению файлов. Дополнительные сведения см. в разделе Настройка учетных записей служб Windows и разрешений. Если учетная запись службы Database Engine не может управлять файлами в новом расположении, экземпляр SQL Server не запустится.

Измените расположение каждого файла с помощью команды ALTER DATABASE .

Пока служба не будет перезапущена, база данных tempdb будет использовать файлы данных и журналов в существующем расположении.

У меня есть база данных, и я хочу переместить файлы .mdf и .ldf в другое место. Но я не хочу останавливать службу MSSQLSERVER и не хочу экспортировать на другой сервер.

Как я могу это сделать?

12 ответов 12

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

Процесс их перемещения довольно прост. Отключение/присоединение уже было описано, но это не так сложно.

Измените расположение файлов с помощью команды ALTER DATABASE:

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

Отключить базу данных

(Я использую WITH ROLLBACK IMMEDIATE, чтобы исключить всех и откатить все текущие открытые транзакции)

Переместить/скопировать файлы в новое место

Просто скопируйте файлы, используя ваш любимый метод (Click 'n Drag, XCopy, Copy-Item, Robocopy)

Подключить базу данных к сети

Подробнее это описано здесь.


Это сработало для меня. В моем случае мне также пришлось переместить файл LDF с помощью первой команды: например. мастер ЕГЭ; --сделайте все это с мастера ALTER DATABASE foo MODIFY FILE (name='DB_Data1_log',filename='X:\NewDBFile\DB_Data1_log.ldf'); --Filename — новое местоположение

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

После перемещения файла(ов) базы данных убедитесь, что у пользователя "NT SERVICE\MSSQLSERVER" есть разрешения на него, иначе вы получите ошибки при попытке вернуть базу данных в оперативный режим.

@mlhDev На самом деле в моем случае порядок ИЗМЕНЕНИЯ ФАЙЛА можно изменить. Если вы сначала запустите MODIFY FILE, он сообщит вам, что команда выполнена успешно, и местоположение будет изменено после операции офлайн-онлайн (формулировки разные, но вы поняли). Однако порядок Offline->Move files->Online имеет значение по очевидной причине. Также отметьте примечание Demonslay335. Разрешение доступа к файлу важно.

Файлы MDF и LDF защищены и не могут быть перемещены, пока база данных находится в сети.

Если вы не возражаете против того, чтобы база данных перестала работать, вы можете ОТСОЕДИНИТЬ ее, переместить файлы, а затем ПРИСОЕДИНИТЬ ее.

  • Щелкните правой кнопкой мыши имя базы данных
  • Выбрать свойства
  • Перейдите на вкладку "Файлы".
  • Запишите путь и имя файла файлов MDF и LDF. Этот шаг важен, если вы не хотите заниматься поиском отсутствующих файлов.
  • Щелкните правой кнопкой мыши имя базы данных
  • Выберите «Задачи» -> «Отключить».
  • Переместите файлы куда хотите
  • Щелкните правой кнопкой мыши узел "Базы данных" вашего сервера.
  • Выберите "Прикрепить".
  • Нажмите кнопку "Добавить".
  • Укажите новое местоположение
  • Нажмите "ОК".

Сейчас все должно быть в порядке. Информацию о процессе DETACH - ATTACH можно найти здесь.

В ссылке о DETACH - ATTACH есть рекомендация использовать оператор ALTER DATABASE, если база данных хранится на том же экземпляре SQL Server. Дополнительные сведения см. в разделе Перемещение баз данных пользователей.

Если вы хотите, чтобы он работал во время движения, выполните РЕЗЕРВНОЕ КОПИРОВАНИЕ - ВОССТАНОВЛЕНИЕ. В процессе восстановления вы можете определить новое расположение файлов базы данных.

Я рекомендую открывать SQL Management Studio от имени администратора, чтобы избежать проблем с доступом к файлам при повторном подключении

Чтобы переместить файлы системной базы данных, выполните следующие действия:

Войдите как пользователь sa в SSMS

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

Завершить все сеансы, подключенные к серверу из SSMS.

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

Мастер ЕГЭ;
ВЫБЕРИТЕ * ИЗ sys.master_files;

Определите путь и запишите текущий путь к файлам.

Используйте TSQL, чтобы изменить путь к файлу для всех баз данных, кроме master:

ИЗМЕНИТЬ БАЗУ ДАННЫХ имя_базы_данных ИЗМЕНИТЬ ФАЙЛ (ИМЯ = логическое_имя, ИМЯ ФАЙЛА = 'новый_путь\имя_файла_ОС')

Теперь расположение файла было изменено.

Обязательно переместите файлы ldf и mdf

В SSMS щелкните правой кнопкой мыши сервер и выберите свойства . Внутри свойств перейдите в «Настройки базы данных». Измените расположение базы данных по умолчанию для данных и журнала на путь назначения. Выйдите из сервера.

Например: измените C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\ на E:\projects\DataBaseFiles\MSSQL\DATA\

Остановить экземпляр SQL Server.

Скопируйте файл или файлы в новое место. Используйте Robocopy для перемещения файлов, чтобы скопировать права доступа в папку назначения. Откройте cmd, запустите от имени администратора и используйте следующую команду:

robocopy /sec исходная папка целевая папка

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

(Здесь мы перемещаем все файлы системной базы данных в новое место.)

  1. В меню "Пуск" выберите "Все программы", выберите "Microsoft SQL Server", выберите "Инструменты настройки" и щелкните "Диспетчер конфигурации SQL Server".

Выполните следующие шаги в диспетчере конфигурации SQL Server:

В узле «Службы SQL Server» щелкните правой кнопкой мыши экземпляр SQL Server (например, SQL Server (MSSQLSERVER)) и выберите «Свойства». В диалоговом окне «Свойства SQL Server (instance_name)» щелкните вкладку «Параметры запуска». В поле «Существующие параметры» выберите параметр –d, чтобы переместить файл основных данных. Щелкните Обновить, чтобы сохранить изменение. В поле Укажите параметр запуска измените параметр на новый путь к базе данных master. В поле «Существующие параметры» выберите параметр –l, чтобы переместить главный файл журнала. Щелкните Обновить, чтобы сохранить изменение. В поле Укажите параметр запуска измените параметр на новый путь к базе данных master.

Значение параметра файла данных должно следовать за параметром -d, а значение файла журнала должно следовать за параметром -l. В следующем примере показаны значения параметров для расположения файла основных данных по умолчанию.

Если планируется перемещение файла основных данных в E:\SQLData, значения параметров будут изменены следующим образом:

Остановите экземпляр SQL Server, щелкнув имя экземпляра правой кнопкой мыши и выбрав Остановить. Перезапустите экземпляр SQL Server.

Войдите в систему SSMS как пользователь sa и проверьте расположение файлов базы данных, выполнив следующий запрос:

Иногда нам нужно на SQL Server переместить файлы базы данных на другой диск. В этой статье мы попытаемся объяснить 3 простых способа выполнить эту задачу. Первый метод объясняет перемещение файлов базы данных с помощью интерфейса SQL Server Management Studio. Идем шаг за шагом без какого-либо сценария. Два других метода основаны на сценарии. Первый использует метод «ALTER DATABASE». Второй использует метод «Отсоединить/присоединить».

Зачем нужно будет переносить базы данных sql на другой диск?

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

Второй сценарий. Создатель базы данных использовал некоторый сценарий T-SQL для создания баз данных. Сценарий T-SQL создал базу данных в расположении по умолчанию, которое было указано в экземпляре SQL Server и, скорее всего, находится на диске C:. Microsoft рекомендовала использовать раздел, отличный от того, на котором установлена ​​ОС, для повышения производительности.Также разные разделы для файла журнала (LDF) и файла данных (MDF).

Прочитайте также другие сообщения справки по SQL Server:

Сервер Sql перемещает файлы базы данных на другой диск

  • Использование интерфейса SQL Server Management Studio для перемещения файлов базы данных.
  • Скрипт для перемещения файлов базы данных методом «ALTER DATABASE».
  • Перемещение файлов базы данных с помощью метода «Отсоединить/присоединить» с использованием сценария T-SQL

Использование интерфейса SQL Server Management Studio для перемещения файлов базы данных.

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

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

Найдите путь к файлам данных и журналов, которые будут перемещены.

  1. Для определения пути можно использовать свойства базы данных:

Имя базы данных — Свойства — Файлы (Под «путь» — Путь к файлам)

Найдите путь к данным и файлы журналов

Найдите путь к файлам данных и журналов

Измените имя базы данных или удалите «где Имя в (‘test’,’test_log’)», чтобы получить путь ко всем файлам базы данных.

Найдите путь к данным и файлы журнала

Найдите путь к файлам данных и журналов

По умолчанию файлы данных и журналов расположены следующим образом:

C:\Program Files\Microsoft SQL Server\MSSQL11.SGALDW\MSSQL\DATA\Test.mdf

Начало переноса базы данных:

Перейдите в SQL Server Management Studio и найдите базу данных, в которую вы будете перемещать файлы данных и журналов.

Щелкните правой кнопкой мыши — Задача — Отсоединить

отключить сервер базы данных sql

Отключить сервер базы данных sql

Появится следующее представление:

Drop Connection

Необходимо установить флажок «Отключить соединение», чтобы убедиться, что у нас не было никакого соединения во время отсоединения базы данных. По умолчанию команда Detach не будет выполняться, если существует какое-либо соединение. После нажатия OK база данных будет отсоединена и исчезнет из представления баз данных в Management Studio.

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

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

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

После завершения копирования вернитесь в Management Studio и щелкните правой кнопкой мыши базу данных, а затем нажмите Присоединить…

Sql Server Attach Database

Подключение базы данных сервера Sql

Найдите файл данных в новом месте назначения, и после добавления данные будут заполнены автоматически.

Переместить базу данных sql на другой диск

Переместить базу данных sql на другой диск

Нажмите "ОК", и новая база данных появится в Management Studio. Сделайте какой-нибудь выбор из таблиц, чтобы убедиться, что все в порядке.

Sql Server перемещает файлы базы данных с помощью метода «Изменить базу данных».

Вы можете использовать команды T-SQL для перемещения данных и файла журнала базы данных sql на другой диск.

Выполните шаги, чтобы переместить базу данных в новое место.

  1. Найдите путь к файлу данных и журналу, объясненному ранее:
    1. Измените базу данных, которую вы хотите перевести в автономный режим, с помощью команды:

    Внимание! Чтобы выкинуть всех и откатить все открытые в данный момент транзакции, нужно использовать «WITH ROLLBACK IMMEDIATE»

    1. Переместите файлы в новое место с помощью следующей команды:
      1. Изменить статус базы данных на "В сети":

      На самом деле этот метод быстрее, чем использование интерфейса Management Studio.

      SQL Server перемещает файлы базы данных методом отсоединения/присоединения с использованием T-SQL

      Последний метод использует отсоединение/присоединение для перемещения файла базы данных сервера SQL. Мы собираемся объяснить это шаг за шагом.

      Наша цель — переместить файлы базы данных из источника «C:\Program Files\Microsoft SQL Server\MSSQL11.SGALDW\MSSQL\DATA\Test.mdf» в место назначения «D:\New_Destination\»

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

        Переместить файлы базы данных sql на другой диск

        Переместить файлы базы данных sql на другой диск

        1. Прикрепите целевую базу данных к новой папке расположения
          1. После этого база данных будет подключена, и вы сможете проверить базы данных Management Studio. Сделайте какой-нибудь выбор из таблиц, чтобы убедиться, что все в порядке.

          Внимание! Выполняйте команду «ROLLBACK IMMEDIATE» только в том случае, если вы уверены, что не собираетесь разрывать какое-либо важное соединение.

          Читайте также: