假设我在某个实例上有一个数据库Live。我已经创建了它的备份,现在我需要将它还原到一个名为Dev的新数据库中。在SSMS中,我选择设备Live.bak,然后在目的地将名称更改为Dev,在Files选项卡中,我看到数据库和日志文件也被重命名为Dev.mdf和Dev_log.ldf。当我继续操作时,Live数据库将其状态更改为Restoring。
现在,我尝试取消选中尾日志选项,并且恢复正常。恢复数据库是安全的吗?我的意思是我不想对Live做任何改变。为什么它试图恢复Live数据库。我很困惑。
发布于 2018-03-16 13:12:17
与其使用SSMS界面来还原数据库,不如为restore语句创建一个T脚本。
这有两个目的:
您可以从“还原数据库”对话框中创建脚本,如本屏幕截图所示:

这将生成如下所示的restore语句,为了提高可读性,我已经包装了该语句:
USE [master]
RESTORE DATABASE [test_master_restore]
FROM DISK = N'D:\SQLServer\Backups\master_db.bak' WITH FILE = 1
, MOVE N'master' TO N'D:\SQLServer\MV\MSSQL10_50.MV\MSSQL\DATA\test_master_restore.mdf'
, NOUNLOAD
, STATS = 5发布于 2018-03-16 13:14:05
通过脚本恢复数据库可能更安全,只是为了确保你知道--而且没有--在你的数据库上发生了什么。
RESTORE DATABASE [Dev]
FROM DISK = 'Path\to\Full-Backup\Live-Full-Backup.bak'
WITH Recovery, --make this NORecovery if you want to apply .trn files after
STATS=10
, MOVE '<DataFileLogicalName>' TO 'Path\Dev_01.mdf',
MOVE '<LogFileLogicalName>' TO 'Path\Log_01.ldf' ; 您需要修复path语句和逻辑名称。
https://dba.stackexchange.com/questions/200444
复制相似问题