Как дублировать базу данных MSSQL на том же или другом сервере?

15

Я пытаюсь сделать следующее:

  1. Сделать снимок исходной базы данных, создать и создать копию на другом сервере?
  2. Сделайте снимок исходной базы данных, создайте дубликат на том же сервере под другим именем БД

Однако я не могу из-за очень ограниченного опыта работы с MSSQL. Какие-либо предложения?

Дополнительная информация:

Исходный сервер БД: SQL Server 2000

Сервер БД назначения: SQL Server 2005

Алекс Н
источник

Ответы:

17
  1. резервное копирование базы данных
  2. восстановить базу данных под новым именем и / или на другом сервере

Обе эти операции могут быть выполнены из Enterprise Manager (SQL2000) или его заменяющей SQL Management Studio (SQL2005 +) или команд TSQL BACKUP и RESTORE .

Примечание: вы можете восстановить резервную копию базы данных из SQL2000 на SQL2005 без проблем в большинстве случаев, но не наоборот.

Дэвид Спиллетт
источник
1
Спасибо, Дэвид. Как мне восстановить БД под новым именем на другом сервере?
Алекс N
Резервное копирование базы данных создает файл резервной копии (или расширяет существующий). Перенесите этот файл на другой сервер, а затем используйте Management Studio (или команду RESTORE, выполненную другим способом), чтобы восстановить базу данных из этого файла. Процесс восстановления дает вам возможность диктовать имя для базы данных после ее восстановления.
Дэвид Спиллетт
7

Добавляя это, я наткнулся на это, следуя инструкциям выше.
По крайней мере, в SQL Server 2008 R2 вы можете пропустить шаг для получения локальной резервной копии на сервере.

  1. Базы данных правой кнопкой мыши
  2. Нажмите Восстановить базу данных.
  3. Установите опцию Из базы данных для базы данных, которую вы копируете
  4. Установите для параметра «База данных» новое имя
  5. Нажмите ОК
Крис
источник
5

Вероятно, это лучшее решение:

1) На сервере исходной базы данных - создать резервную копию в локальный файл

DECLARE @fileName nvarchar(400);
DECLARE @DB_Name nvarchar(50);

SET @DB_Name = 'NameOfSourceDatabase'
SET @fileName = 'c:\Test\original.bak'

BACKUP DATABASE @DB_Name TO DISK = @fileName

2) Скопируйте исходный файл на целевой сервер.
Если оба сервера находятся на одном компьютере, вы можете создать копию этого файла:

EXEC master.dbo.xp_cmdshell 'COPY c:\Test\original.bak   c:\Test\clone.bak'

3) На целевом сервере БД : восстановить базу данных из файла резервной копии

RESTORE DATABASE CloneDB

FROM DISK='c:\Test\clone.bak'
Стефано Розати
источник
0

с помощью MS SQLServer 2012 сначала необходимо выполнить 3 основных шага, сгенерировать файл .sql, содержащий только структуру исходной БД =>, щелкнуть правой кнопкой мыши по исходной БД, а затем «Задачи», затем «Создать сценарии» =>, следуя указаниям мастера, и вы можете сохранить Локальный файл .sql Во-вторых, замените в файле .sql исходную базу данных на целевую => щелкните правой кнопкой мыши по целевому файлу и нажмите New Query и Ctrl-H или, наконец, (отредактируйте - найдите и замените - Quack replce), заполните данными => щелкните правой кнопкой мыши по базе данных назначения, затем Задачи, а затем Импортировать данные => В раскрывающемся списке Источник данных установите «Поставщик данных .net Framework для сервера SQL» + установить текстовое поле строки подключения в разделе ДАННЫЕ, например: Источник данных = Mehdi \ SQLEXPRESS; Исходный каталог = db_test; ID пользователя = sa; Пароль = sqlrpwrd15 => То же самое делать с пунктом назначения =>отметьте таблицу, которую вы хотите перенести, или установите флажок «source: .....», чтобы проверить все

вы сделали.

Мехди Бенкиране
источник