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