Ahs*_*aza 48 database-restore sql-server-2008
出于某种原因,我必须卸载SQL Server 2008 R2,但在此之前我从中复制了两个文件(.mdf和.ldf)
C:\ Program Files(x86)\ Microsoft SQL Server\MSSQL10_50.MSSQL2008\MSSQL\DATA
现在,问题是,我是否可以在新安装的SQL Server 2008 R2中从这些文件中恢复数据库.
如果是:那我该怎么做?
小智 99
对的,这是可能的.步骤是:
首先将.mdf和.ldf文件放在 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\文件夹中
然后转到sql软件,右键单击"数据库",然后单击"附加"选项以打开"附加数据库"对话框
单击"添加"按钮以打开和查找数据库文件来自 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\文件夹
单击"确定"按钮.SQL Server Management Studio从该.MDF文件加载数据库.
The*_*war 10
第一次谷歌搜索让我得到了这个答案.所以我想用更新版本的attach,detach来更新它.
Create database dbname
On
(
Filename= 'path where you copied files',
Filename ='path where you copied log'
)
For attach;
Run Code Online (Sandbox Code Playgroud)
此外,如果您的数据库干净地关闭(数据库关闭时没有活动事务)并且您没有日志文件,则可以使用以下方法,SQL服务器将创建新的事务日志文件.
Create database dbname
On
(
Filename= 'path where you copied files'
)
For attach;
Run Code Online (Sandbox Code Playgroud)
如果你没有指定事务日志文件,SQL将尝试查看默认路径并尝试使用它,无论数据库是否干净地关闭.
以下是MSDN对此的评价.
如果读写数据库具有单个日志文件,并且您没有为日志文件指定新位置,则附加操作将在旧位置查找该文件.如果找到,则使用旧的日志文件,无论数据库是否干净地关闭.但是,如果找不到旧的日志文件,并且数据库干净地关闭且没有活动的日志链,则附加操作会尝试为数据库构建新的日志文件.
这种方法有一些限制,一些方面也会受到影响..
1.attach-and-detach操作都禁用数据库的跨数据库所有权链接
2.Database trustedworthy设置为off
3.Detaching只读数据库丢失有关差异备份的差异基础的信息.
最重要的是..您无法将具有最新版本的数据库附加到早期版本
参考文献:https :
//msdn.microsoft.com/en-in/library/ms190794.aspx
从脚本(一个有效的):
CREATE DATABASE Northwind
ON ( FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Northwind.mdf' )
LOG ON ( FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Northwind_log.ldf')
GO
Run Code Online (Sandbox Code Playgroud)
显然更新路径:
C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA
到.mdf和.ldf所在的位置.
| 归档时间: |
|
| 查看次数: |
157764 次 |
| 最近记录: |