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

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

  • автор:

Копирование баз данных на другие серверы

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

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

  • Использование мастера копирования баз данных Мастер копирования баз данных можно использовать для копирования или перемещения баз данных между серверами или обновления базы данных SQL Server до более поздней версии. Дополнительные сведения см. в статье Use the Copy Database Wizard.
  • Восстановление базы данных из резервной копии Для копирования всей базы данных можно использовать инструкции BACKUP и RESTORE Transact-SQL. Выбор методики восстановления базы данных из полной резервной копии для копирования базы данных с одного компьютера на другой может быть мотивирован разными причинами. Сведения о копировании базы данных путем восстановления из резервной копии см. в статье Копирование баз данных путем создания и восстановления резервных копий.

Заметка Чтобы настроить зеркальную базу данных для зеркального отображения базы данных, необходимо восстановить базу данных на зеркальном сервере с помощью restore DATABASE WITH NORECOVERY. Дополнительные сведения см. в статье Подготовка зеркальной базы данных к зеркальному отображению (SQL Server).

Перемещение баз данных сервера отчетов на другой компьютер (службы SSRS в собственном режиме)

Базы данных сервера отчетов, используемые при установке SQL Server Компонент Database Engine, можно переместить в экземпляр на другом компьютере. Базы данных reportserver и reportservertempdb должны перемещаться или копироваться вместе. Установка служб Службы Reporting Services требует наличия обеих баз данных. База данных reportservertempdb должна быть связана по имени с перемещаемой базой данных reportserver.

Применимо к: Службы Reporting Services (собственный режим)

Перемещение базы данных не влияет на запланированные операции, определенные в данный момент для элементов сервера отчетов.

  • Расписания будут созданы повторно при первом перезапуске службы сервера отчетов.
  • SQL Server , использующиеся для запуска расписания, будут созданы повторно в новом экземпляре базы данных. Необязательно перемещать эти задания на новый компьютер, однако следует удалить задания на компьютере, на котором они больше не будут использоваться.
  • Подписки, кэшированные отчеты и моментальные снимки сохраняются в перемещенной базе данных. Если после перемещения базы данных моментальный снимок не принимает обновленные данные, очистите параметры моментального снимка и выберите Применить, чтобы сохранить изменения, а затем повторно создайте расписание и вновь сохраните изменения, выбрав Применить.
  • Временные данные отчета и пользовательского сеанса, хранящиеся в базе данных reportservertempdb, при перемещении этой базы данных сохраняются.

SQL Server предусматривает несколько подходов к перемещению баз данных, включая резервное копирование и восстановление, присоединение и отсоединение, а также копирование. Не все из них пригодны для переноса существующей базы данных на новый экземпляр сервера. Подход, который следует использовать для перемещения базы данных сервера отчетов, зависит от требований к доступности системы. Наиболее простой способ перемещения баз данных сервера отчетов состоит в их отсоединении и присоединении. Однако такой подход требует, чтобы сервер отчетов во время отсоединения базы данных был переведен в режим «вне сети». Если нужно свести к минимуму перерывы в обслуживании, лучшим выбором будет резервное копирование и восстановление, хотя для выполнения этих операций потребуется запуск команд Transact-SQL. Не рекомендуется выполнять копирование базы данных (особенно с помощью мастера копирования базы данных), так как при этом в базе данных не сохраняются настройки разрешений.

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

Отсоединение и присоединение баз данных сервера отчетов

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

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

  1. Создайте резервную копию ключей шифрования для перемещаемой базы данных. Для этого можно использовать программу настройки служб Службы Reporting Services .
  2. Остановите службу сервера отчетов. Для этого можно использовать программу настройки служб Службы Reporting Services .
  3. Запустите среду SQL Server Среда Management Studio и установите соединение с экземпляром SQL Server, на котором находятся базы данных сервера отчетов.
  4. Щелкните правой кнопкой мыши базу данных сервера отчетов, укажите пункт «Задачи» и выберите команду Отсоединить. Повторите этот шаг для временной базы данных сервера отчетов.
  5. Скопируйте или переместите MDF- и LDF-файлы в папку данных экземпляра SQL Server , который необходимо использовать. Поскольку осуществляется перемещение двух баз данных, удостоверьтесь, что скопированы или перемещены все четыре файла.
  6. В среде Среда Management Studioустановите соединение с новым экземпляром SQL Server , на котором будут размещены базы данных сервера отчетов.
  7. Щелкните правой кнопкой мыши узел «Базы данных» и выберите пункт Присоединить.
  8. Нажмите кнопку Добавить , чтобы выбрать MDF- и LDF-файлы базы данных сервера отчетов, которые следует присоединить. Повторите этот шаг для временной базы данных сервера отчетов.
  9. После присоединения баз данных удостоверьтесь, что роль RSExecRole представляет собой роль базы данных как в базе данных, так и во временной базе данных сервера отчетов. РольRSExecRole должна иметь разрешения на выбор, вставку, обновление, удаление и ссылку на таблицы базы данных сервера отчетов и разрешения на выполнение хранимых процедур. Дополнительные сведения см. в разделе Создание RSExecRole.
  10. Запустите программу настройки служб Службы Reporting Services и соединитесь с сервером отчетов.
  11. На странице «База данных» выберите новый экземпляр SQL Server и нажмите кнопку Соединить.
  12. Выберите вновь перемещенную базу данных сервера отчетов и нажмите кнопку Применить.
  13. На странице «Ключи шифрования» нажмите кнопку «Восстановить». Укажите файл, содержащий резервную копию ключей и пароль для разблокирования этого файла.
  14. Перезапустите службу сервера отчетов.

Резервное копирование и восстановление из копии баз данных сервера отчетов

Если сервер отчетов нельзя перевести в режим «вне сети», для перемещения его баз данных можно использовать резервное копирование и восстановление. Чтобы выполнить резервное копирование и восстановление, необходимо использовать инструкции Transact-SQL. После восстановления баз данных следует настроить сервер отчетов, чтобы он использовал базу данных на новом экземпляре сервера. Дополнительные сведения см. в инструкциях, приведенных в конце этого подраздела.

Использование для резервного копирования баз данных сервера отчетов инструкций BACKUP и COPY_ONLY

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

-- To permit log backups, before the full database backup, alter the database -- to use the full recovery model. USE master; GO ALTER DATABASE ReportServer SET RECOVERY FULL -- If the ReportServerData device does not exist yet, create it. USE master GO EXEC sp_addumpdevice 'disk', 'ReportServerData', 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\BACKUP\ReportServerData.bak' -- Create a logical backup device, ReportServerLog. USE master GO EXEC sp_addumpdevice 'disk', 'ReportServerLog', 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\BACKUP\ReportServerLog.bak' -- Back up the full ReportServer database. BACKUP DATABASE ReportServer TO ReportServerData WITH COPY_ONLY -- Back up the ReportServer log. BACKUP LOG ReportServer TO ReportServerLog WITH COPY_ONLY -- To permit log backups, before the full database backup, alter the database -- to use the full recovery model. USE master; GO ALTER DATABASE ReportServerTempdb SET RECOVERY FULL -- If the ReportServerTempDBData device does not exist yet, create it. USE master GO EXEC sp_addumpdevice 'disk', 'ReportServerTempDBData', 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\BACKUP\ReportServerTempDBData.bak' -- Create a logical backup device, ReportServerTempDBLog. USE master GO EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog', 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\BACKUP\ReportServerTempDBLog.bak' -- Back up the full ReportServerTempDB database. BACKUP DATABASE ReportServerTempDB TO ReportServerTempDBData WITH COPY_ONLY -- Back up the ReportServerTempDB log. BACKUP LOG ReportServerTempDB TO ReportServerTempDBLog WITH COPY_ONLY 

Использование для перемещения баз данных сервера отчетов инструкций RESTORE и MOVE

При восстановлении баз данных из копии обязательно включите аргумент MOVE, чтобы можно было указать путь. Для первоначального восстановления используйте аргумент NORECOVERY, это позволяет сохранить базу данных в состоянии RESTORING и даст время для просмотра резервных копий журналов, чтобы определить, какой из них следует восстанавливать. В качестве последнего шага следует повторить операцию RESTORE с аргументом RECOVERY.

В аргументе MOVE используется логическое имя файла данных. Чтобы определить логическое имя, выполните следующую инструкцию: RESTORE FILELISTONLY FROM DISK=’C:\ReportServerData.bak’;

Следующие примеры включают аргумент FILE, что позволяет указать позицию файла журнала, который требуется восстановить. Чтобы определить позицию файла, выполните следующую инструкцию: RESTORE HEADERONLY FROM DISK=’C:\ReportServerData.bak’;

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

-- Restore the report server database and move to new instance folder RESTORE DATABASE ReportServer FROM DISK='C:\ReportServerData.bak' WITH NORECOVERY, MOVE 'ReportServer' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf', MOVE 'ReportServer_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer_Log.ldf'; GO -- Restore the report server log file to new instance folder RESTORE LOG ReportServer FROM DISK='C:\ReportServerData.bak' WITH NORECOVERY, FILE=2 MOVE 'ReportServer' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf', MOVE 'ReportServer_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer_Log.ldf'; GO -- Restore and move the report server temporary database RESTORE DATABASE ReportServerTempdb FROM DISK='C:\ReportServerTempDBData.bak' WITH NORECOVERY, MOVE 'ReportServerTempDB' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf', MOVE 'ReportServerTempDB_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\REportServerTempDB_Log.ldf'; GO -- Restore the temporary database log file to new instance folder RESTORE LOG ReportServerTempdb FROM DISK='C:\ReportServerTempDBData.bak' WITH NORECOVERY, FILE=2 MOVE 'ReportServerTempDB' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf', MOVE 'ReportServerTempDB_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\REportServerTempDB_Log.ldf'; GO -- Perform final restore RESTORE DATABASE ReportServer WITH RECOVERY GO -- Perform final restore RESTORE DATABASE ReportServerTempDB WITH RECOVERY GO 

Настройка подключения к базе данных сервера отчетов

  1. Запустите диспетчер конфигурации служб Службы Reporting Services и подключитесь к серверу отчетов.
  2. На странице «База данных» нажмите кнопку Изменить базу данных. Щелкните Далее.
  3. Щелкните Выбрать существующую базу данных сервера отчетов. Щелкните Далее.
  4. Выберите экземпляр SQL Server , на котором находится база данных сервера отчетов, и нажмите кнопку Проверить соединение. Щелкните Далее.
  5. В поле «Имя базы данных» выберите нужную базу данных сервера отчета. Щелкните Далее.
  6. В поле «Учетные данные» укажите учетные данные, которые сервер отчетов будет использовать для подключения к базе данных сервера отчетов. Щелкните Далее.
  7. Нажмите кнопку Далее , затем — кнопку Готово.

Установка служб Службы Reporting Services требует, чтобы экземпляр компонента Компонент SQL Server Database Engine включал роль RSExecRole . Создание роли, регистрация имени входа и назначения ролей происходят, когда с помощью программы настройки служб Службы Reporting Services устанавливается подключение к базе данных сервера отчетов. При иных подходах к настройке соединения (особенно если используется программа командной строки rsconfig.exe) сервер отчетов окажется в неработоспособном состоянии. Чтобы сервер отчетов стал доступным, возможно, придется записать код инструментария WMI. Дополнительные сведения см. в разделе Доступ к поставщику WMI для служб Reporting Services.

Перенос базы данных на другой SQL-сервер

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

1. Если база данных с таким именем уже существует

Если при переносе базы данных обнаружится, что база данных с таким именем уже существует, или при восстановлении возникает ошибка, что файл базы данных с таким именем уже существует, требуется вручную указать новое имя базы данных и/или папку, в которой будут размещаться физические файлы БД. Это можно сделать в SQL Server Managment Studio, указав при восстановлении новое имя базы данных на закладке Общие

Restore db 1.png

и папку, в которой должны будут размещаться файлы БД (закладка Файлы)

Restore db 2.png

2. Перенос базы данных Альта-ГТД вместе с дополнительными базами ЭД

Если требуется перенести базу данных Альта-ГТД вместе с дополнительными базами ЭД, то необходимо:

1. Создать средствами программы Альта-ГТД резервную копию базы данных вместе с дополнительными базами. Для этого необходимо выполнить Сервис — Администратор SQL — Бэкап SQL базы данных, после чего утвердительно ответить на вопрос о необходимости резервного копирования дополнительных ЭД-баз. После того, как операция по созданию резервных копий дополнительных баз будет завершена, программа выдаст информационное окно с описанием всех созданных бэкап-файлов. Эти файлы, а также бэкап-файл рабочей базы данных необходимо перенести на другой SQL-сервер.

2. Восстановить базы данных из резервных копий. Если на сервере уже имеется БД с таким названием, то ее необходимо восстановить с другим названием (см. раздел 1).

3. Если при восстановлении была переименована рабочая база данных, тогда необходимо для всех дополнительных баз выполнить скрипт:

UPDATE [Имя_Доп_Базы].[dbo].[Version] SET [Program] = '_gtd_ed@Имя_Основной_Базы'

4. Если при восстановлении была переименована одна или несколько дополнительных баз, то для каждой из них необходимо выполнить скрипт

UPDATE [Имя_Основной_Базы].[dbo].[EdMsgs] SET [MsgDB] = 'Новое_Имя_Доп_Базы' WHERE [MsgDB] = 'Старое_Имя_Доп_Базы'

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

Author24 — интернет-сервис помощи студентам

Привет.
Я хочу перенести базу данных, созданную на этом компьютере на другой сервер.
Здесь стоит 2008 сервер, переносить буду тоже на 2008. Хотя если получиться совместить с 2005 будет вообще идеально (где-то видел такую настройку).

Как правильно это делать? Я может совсем ку-ку конечно, но я почему-то интуитивно решил делать это через восстановление/резервирование баз данных.
1. Резервируем нашу базу данных (она запишется в файл *.bak).
2. Берем этот файл, несем на другой компьютер.
3. Запускаем сервер, создаем новую базу, правой кнопкой по ней — Восстановить. Выбираем наш файл, выбираем назначение — только созданная нами база.
4. Жмем ОК, ждем пол минуты. После ожидания выдается ошибка о том, что база данных видимо не может получить монопольный режим.

Что я делаю не так? Посоветуйте. Месяц делал проект, теперь не могу его перенести — смешно.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Перенос базы на другой компьютер.
Народ помогите разобраться как сохранить базу MS SQL на магнитном носителе и затем восстановить на.

Перенос базы данных на другой ПК. (с SQL2005->SQL2008)
Нужно перенести базу на другой пк, к тому же там стоит SQL2008. Помогите плиз. Заранее благодарен.

Перенос базы данных Access на другой ПК
Всем привет! Прошу помощи. Создал несложный проект в Visual Basic 2010 Exspress по работе с БД.

Создание и перенос базы данных на другой ПК
Всем добрый день) Недавно мой знакомый по просил меня написать ему небольшую базу данных, но.

3408 / 2068 / 738
Регистрация: 02.06.2013
Сообщений: 5,059

ЦитатаСообщение от VladSharikov Посмотреть сообщение

совместить с 2005 будет вообще идеально (где-то видел такую настройку)
Нет таких настроек.

ЦитатаСообщение от VladSharikov Посмотреть сообщение

3. Запускаем сервер, создаем новую базу, правой кнопкой по ней — Восстановить. Выбираем наш файл, выбираем назначение — только созданная нами база.

Лишний пункт. Просто Databases -> Restrore database. без всяких созданий БД.

ЗЫ: Если действительно есть желание чему-то научиться и понимать что и как нужно делать, то не стоит пользоваться GUI. Клацая мышкой вы может и освоите некоторые типовые вещи, но не более того.

Регистрация: 02.12.2010
Сообщений: 824

по поводу вашего совета. на компе с чистым сервером, где нет этой базы — все прошло супер. все есть. но, странно, почему то нет диаграмм. на этом же компе, где стояла уже база выдает ошибку, что такой *.mdf уже есть нельзя клонировать базу. спасибо.

invm, я бы с удовольствием делал бы все через запросы, как в mysql, только я не понимаю как это все делать в sql server.

сейчас нужно все просто сдать, а не запариватся с пониманием!(

Заблокирован

А не проще ли, временно остановить службу, скопировать базу из папки с сервером или где она у Вас лежит, и снова ее запустить?

3408 / 2068 / 738
Регистрация: 02.06.2013
Сообщений: 5,059

ЦитатаСообщение от VladSharikov Посмотреть сообщение

на этом же компе, где стояла уже база выдает ошибку, что такой *.mdf уже есть нельзя клонировать базу

А как вы себе представляете сосуществование одноименных БД да еще с одноименными файлами в одной папке?
На вкладке Options диалога восстановления есть возможность указать пути и имена файлов для восстанавливаемой БД.

1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348

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

Регистрация: 02.12.2010
Сообщений: 824

cygapb-007,
invm,
inv.DS, спасибо.
в какой папке лежат эти mdf? пока что хватило варианта из 1 поста. позже разберусь получше.

Заблокирован

VladSharikov, В папке куда ставили сервер. По умолчанию C:\Program Files\SQL как-то так не помню точно. По поиску сделайте на локальной диске по расширению .MDF файлы.

Эксперт Pascal/Delphi

1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,545

ЦитатаСообщение от VladSharikov Посмотреть сообщение

Привет.
Я хочу перенести базу данных, созданную на этом компьютере на другой сервер.
Здесь стоит 2008 сервер, переносить буду тоже на 2008. Хотя если получиться совместить с 2005 будет вообще идеально (где-то видел такую настройку).

Как правильно это делать? Я может совсем ку-ку конечно, но я почему-то интуитивно решил делать это через восстановление/резервирование баз данных.
1. Резервируем нашу базу данных (она запишется в файл *.bak).
2. Берем этот файл, несем на другой компьютер.
3. Запускаем сервер, создаем новую базу, правой кнопкой по ней — Восстановить. Выбираем наш файл, выбираем назначение — только созданная нами база.
4. Жмем ОК, ждем пол минуты. После ожидания выдается ошибка о том, что база данных видимо не может получить монопольный режим.

Что я делаю не так? Посоветуйте. Месяц делал проект, теперь не могу его перенести — смешно.

Суда посмотрите и поймете Что вы делаю не так http://tavalik.ru/index.php/so. r-2008-r2/
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

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

Перенос базы данных на другой комп(dBase, ADO)
Добрый день, товарищи специалисты! Говорю сразу, в базах данных я ламер. Сделал небольшое.

Перенос базы данных с одного локального сервера на другой
Как перенести базу данных MySQL с Денвера на OpenServer?

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

Или воспользуйтесь поиском по форуму:

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

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