Как скопировать mdf файл ms sql
Я создал базу данных "тест" с некоторыми таблицами в MS SQL Server 2008 R2 (т. е. MS SQL Server Management Studio).
теперь мне нужно экспортировать эту базу данных в виде файла MDF.
если вы имеете в виду, что хотите иметь возможность подключить базу данных на другом сервере, то это то, что вы можете сделать:
- отсоединить базу данных (щелкните правой кнопкой мыши базу данных и выберите Detach )
- скопируйте файлы mdf и ldf в папку резервного копирования
- подключение базы данных (щелкните правой кнопкой мыши Databases и нажмите кнопку Attach )
это путь, где вы найдете файл MDF:
щелкните правой кнопкой мыши на базе данных из Management Studio - > отсоединить. Затем у вас есть файл MDF, который вы можете экспортировать туда, куда хотите:)
Если вы хотите реплику локального файла SQLEXPRESS / MDF - на удаленном сервере (SQL Server 2005)
вы можете щелкнуть правой кнопкой мыши в "Обозреватель Серверов" на вашем db.mdf файл и нажмите "опубликовать на поставщика. "
вы можете выбрать различные совместимости с SQL Server 2005, в 2008 и т. д.
выход .файл запроса sql ..
наткнулся на этот вопрос и подумал, что это будет хорошо альтернативный ответ, так как я попал сюда, ища то же самое!
Я думаю, что лучший способ-создать .bak файл из SQL Server .
щелкните правой кнопкой мыши по базе данных=> Task => Back Up -> выбрать базу данных в Source и нажмите OK .
C:\Program файлы\Майкрософт\иметь значение mssql10_50 SQL-сервера.ИМЯ MSSQLSERVER\MSSQL ДАННЫХ\ДАННЫЕ\
Это путь, где вы найдете файл MDF
перейти к пути C:\Users\your имя ПК тогда вы найдете mdf, ldf файл здесь
Если вы находитесь в Visual Studio, перейдите в Обозреватель объектов SQL Server. Найдите нужную базу данных, щелкните правой кнопкой мыши и выберите Свойства. На вкладке свойства найдите Файл Данных, рядом с ним будет расположение вашего файла mdf.
по моему опыту, проще использовать команды sp_detach_db (MSDN) и sp_attach_db (MSDN). Я пытался подключить базу данных, которая была отключена при отсоединении, и SQL Server Management Studio (2014) продолжала сбой, когда я использовал опцию Attach из контекстного меню правой кнопкой мыши. Команды работали-надеюсь, это сэкономит кому-то время.
Примечание: запустите SSMS от имени администратора, если вы видите отказ в доступе при попытке выполнить команда вставить
В этом разделе описывается присоединение базы данных в SQL Server с помощью среды SQL Server Management Studio или Transact-SQL. Эту функцию можно использовать для копирования, перемещения или обновления базы данных SQL Server.
Предварительные требования
Базу данных сначала необходимо отсоединить. Попытка присоединить базу данных, которая не была отсоединена, приведет к возникновению ошибки. Дополнительные сведения см. в разделе Отсоединение базы данных.
При присоединении базы данных должны быть доступны все файлы данных (файлы MDF и LDF). Если у какого-либо файла данных путь отличается от того, каким он был при первом создании или последнем присоединении, необходимо указать текущий путь к файлу.
Если при присоединении базы данных файлы MDF и LDF находятся в разных каталогах, а один из путей содержит \\?\GlobalRoot, операция завершается ошибкой.
Для чего использовать присоединение?
В пределах одного экземпляра базы данных рекомендуется перемещать с помощью процедуры планового перемещения ALTER DATABASE , а не с помощью операций отсоединения и присоединения. Дополнительные сведения см. в статье Move User Databases.
Мы не рекомендуем использовать отсоединение и присоединение для резервного копирования и восстановления, так как резервные копии журналов транзакций отсутствуют, а файлы могут быть случайно удалены.
безопасность
Разрешения на доступ к файлам устанавливаются во время выполнения определенных операций с базами данных, включая отсоединение и присоединение баз данных. Дополнительные сведения о разрешениях на доступ к файлам, настраиваемых при отсоединении и присоединении базы данных см. в разделе Защита данных и файлов журналов электронной документации по SQL Server 2008 R2 (документация актуальна).
Не рекомендуется подключать или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код. Дополнительные сведения о присоединении баз данных и сведения об изменениях, вносимых при присоединении баз данных в метаданные, см. в статье Присоединение и отсоединение базы данных (SQL Server).
Permissions
Требуется разрешение CREATE DATABASE , CREATE ANY DATABASE или ALTER ANY DATABASE .
Использование среды SQL Server Management Studio
Присоединение базы данных
В SQL Server Management Studio обозревателе объектов Компонент SQL Server Database Engineподключитесь к экземпляру компонента и разверните его представление в SSMS.
Щелкните правой кнопкой мыши узел Базы данных и выберите команду Присоединить.
Чтобы указать присоединяемую базу данных, в диалоговом окне Присоединение баз данных нажмите кнопку Добавить, в диалоговом окне Расположение файлов базы данных выберите диск, на котором находится база данных, и разверните дерево каталогов, чтобы найти и выбрать MDF-файл, например:
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.mdf
При попытке выбора базы данных, которая уже присоединена, возникает ошибка.
Базы данных для присоединения
Отобразятся сведения о выбранных базах данных.
<no column header>
Отображается значок, указывающий на состояние операции присоединения. Возможные значки описываются в приводимом ниже описании Состояние .
Расположение файла MDF
Отображается путь и имя выбранного MDF-файла.
Имя базы данных
Отображается имя базы данных.
Присоединить как
Необязательный параметр, указывает другое имя, под которым присоединяется база данных.
Владелец
Содержит раскрывающийся список возможных владельцев базы данных, из которого при необходимости можно выбрать другого владельца.
Состояние
Отображается состояние базы данных в соответствии со следующей таблицей.
Значок | Текст состояния | Описание |
---|---|---|
(Нет значка) | (Нет текста) | Операция присоединения не была запущена или находится в режиме ожидания для этого объекта. Это состояние по умолчанию при открытии диалогового окна. |
Зеленый, указывающий направо треугольник | Выполняется | Операция присоединения была запущена, но не завершена. |
Зеленый флажок | Успешно | Объект успешно присоединен. |
Красный кружок с белым крестом внутри | Error | При выполнении операции присоединения возникла ошибка, и операция не была успешно завершена. |
Кружок с двумя черными квадратами (слева и справа) и двумя белыми квадратами (сверху и снизу) | Остановлена | Операция присоединения не была успешно завершена, т.к. пользователь остановил операцию. |
Кружок, содержащий изогнутую стрелку, указывающую в направлении против часовой стрелки | Выполнен откат | Операция присоединения была успешной, но был выполнен ее откат из-за ошибки, возникшей при вложении другого объекта. |
Добавление
Найдите необходимые основные файлы базы данных. Если пользователь выбирает mdf-файл, необходимые сведения автоматически вводятся в соответствующие поля сетки Базы данных для присоединения .
Удалить
Удаляет выбранный файл из сетки Базы данных для присоединения .
Сведения о базе данных " <имя_базы_данных> "
Отображаются имена файлов, которые необходимо присоединить. Чтобы проверить или изменить путь к файлу, нажмите кнопку Обзор ( . ).
Имя исходного файла
Отображается имя присоединенного файла, принадлежащего базе данных.
Тип файла
Указывается тип файла: Данные или Журнал.
Текущий путь к файлу
Отображается путь к выбранному файлу базы данных. Путь может быть изменен вручную.
Использование Transact-SQL
Присоединение базы данных
Установите соединение с компонентом Компонент Database Engine.
На панели «Стандартная» нажмите Создать запрос.
Выполните инструкцию CREATE DATABASE с предложением FOR ATTACH .
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В этом примере производится присоединение файлов базы данных AdventureWorks2012 с ее последующим переименованием в MyAdventureWorks .
Кроме того, можно вызвать хранимую процедуру sp_attach_db или sp_attach_single_file_db . Но эти расширенные хранимые процедуры в будущих версиях SQL Serverбудут удалены. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого рекомендуется использовать CREATE DATABASE . FOR ATTACH .
Дальнейшие действия. После обновления базы данных SQL Server
После обновления базы данных при помощи описанного метода присоединения, эта база данных сразу становится доступной, после чего обновляется автоматически. Если база данных содержит полнотекстовые индексы, то в процессе обновления будет произведен их импорт, сброс или перестроение в зависимости от установленного значения свойства сервера Режим обновления полнотекстового каталога . Если при обновлении выбран режим Импортировать или Перестроить, то полнотекстовые индексы во время обновления будут недоступны. В зависимости от объема индексируемых данных процесс импорта может занять несколько часов, а перестроение — в несколько (до десяти) раз больше. Обратите внимание, что если при обновлении выбран режим Импортировать, а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены.
После обновления уровень совместимости базы данных останется неизменным, если только он не является в новой версии неподдерживаемым. В последнем случае обновленный уровень совместимости базы данных устанавливается как самый низкий из поддерживаемых.
Например, если подключить к экземпляру SQL Server 2019 (15.x) базу данных, имеющую уровень совместимости 90, то после обновления он будет изменен на 100, что является наименьшим поддерживаемым уровнем для SQL Server 2019 (15.x). Дополнительные сведения см. в разделе Уровень совместимости инструкции ALTER DATABASE (Transact-SQL).
Для подключения базы данных из экземпляра под управлением SQL Server 2014 (12.x) или более ранней версии, в которой включена система отслеживания измененных данных (CDC), потребуется также выполнить следующую команду, чтобы обновить метаданные системы отслеживания измененных данных (CDC).
У меня есть база данных и вы хотите переместить файлы .mdf и .ldf в другое место. Но я не хочу останавливать службу MSSQLSERVER , и я не хочу экспортировать ее на другой сервер.
Как я могу это сделать?
Вам не нужно останавливать службу SQL Server для перемещения файлов базы данных, но вам нужно отключить конкретную базу данных. Это связано с тем, что вы не можете перемещать файлы во время их доступа, а использование базы данных в автономном режиме останавливает использование файлов приложением SQL Server.
Процесс их перемещения довольно прост. Detach /Attach уже был описан, но это не так сложно.
Изменить расположение файлов с помощью команды ALTER DATABASE :
Обратите внимание: вам не нужно объявлять старое местоположение в этой команде. Изменение этого пути не вступает в силу немедленно, но будет использоваться при следующем запуске базы данных.
Установить базу данных в автономном режиме
(Я использую WITH ROLLBACK IMMEDIATE , чтобы выгнать всех и отменить все транзакции, открытые в настоящий момент)
Переместить /Скопировать файлы в новое место
Просто скопируйте файлы с помощью своего любимого метода (нажмите «n Drag, XCopy, Copy-Item, Robocopy)
Принесите базу данных онлайн
Вы можете увидеть это более подробно здесь .
Файлы MDF и LDF защищены и не могут быть перемещены во время работы базы данных.
Если вы не возражаете, чтобы база данных не работала, вы можете DETACH ее переместить, а затем ATTACH .
Теперь вы должны быть в порядке. Информацию о DETACH - ATTACH можно найти .
В ссылке о DETACH - ATTACH есть рекомендация использовать инструкцию ALTER DATABASE , если поддерживать базу данных на том же экземпляр SQL Server. Дополнительная ссылка в Перенос пользовательских баз данных .
Если вы хотите, чтобы он работал во время перемещения, выполните BACKUP - RESTORE . В процессе восстановления вы можете определить новое местоположение файлов базы данных.
Чтобы переместить файлы системной базы данных, выполните следующие действия:
Войдите как пользователь в SSMS
Сделайте резервную копию созданной пользователем базы данных для обеспечения безопасности.
Убейте все сеансы, подключенные к серверу из SSMS.
Выполните следующую команду, чтобы проверить текущее расположение файлов в системных базах данных:
USE master;
SELECT * FROM sys.master_files;
Определите путь и обратите внимание на текущий путь к файлам.
Используйте TSQL для изменения пути к файлу для всей базы данных, кроме master:
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' )
Теперь местоположение файла было изменено.
Обязательно перемещайте файлы ldf и mdf
В SSMS щелкните правой кнопкой мыши Сервер и выберите свойства. Внутри свойств перейдите в Настройки базы данных. Измените базы данных по умолчанию для данных и журнала на путь назначения. Выйдите из сервера.
Например: change C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\ в E:\projects\DataBaseFiles\MSSQL\DATA\
Остановить экземпляр SQL Server.
Скопируйте файл или файлы в новое место. Используйте Robocopy для перемещения файлов, чтобы скопировать разрешения доступа в папку назначения. Откройте cmd и запустите его как администратор и используйте следующую команду:
robocopy /sec sourceFolder destinationFolder
Лучше перейти в исходное местоположение, чтобы запустить команду. Удалите другие файлы, кроме файлов системной базы данных, которые копируются. Например:
(Здесь мы перемещаем все файлы системных баз данных в новое место.)
- В меню «Пуск» выберите «Все программы», «Microsoft SQL Server», «Средства настройки» и «Диспетчер конфигурации SQL Server».
Выполните следующие шаги в диспетчере конфигурации SQL Server:
В узле SQL Server Services щелкните правой кнопкой мыши экземпляр SQL Server (например, SQL Server (MSSQLSERVER)) и выберите «Свойства». В диалоговом окне Свойства SQL Server (имя экземпляра) нажмите вкладку «Параметры запуска». В поле «Существующие параметры» выберите параметр «d», чтобы переместить файл основных данных. Нажмите «Обновить», чтобы сохранить изменения. В поле «Укажите параметр запуска» измените параметр на новый путь к основной базе данных. В поле «Существующие параметры» выберите параметр «l», чтобы переместить файл главного журнала. Нажмите «Обновить», чтобы сохранить изменения. В поле «Укажите параметр запуска» измените параметр на новый путь к основной базе данных.
Значение параметра для файла данных должно соответствовать параметру -d, а значение для файла журнала должно соответствовать параметру -l. В следующем примере показаны значения параметров для местоположения файла основных данных по умолчанию.
Если запланированное перемещение для файла основных данных E: \ SQLData, значения параметров будут изменены следующим образом:
Остановите экземпляр SQL Server, щелкнув правой кнопкой мыши имя экземпляра и выбрав «Стоп». Перезапустите экземпляр SQL Server.
Войдите в систему как пользователь sa в SSMS и проверьте расположение файлов базы данных, выполнив следующий запрос:
USE master;
SELECT * FROM sys.master_files;
Я не уверен, что это лучший способ (я бы приветствовал любые комментарии, чтобы рассказать мне, как это не так), но это очень просто (и быстро, если у вас небольшая база данных):
Сначала создайте резервную копию базы данных в файле .bak. Затем восстановите базу данных из того же .bak-файла, выбрав новые .mdf и .ldf-файлы в параметрах файла для задачи восстановления.
Я бы не делал этого в производственной среде ouside окна обслуживания, так как вы не можете получить доступ к базе данных во время восстановления. Однако другие методы, которые я видел выше, будут иметь сходные недостатки. После выполнения задачи восстановления вам не нужно удалять старый файл. Это делается автоматически.
Есть способ переместить файлы данных базы данных (еще не уверен, есть ли способ сделать это для файлов журналов), не отключая базу данных в автономном режиме.
Краткая версия заключается в том, что вы добавляете другой файл базы данных в новое место, а затем используете DBCC Shrinkfile с опцией EMPTYFILE для перемещения данных из старого файла в новый файл. Когда это будет сделано, вы можете удалить старый файл данных.
Не мое решение, я сам искал это решение и нашел его очень полезным для нашей производственной среды.
Мастер копирования базы данных можно использовать в режиме резервного копирования и восстановления. Щелкните правой кнопкой мыши на db задача Копировать базу данных
Как восстановить файл MDF в SQL Server?
Здесь мы опишем два метода для подключения или восстановления базы данных MDF в SQL Server:
- Используя SQL Server Management Studio
- Используя T-SQL
Восстановление файла MDF в SQL Server без LDF с помощью SQL Server Managment Studio
Выполните все указанные шаги, чтобы успешно прикрепить файл .mdf в SQL Server.
SQL Server создаст файл LDF при прикреплении файла MDF.
Теперь вам нужно проверить базу данных в папке базы данных.
Прикрепите или восстановите файл MDF в SQL Server с помощью сценария T-SQL
CREATE DATABASE testdatabase ON
(FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATAtestdatabase.mdf')
FOR ATTACH_REBUILD_LOG
GO
После восстановления файла MDF с помощью программного обеспечения вы можете подключить MDF в SQL Server. Это программное обеспечение позволяет пользователю восстанавливать удаленные объекты базы данных SQL, а также удаленные записи таблицы SQL. Пользователь может легко восстановить как первичные, так и вторичные файлы с помощью этого программного обеспечения. Кроме того, это программное обеспечение поддерживает Microsoft SQL Server 2019/2017/2016/2014/2012 и более раннюю версию.
Выполните указанные ниже шаги, чтобы восстановить базу данных только из файла MDF.
2. Щелкните на Открыть и просмотреть файл MDF из вашей системы. Далее Выберите Версия SQL Server и Расширенный режим сканирования. (Пользователь также может проверить pпросмотреть удаленный объектs вариант.)
3. Предварительный просмотр объектов базы данных SQL SQL Стол, хранимая процедура, функции, взгляды, индексы и т.д. (Это программное обеспечение показывает удаленные записи таблицы SQL красным цветом.)
4. Щелкните на Кнопка экспорта и заполнить требуемые детали для восстановления базы данных из файла MDF.
Вывод
Читайте также: