简体   繁体   English

如何在 SQL Server 中制作数据库的副本

[英]How to make a copy of a database in SQL Server

I can't seem to find any SQL that will clone one database in SQL Server within the same server.我似乎找不到任何 SQL 可以在同一服务器内的 SQL Server 中克隆一个数据库。

Let's say I have a database called MyDB .假设我有一个名为MyDB的数据库。 I simply want to make a copy of MyDB to MyDb2 .我只是想将MyDB的副本复制到MyDb2 I thought that this would work:我认为这会奏效:

BACKUP DATABASE MyDB TO MyDB2;

But I get this error when I try to execute it:但是当我尝试执行它时出现此错误:

Backup device 'DbTestBack' does not exist.备份设备“DbTestBack”不存在。 To view existing backup devices, use the sys.backup_devices catalog view.要查看现有备份设备,请使用 sys.backup_devices 目录视图。 To create a new backup device use either sp_addumpdevice or SQL Server Management Studio.要创建新的备份设备,请使用 sp_addumpdevice 或 SQL Server Management Studio。

Does anyone know what the best way to do this is?有谁知道最好的方法是什么? I want an exact duplicate of the original including security permissions.我想要包括安全权限在内的原始文件的完全副本。

A simple way is taking a back up copy of current DB and restoring it.一种简单的方法是获取当前数据库的备份副本并恢复它。 You Can do this in single step with a simple script您可以使用简单的脚本一步完成此操作

backup database MyDB 
to disk='D:\MyDB.bak';


restore database MyDB2
from disk='D:\MyDB.bak'
WITH move 'MyDB_Data' to  'D:\MyDB2_Data.mdf',
move 'MyDB_log' to  'D:\MyDB2_Data.ldf';
GO

Note : I made an assumption on your current data file and log file name ( MyDB_Data , MyDB_log ), you need to check them and make correct注意:我对您当前的数据文件和日志文件名( MyDB_DataMyDB_log )做了一个假设,您需要检查它们并做出正确的

DBAtools is your friend here. DBAtools是您的朋友。

Use Copy-DbaDatabase使用Copy-DbaDatabase

ie.即。

Copy-DbaDatabase -Source SRV1 -Destination SRV1 -Database myDB -BackupRestore -SharedPath \\<<your temporary server location such as c:\temp>>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM