Server的MDF文件的方法

修补SQL Server的MDF文件的方法

假诺备份的数据库有2个文本,分别是.LDF 和
.MDF,展开企管器,在实例上右击—全数职分–附加数据库,然后接纳那些.MDF文件,就可以了。

大概在查询分析器中输入:

sp_attach_db 数据库名称,路线文件名.ldf,路线文件名.MDF

SQL Server数据库备份有三种方法,一种是运用BACKUP
DATABASE将数据库文件备份出去,其它一种就是直接拷贝数据库文件mdf和日志文件ldf的方法。上面将注重探讨一下前者的备份与还原。本文假定你能心手相应运用SQL
Server Enterprise Manager(SQL Server集团微电脑卡塔尔(قطر‎和SQL Server Quwey
Analyser(SQL Server查询分析器State of Qatar

1、符合规律的备份、复苏措施

健康格局下,我们要备份几个数据库,首先要先将该数据库从运转的多少服务器中断开,可能停掉整个数据库服务器,然后复制文件。

卸下数据库的命令:Sp_detach_db 数据库名

连年数据库的吩咐:

以下为援引的剧情:sp_attach_db ‘test’,’C:Program FilesMicrosoft SQL
ServerMSSQLDatatest_data.mdf’,’C:Program FilesMicrosoft SQL
ServerMSSQLDatatest_log.ldf’sp_attach_single_file_db
‘test’,’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_data.mdf’

2、只有mdf文件的回复手艺

出于各样原因,大家只要那时一味备份了mdf文件,那么复苏起来正是一件很麻烦的作业了。

设若你的mdf文件是当下数据库发生的,那么很幸运,大概你利用sp_attach_db或者sp_attach_single_file_db能够恢复数据库,不过会现出就疑似上面包车型客车提示音信

设施激活错误。物理文件名 ‘C:Program FilesMicrosoft SQL
ServerMSSQLdatatest_Log.LDF’ 可能有误。

已创设名称为 ‘C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.LDF’
的新日志文件。然而,假如你的数据库文件是从其余Computer上复制过来的,那么很消极,可能上述措施就不行了。你只怕会拿走相似下边包车型大巴错误音信

服务器: 消息 1813,级别 16,状态 2,行 1

绝对不可以张开新数据库 ‘test’。CREATE DATABASE 将告一段落。

配备激活错误。物理文件名 ‘d:test_log.LDF’ 恐怕有误。

如何做呢?别焦急,上面大家比如表达苏醒措施。

A.大家运用暗中认可格局创建二个供苏醒行使的数据库(如testState of Qatar。能够在SQL Server
Enterprise Manager里面营造。

B.停掉数据库服务器。

C.将刚才生成的数据库的日志文件test_log.ldf删除,用要过来的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。

D.运营数据库服务器。那时会看见数据库test的动静为置疑。当时不可能对此数据库举办此外操作。

E.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise
Manager里面选择数据库服务器,按右键,选用属性,在服务器设置页面上校同意对系统目录直接修改一项选中。也足以运用如下语句来落实。

以下是引用片段:

use master go sp_configure ‘allow updates’,1 go reconfigure with
override go

F.设置test为热切修复形式

update sysdatabases set status=-32768 where dbid=DB_ID(‘test’)

那会儿得以在SQL Server Enterprise
Manager里面见到该数据库处于只读置疑脱机火急情势能够阅览数据Curry面包车型客车表,可是偏偏有系统表

G.上边实行真正的复原操作,重新建构数据库日志文件

dbcc rebuild_log(‘test’,’C:Program FilesMicrosoft SQL
ServerMSSQLDatatest_log.ldf’)

进行进度中,如若境遇下列提醒消息:

服务器: 消息 5030,级别 16,状态 1,行 1

不能够排它地锁定数据库以实行该操作。

DBCC 实施实现。假诺 DBCC 输出了错误消息,请与系统一管理理员联系。

表达你的别的程序正在使用该数据库,如若刚才您在F步骤中应用SQL Server
Enterprise Manager张开了test库的系统表,那么退出SQL Server Enterprise
Manager就能够了。

没有错实践到位的唤醒应该贴近于:

提个醒: 数据库 ‘test’ 的日志已重新建立。已失去专门的学问的一致性。应运作 DBCC
CHECKDB
以表明物理一致性。将必需重新苏醒设置数据库选项,并且也许供给删除多余的日记文件。

DBCC 实施达成。假设 DBCC 输出了错误消息,请与系统管理员联系。

那个时候开垦在SQL Server Enterprise
Manager里面拜见到数据库的气象为只供DBO使用。此时能够访问数据Curry面包车型地铁客户表了。

H.验证数据库一致性(可归纳卡塔尔(قطر‎

dbcc checkdb(‘test’)

诚如试行结果如下:

CHECKDB 发掘了 0 个分配错误和 0 个一致性错误(在数据库 ‘test’ 中卡塔尔。

DBCC 推行实现。假使 DBCC 输出了错误消息,请与系统管理员联系。

I.设置数据库为健康情状

sp_dboption ‘test’,’dbo use only’,’false’

倘诺未有出错,那么恭喜,未来就足以健康的应用复苏后的数据库啦。

J.最后一步,我们要将步骤E中装置的同意对系统目录直接改进一项恢复生机。因为平时直接操作系统表是一件比较危殆的事情。当然,大家得以在SQL
Server Enterprise Manager里面恢复生机,也足以利用如下语句达成

以下是援用片段:

sp_configure ‘allow updates’,0 go reconfigure with override go

以下为引用的开始和结果: Sp_attach_db或者sp_attach_single_file_db

s_attach_db [@dbname =] ‘dbname’, [@filename1 =] ‘filename_n’
[,…16]

sp_attach_single_file_db [@dbname =] ‘dbname’, [@physname =]
‘physical_name’

运用此办法可以准确复苏SQL Sever7.0和SQL Server
二零零零的数据库文件,要点是备份的时候明确要将mdf和ldf多个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。

例子:

借使数据库为test,其数据文件为test_data.mdf,日志文件为test_log.ldf。下边我们钻探一下如何备份、复苏该数据库。

卸下数据库:sp_detach_db ‘test’

延续数据库:

网站地图xml地图