如何在同一台或另一台服务器上复制 MSSQL 数据库?

Ale*_*x N 21 database sql-server

我正在尝试完成以下任务:

  1. 拍摄原始数据库的快照,在另一台服务器上创建并精确复制?
  2. 拍摄原始数据库的快照,在同一服务器上以不同的数据库名称创建副本

但是,由于对 MSSQL 的经验非常有限,我不能。有什么建议?

附加信息:

源数据库服务器:SQL Server 2000

目标数据库服务器:SQL Server 2005

Dav*_*ett 16

  1. 备份数据库
  2. 以新名称和/或在另一台服务器上恢复数据库

这两种操作都可以从 Enterprise Manager (SQL2000) 或其替代品 SQL Management Studio (SQL2005+) 或 TSQL 命令BACKUPRESTORE 执行

注意:您可以在 SQL2005 上恢复从 SQL2000 备份的数据库,在大多数情况下不会出现问题,但反之则不然。


小智 9

添加此内容是我在执行上述步骤时偶然发现的。
在 SQL Server 2008 R2 中,至少您可以跳过获取服务器本地备份的步骤。

  1. 右键单击数据库
  2. 单击恢复数据库..
  3. 将 From database 选项设置为您要复制的数据库
  4. 将 To database 选项设置为新名称
  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
Run Code Online (Sandbox Code Playgroud)

2) 将源文件复制到目标服务器。
如果两台服务器在同一台机器上,您可能需要创建该文件的副本:

EXEC master.dbo.xp_cmdshell 'COPY c:\Test\original.bak   c:\Test\clone.bak'
Run Code Online (Sandbox Code Playgroud)

3) 在目标数据库服务器上:从备份文件中恢复数据库

RESTORE DATABASE CloneDB

FROM DISK='c:\Test\clone.bak'
Run Code Online (Sandbox Code Playgroud)