我可以通过执行备份来创建数据库的副本:
BACKUP DATABASE olddbname TO DISK='olddbname.bak' WITH INIT;然后做一个恢复:
RESTORE DATABASE newdbname FROM DISK='olddbname.bak' WITH REPLACE;但是,这将尝试用与olddbname已经使用的文件名相同的文件名来恢复.mdf和.ldf。
解决方案是使用MOVE选项重命名文件:
RESTORE DATABASE newdbname FROM DISK='olddbname.bak' WITH
REPLACE,
MOVE 'olddbname' TO 'X:\DATA\newdbname.mdf',
MOVE 'olddbname_log' TO 'X:\DATA\newdbname_log.ldf'我讨厌那样。
如果我创建一个新的数据库:
CREATE DATABASE newdbname如果不指定不同的内容,它将在默认位置创建.mdf和.ldf。
如何使还原在相同的默认位置创建.mdf和.ldf文件?
发布于 2018-03-08 19:08:33
下载丁香醇 Powershell库并使用恢复数据库 cmdlet。
下面的示例将get-item的输出(指向从数据库zzz的备份创建的备份文件)输送到Restore-DbaDatabase。我使用-useDestinationDefaultDirectories开关强制还原的文件进入目标实例默认目录。我使用-DatabaseName参数将还原的数据库重命名为googly。
get-item "C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\zzz.bak" |
Restore-DbaDatabase -SqlInstance . -useDestinationDefaultDirectories -DatabaseName googlyhttps://dba.stackexchange.com/questions/199738
复制相似问题