22

我在 SQL Server 2008 R2 中有一个数据库,我想将此数据库复制到另一台机器上。

如何制作副本?

以及如何恢复它?

谢谢

4

6 回答 6

26

您不能将数据库复制到另一台机器。是的,您可以备份到同一台机器并将其复制到另一台机器并进行恢复。

要进行备份,请遵循以下程序:

  1. 右键单击要备份的数据库。
  2. 选择任务 -> 备份。
  3. 在目标中,选择添加。
  4. 在文件名中单击...按钮并选择要使用 backupname.bak 备份的目标文件夹。单击确定、确定和确定。并等待备份过程完成。单击确定。

现在将该备份文件复制到 pendrive 或任何媒体并将其粘贴到另一台机器并打开 SQL Server 2008 R2

要恢复备份,请执行以下步骤:

  1. 右键单击数据库。
  2. 选择还原数据库。
  3. 在 To Database 字段中写入要恢复的数据库名称
  4. 在 Source 中选择 From device 单选按钮进行还原。点击...
  5. 单击添加按钮,选择您已粘贴的数据库备份文件。单击确定,确定。
  6. 选中选择要恢复的备份集中的恢复复选框。
  7. 继续选项检查覆盖现有数据库并保留复制设置(仅当您尝试恢复已驻留在另一台设备上的数据库时才需要检查此字段)
  8. 单击确定。等到恢复完成,然后单击确定。

如果您遇到任何问题,请告诉我。


按代码

备份:

USE DATABASE_NAME;
GO
BACKUP DATABASE DATABASE_NAME
TO DISK = 'D:\DATABASE_NAME.Bak'
   WITH FORMAT, MEDIANAME = 'D_SQLServerBackups',
   NAME = 'Full Backup of DATABASE_NAME';
GO

(如果要将备份放在任何文件夹中,则在进行备份之前该文件夹必须存在。)

恢复:

第 1 步:从备份中检索数据库的逻辑文件名。

RESTORE FILELISTONLY
FROM DISK = 'D:BackUpYourBaackUpFile.bak'
GO

第 2 步:在后续步骤中使用 LogicalName 列中的值。----将数据库设为单用户模式

ALTER DATABASE YourDB
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE

----恢复数据库

RESTORE DATABASE YourDB
FROM DISK = 'D:BackUpYourBaackUpFile.bak'
WITH MOVE 'YourMDFLogicalName' TO 'D:DataYourMDFFile.mdf',
MOVE 'YourLDFLogicalName' TO 'D:DataYourLDFFile.ldf'

/如果数据库在多用户模式之前语句没有错误。如果发生错误,请执行以下命令,它将在多用户中转换数据库。/

ALTER DATABASE YourDB SET MULTI_USER
GO
于 2013-09-18T08:01:31.477 回答
21

可能有更多方法可以做到这一点,但我通常右键单击数据库并选择“任务→备份...”,备份类型为“完整”。之后,您可以将创建的文件复制到目标计算机,在 SQL Server Management Studio 中连接到其 SQL Server,右键单击“Databases”文件夹并选择“Restore Database”。选择“设备”并选择文件,然后恢复。
另一种方法是在 SQL Server Management Studio 中编写数据库脚本(右键单击数据库,然后单击“任务 → 生成脚本...”)。在此过程中,将有一个称为“设置脚本选项”的步骤,您必须单击“高级”按钮并仔细检查选项。您肯定要为“脚本的数据类型”选项选择“数据和模式”。如果我真的只是想要传输数据结构和数据本身,我有时更喜欢这种方法。

更新:对不起,我忘了提及如何为脚本选项恢复数据库。我总是通过在“设置脚本选项”步骤中选择“保存到新查询窗口”来生成脚本。脚本生成后,请稍等片刻。
在目标服务器上创建一个与您为其生成脚本的数据库同名的新数据库。或者,您也可以在源服务器上为其创建脚本(右键单击数据库,选择“将数据库脚本作为 → CREATE TO... → 剪贴板”)并通过右键单击 SSMS 中的服务器节点来执行此脚本对象资源管理器,选择“新查询”,将脚本粘贴到查询窗口并执行它。
一旦你走上了这两条路中的一条,你应该已经创建了一个新的数据库。在对象资源管理器中右键单击该数据库并选择“新建查询”,然后将包含数据库结构和数据的脚本复制并粘贴到新的查询窗口中并执行查询。这应该可以解决问题。

于 2013-09-18T07:55:19.297 回答
10

使用完整数据库备份复制数据库不会复制联机事务日志中的事务。

如果这很重要,请使用以下步骤使数据库脱机,复制 MDF 和 LDF 文件并附加它们:

  1. 在 SQL Server Management Studio 中选择数据库,右键单击该数据库并选择属性。复制 MDF 和 LDF 文件的位置

在此处输入图像描述

2.点击确定

3.再次右键数据库,选择TasksTake offline

在此处输入图像描述

4.在 Windows 资源管理器中,使用在步骤 #1 中找到的位置复制 MDF 和 LDF 文件

5.将它们粘贴到另一个位置 6.在 SQL Server Management Studio 中,右键单击 SQL Server 实例并选择附加

在此处输入图像描述

7.在下一个对话框中,单击Add,找到复制的文件,选择它们并单击OK 8.更改Attach AS字段 中提供的默认名称。在此处为数据库指定所需的新名称。

在此处输入图像描述

9.点击确定

要使原始数据库重新联机,请右键单击它并选择Tasks,使其联机

于 2014-07-28T16:46:50.697 回答
2

如果您要将其复制到 SQL 2008 R2,那么您所要做的就是

  1. 打开 SQL Server 管理工作室
  2. 选择您的数据库
  3. 右键单击,转到任务-> 备份
  4. 在数据库备份窗口中,单击添加,然后提供您的备份路径和文件名单击确定

将备份文件复制到您要恢复的机器中的任何驱动器,然后,

  1. 打开 SQL Server 管理工作室
  2. 创建一个新的数据库
  3. 右键单击新创建的数据库,转到任务 --> 恢复 --> 数据库
  4. 在恢复窗口中从设备选项中选择
  5. 添加备份文件路径
  6. 点击确定
于 2013-09-18T09:11:23.137 回答
2

除了将数据库复制或移动到同一网络级别的另一台服务器之外,您还可以使用SQL Server 复制数据库向导

要使用这种方法,你应该

  1. 右键单击数据库
  2. 选择任务和
  3. 选择复制数据库
  4. 填写源数据库服务器登录数据
  5. 填写目标数据库服务器登录数据
  6. 选择传输方式

复制数据库向导

  1. 选择要传输的数据库(系统数据库除外)

选择数据库

关于此方法的额外说明

于 2018-11-15T13:25:09.217 回答
1

上面贾斯汀的回答几乎是正确的,只需右键单击 SSMS 中的数据库并选择“任务”>“导出数据”。此向导允许您将整个数据库复制到另一个位置。

于 2018-03-02T20:50:27.477 回答