我们在Windows Server 2008R2上有一个SQL 2012数据库,我们的基础架构团队将其作为一种备份形式分离。我们现在需要恢复数据库,并且没有"正确的"备份数据库。我想我们需要做这样的事情:
复制时,我们会将.MDF和.LDF文件复制到原始的\ Data位置。
我错过了什么吗?
(也欢迎评论使用" detach"作为备份方法的可行性或其他方面。)
答案 0 :(得分:0)
如果您要附加数据库,则需要考虑以下先决条件:
如果在预先请求中没有重要的事项要考虑,那么您可以使用以下步骤分离/附加数据库:
USE master; GO EXEC sp_detach_db @dbname = N'AdventureWorks2012'; GO
将所需的数据库文件复制到其位置
附加数据库
USE master; GO CREATE DATABASE YourDBName ON (FILENAME = 'location to mdf file\YourDBName.mdf'), (FILENAME = 'location to ldf file\YourDBName.ldf') FOR ATTACH; GO
请注意,您可能需要在上述查询中包含.ndf文件(如果它们也存在)。
您也可以使用SQL Server Management Studio分离/ atach向导执行以下步骤。
最后使用detach / attach不是备份和恢复的好方法。您可以阅读更多相关信息here
答案 1 :(得分:0)
您可以使用这些T-SQL语句分离数据库:
USE [master]
GO
EXEC master.dbo.sp_detach_db @dbname = N'stellar'
GO
为了附加,您可以使用以下T-SQL语句:
USE [master]
GO
CREATE DATABASE [stellar] ON
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\stellar.mdf' ),
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\stellar_log.ldf' )
FOR ATTACH
GO
附加数据库的另一种方法是使用create database
CREATE DATABASE Stellar
ON (FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\stellar.mdf')
FOR ATTACH ;
如果您没有日志文件,可以使用以下T-SQL命令生成新的日志文件:
CREATE DATABASE Stellar
ON (FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\stellar.mdf')
FOR ATTACH_REBUILD_LOG ;
检查参考here。