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


15

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

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

但是,由于不能使用MSSQL,我不能这样做。有什么建议么?

附加信息:

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

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

Answers:


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

可以从企业管理器(SQL2000)或它的替代SQL Management Studio(SQL2005 +)或TSQL命令BACKUPRESTORE中执行这两个操作。

注意:在大多数情况下,可以在SQL2005上还原从SQL2000备份的数据库,但在大多数情况下都不会出现问题,但是反之亦然。


1
谢谢大卫。但是,如何在其他服务器上以新名称还原数据库?
亚历克斯N

备份数据库将生成一个备份文件(或扩展现有文件)。将此文件传输到另一台服务器,然后使用Management Studio(或以其他方式发出的RESTORE命令)从该文件还原数据库。还原过程为您提供了在还原数据库后为数据库指定名称的机会。
David Spillett

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个基本步骤,生成仅包含源DB结构的.sql文件=>右键单击源DB,然后单击“任务”,然后单击“生成脚本” =>遵循向导,您可以保存本地的.sql文件其次,在.sql文件中用目标一个替换源db =>右键单击目标文件,然后按New Query和Ctrl-H或(编辑-查找并替换-Quack replce),最后填充数据=>右键单击目标数据库,然后单击“任务”,然后单击“导入数据” =>数据源下拉菜单设置为“用于sql server的.net框架数据处理程序” +在DATA ex下设置连接字符串文本字段:Data Source = Mehdi \ SQLEXPRESS;初始目录= db_test;用户ID = sa;密码= sqlrpwrd15 =>与目标相同=>选中您要转移的表格或选中“ source:.....”旁边的复选框以选中所有

你完成了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.