一尘不染

从另一台计算机上的.bak文件还原数据库

sql

我没有做太多的SQL,但对于它来说还是很新的,所以请原谅可能是一个基本问题。

我被要求研究创建一个SQL作业来备份我们的数据库,将.baks存储在另一台计算机上,然后将它们还原到第二台服务器。我一直在做一些研究,并与SSMS一起玩,并且通过设置共享并将备份作业运行到共享位置来将数据库备份到我的个人计算机中。我现在正在尝试通过还原.bak文件(在我尝试创建新名称的数据库中创建一个新数据库,而不是在其他服务器上)创建一个新数据库(在我备份的同一台服务器上),但是无法来指定从共享中还原文件,就像我备份时所做的那样/找不到我指定其他网络位置的方法,并且在尝试查找文件时只是浏览服务器的C驱动器。

目前,我只是使用内置向导来尝试实现此目的(打开SSMS->连接到服务器->右键单击“数据库”->“还原数据库”,然后选择“从设备并浏览以查找文件”)。

这不是最后的过程,只是我试图掌握其工作原理。就像我说的那样,想法是最终要有一个安排好的工作,将数据库从server1备份到我的个人计算机上的.bak上,然后将其还原到server2(不同网络,不同城市)上的数据库中,并且可能,而是使用一系列SQL命令,而不是每次都使用向导(最终会有几个DB需要备份)。

我为这个可能很引人入胜且令人费解的问题道歉-本质上,我需要知道的是,我/我如何才能从另一台计算机上的.bak还原SSMS中的数据库?非常感谢


阅读 276

收藏
2021-03-17

共1个答案

一尘不染

您可以使用类似以下脚本的内容。它从文件系统还原数据库,并使用“ MyDB”名称覆盖现有数据库,从而在此过程中将文件移动到您选择的新位置。

恢复数据库
    我的数据库
从磁盘='\\ MyShare \ MyBackup.bak'
和 
    将'DataFile'移动到'D:\ myNewDBLocation \ DataFile.mdf',
    将'LogFile'移动到'E:\\ myNewDBLocation \ LogFile.ldf'
, 代替

你可以找出llogical文件的文件名(在上面,这些被称为DataFileLogFile通过运行以下:

仅还原文件清单 
从磁盘='\\ MyShare \ MyBackup.bak'

有关各种选项和参数的其他信息:

还原(Transact-SQL)

2021-03-17