首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >恢复数据库

恢复数据库
EN

Database Administration用户
提问于 2018-03-16 09:20:49
回答 2查看 403关注 0票数 0

假设我在某个实例上有一个数据库Live。我已经创建了它的备份,现在我需要将它还原到一个名为Dev的新数据库中。在SSMS中,我选择设备Live.bak,然后在目的地将名称更改为Dev,在Files选项卡中,我看到数据库和日志文件也被重命名为Dev.mdfDev_log.ldf。当我继续操作时,Live数据库将其状态更改为Restoring

现在,我尝试取消选中尾日志选项,并且恢复正常。恢复数据库是安全的吗?我的意思是我不想对Live做任何改变。为什么它试图恢复Live数据库。我很困惑。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2018-03-16 13:12:17

与其使用SSMS界面来还原数据库,不如为restore语句创建一个T脚本。

这有两个目的:

  1. 可以在还原开始之前确认目标数据库名称、还原数据库文件的位置等。
  2. 将来,您可以根据需要重新运行restore语句,而不需要重用GUI。这确保您每次都以相同的方式进行还原。

您可以从“还原数据库”对话框中创建脚本,如本屏幕截图所示:

这将生成如下所示的restore语句,为了提高可读性,我已经包装了该语句:

代码语言:javascript
复制
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
票数 2
EN

Database Administration用户

发布于 2018-03-16 13:14:05

通过脚本恢复数据库可能更安全,只是为了确保你知道--而且没有--在你的数据库上发生了什么。

代码语言:javascript
复制
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语句和逻辑名称。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/200444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档