Как я могу клонировать базу данных SQL Server на одном сервере в SQL Server 2008 Express?

У меня есть система MS SQL Server 2008 Express, которая содержит базу данных, которую я хотел бы "скопировать и переименовать" (для целей тестирования), но я не знаю простого способа достичь этого.

Я заметил, что в версии R2 SQL Server есть мастер копирования базы данных, но, к сожалению, я не могу обновить.

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

Ответ 1

Оказывается, я попытался восстановить из резервной копии неправильно.

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

Итак, короче говоря, восстановление из резервной копии сделало трюк.

Спасибо за все отзывы и предложения ребята

Ответ 2

  • Установите Microsoft SQL Management Studio, вы можете бесплатно загрузить его с веб-сайта Microsoft:

    Версия 2008

    Microsoft SQL Management Studio 2008 является частью SQL Server 2008 Express с расширенными службами

    Версия 2012

    Нажмите кнопку загрузки и проверьте ENU\x64\SQLManagementStudio_x64_ENU.exe

    Версия 2014

    Нажмите кнопку загрузки и проверьте MgmtStudio 64BIT\SQLManagementStudio_x64_ENU.exe

  • Откройте Microsoft SQL Management Studio

  • Резервное копирование исходной базы данных в файл (db → Task → Backup).
  • Создать пустую базу данных с новым именем (клон).
  • Нажмите, чтобы клонировать базу данных и открыть диалоговое окно восстановления (см. изображение) restore dialog
  • Выберите устройство и добавьте файл bakcup с шага 1. add backup file
  • Изменить место назначения для проверки базы данных change destination
  • Измените расположение файлов базы данных, оно должно отличаться от оригинала. Вы можете ввести текст в текстовое поле, просто добавьте постфикс. (ПРИМЕЧАНИЕ: порядок важен. Установите флажок, а затем измените имена файлов.) change location
  • Проверить WITH REPLACE и WITH KEEP_REPLICATION with replace

Ответ 3

Щелкните правой кнопкой мыши базу данных для клонирования, нажмите Tasks, нажмите Copy Database.... Следуйте за мастером, и все готово.

Ответ 4

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

В SQL:

USE master;
GO 
EXEC sp_detach_db
    @dbname = N'OriginalDB';
GO

В командной строке (я упростил пути к файлу для этого примера):

copy c:\OriginalDB.mdf c:\NewDB.mdf
copy c:\OriginalDB.ldf c:\NewDB.ldf

В SQL снова:

USE master;
GO
CREATE DATABASE OriginalDB
    ON (FILENAME = 'C:\OriginalDB.mdf'),
       (FILENAME = 'C:\OriginalDB.ldf')
    FOR ATTACH;
GO
CREATE DATABASE NewDB
    ON (FILENAME = 'C:\NewDB.mdf'),
       (FILENAME = 'C:\NewDB.ldf')
    FOR ATTACH;
GO

Ответ 5

Это script, который я использую. Немного сложно, но это работает. Протестировано на SQL Server 2012.

DECLARE @backupPath nvarchar(400);
DECLARE @sourceDb nvarchar(50);
DECLARE @sourceDb_log nvarchar(50);
DECLARE @destDb nvarchar(50);
DECLARE @destMdf nvarchar(100);
DECLARE @destLdf nvarchar(100);
DECLARE @sqlServerDbFolder nvarchar(100);

SET @sourceDb = 'db1'
SET @sourceDb_log = @sourceDb + '_log'
SET @backupPath = 'E:\tmp\' + sourceDb + '.bak' --ATTENTION: file must already exist and SQL Server must have access to it
SET @sqlServerDbFolder = 'E:\DB SQL\MSSQL11.MSSQLSERVER\MSSQL\DATA\'
SET @destDb = 'db2'
SET @destMdf = @sqlServerDbFolder + @destDb + '.mdf'
SET @destLdf = @sqlServerDbFolder + @destDb + '_log' + '.ldf'

BACKUP DATABASE @sourceDb TO DISK = @backupPath

RESTORE DATABASE @destDb FROM DISK = @backupPath
WITH REPLACE,
   MOVE @sourceDb     TO @destMdf,
   MOVE @sourceDb_log TO @destLdf

Ответ 6

Используя MS SQL Server 2012, вам необходимо выполнить 3 основных этапа:

  • Сначала сгенерируйте файл .sql, содержащий только структуру исходного БД

    • щелкните правой кнопкой мыши исходную БД, а затем Задачи, затем сгенерируйте скрипты
    • выполните мастер и сохраните файл .sql локально
  • Во-вторых, замените исходную БД точкой назначения в файле .sql

    • Щелкните правой кнопкой мыши на целевом файле, выберите "Новый запрос" и Ctrl-H или (Изменить - Найти и заменить - Быстрая замена)
  • Наконец, заполните данные

    • Щелкните правой кнопкой мыши на целевой БД, затем выберите "Задачи" и "Импорт данных"
    • Выпадающий источник данных установлен в ".net framework data provider for SQL server" + установить текстовое поле строки подключения в DATA ex: Data Source=Mehdi\SQLEXPRESS;Initial Catalog=db_test;User ID=sa;Password=sqlrpwrd15
    • сделать то же самое с пунктом назначения
    • проверьте таблицу, которую вы хотите перенести, или установите флажок, кроме "source:...", чтобы проверить все из них.

Вы закончили.

Ответ 7

В SQL Server 2008 R2 резервное копирование базы данных в виде файла в папку.   Затем выберите вариант восстановления, который появляется в папке "База данных".   В мастере введите новое имя, которое вы хотите в целевой базе данных.   И выберите файл восстановления frrom и используйте только что созданный файл.   Я сделал это, и это было очень быстро (моя БД была небольшой, но все же) Пабло.

Ответ 8

Ни одно из решений, упомянутых здесь, не работало для меня - я использую SQL Server Management Studio 2014.

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

введите описание изображения здесь

Ответ 9

Если база данных не очень большая, вы можете посмотреть команды 'Script Database' в SQL Server Management Studio Express, которые находятся в контекстном меню вне элемента базы данных в проводнике.

Вы можете выбрать все для script; вы хотите, чтобы объекты и данные, конечно. Затем вы сохраните все script в один файл. Затем вы можете использовать этот файл для повторного создания базы данных; просто убедитесь, что команда USE вверху установлена ​​в соответствующую базу данных.

Ответ 10

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

Он создаст все таблицы и перенесет все данные в новую базу данных,