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

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

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

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

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

附加信息:

原始数据库服务器:SQL Server 2000

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

答案1

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

这两个操作都可以从企业管理器(SQL2000)或其替代品 SQL Management Studio(SQL2005+)或 TSQL 命令执行备份恢复

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

答案2

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

  1. 右键单击数据库
  2. 单击“恢复数据库”..
  3. 将“从数据库”选项设置为要复制的数据库
  4. 将“数据库”选项设置为新名称
  5. 单击“确定”

答案3

这可能是最好的解决方案:

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'

答案4

使用 MS SQLServer 2012,您需要执行 3 个基本步骤:首先,生成仅包含源数据库结构的 .sql 文件 => 右键单击​​源数据库,然后单击任务,然后生成脚本 => 按照向导操作,您就可以在本地保存 .sql 文件;其次,在 .sql 文件中将源数据库替换为目标数据库 => 右键单击​​目标文件,然后按新建查询和 Ctrl-H 或(编辑 - 查找和替换 - Quack replce)最后,填充数据 => 右键单击​​目标数据库,然后单击任务,然后导入数据 => 将数据源下拉设置为“sql server 的 .net framework 数据提供者”+ 在 DATA 下设置连接字符串文本字段,例如:Data Source=Mehdi\SQLEXPRESS;Initial Catalog=db_test;User ID=sa;Password=sqlrpwrd15 => 对目标执行相同操作 => 检查要传输的表或选中“源:.....”旁边的复选框以选中所有

你完成了。

相关内容