MSSQL2000中没有日志文件的数据库恢复方法
SQL2000数据恢复
USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'Gosp_dboption '置疑的数据库名', 'single user', 'true'GoDBCC CHECKDB('置疑的数据库名')Goupdate sysdatabases set status =28 where name='置疑的数据库名'Gosp_configure 'allow updates', 0 reconfigure with overrideGosp_dboption '置疑的数据库名', 'single user', 'false假设数据库为TEST:按以下步骤执行A.设置数据库允许直接操作系统表。
此操作可以在SQL Server Enterprise Manager 里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。
也可以使用如下语句来实现。
use mastergosp_configure 'allow updates',1goreconfigure with overridegoB.设置test为紧急修复模式update sysdatabases set status=-32768 where dbid=DB_ID('test')此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表C.下面执行真正的恢复操作,重建数据库日志文件dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')执行过程中,如果遇到下列提示信息:服务器: 消息5030,级别16,状态1,行 1未能排它地锁定数据库以执行该操作。
MSSQL2000数据库附加、还原、备份、自动备份、作业任务管理常用操作手册
MSSQL2000数据库常用操作与配置1.数据库的附加2.数据的还原3.数据库的备份4.数据库自动备份5.作业任务管理6.服务管理器其他开启方法一、数据库的附加备注:附加数据库前请先上传数据库文件与日志文件。
1.先打开SQLServer的企业管理器2.在依次展开数据库,保证数据库是开启的状态。
3.在数据库上点鼠标右键,选择所有任务—>附加数据库。
4.如果你知道数据库存放的位置,就直接把路径粘贴到红色横线上在点数据库文件,如果不知道就点右图的那个红圈,根据路径去找。
5.找到后点确定就OK了返回顶部二、数据库的还原注:还原数据库的前提条件是你的,电脑上有备份的数据库文件1.首先在需要还原的数据库上点鼠标,右键—>所有任务—>还原数据库2.然后再选择从设备—>选择设备—>3.再点添加在找到备份的数据库文件的位置找到后再点确定就OK了。
返回顶部三、数据库的备份1.操作和之前一样。
2.我备份的路径在F:\backup\这个songmeibackup是我备份的数据库名称。
3.然后就连续点确定就可以了返回顶部四、数据库自动备份1.和之前一样根据提示操作2.这个可以根据自己的需要选择3.这个也是根据提示自己选择4.这个提示是说你的SQLSserverAgent没有开启,开启方法打开服务管理器,选择SQLSserverAgent,再把下面那个吊钩打上。
5.再开启服务6.再把服务复原也就是SQLServer,这样就OK了,下面验证看看看能否成功。
返回顶部五、作业任务管理1.作管理—>SQLServer代理—>作业2.在DB维护计划上点鼠标右键,再启动作业3.最后在回到我备份的那个目录下,看到没有那个songmeibackup的文件,说明自动备份没问题返回顶部六、服务管理器其他开启方法1.如果服务器没有在任务栏显示数据库服务管理器图标,开始—>运行,输入sqlmangr,然后确实就可以了返回顶部。
sql server 2000数据库备份还原图文教程详解
sql server 2000数据库备份还原图文教程详解
MSSQL是微软公司的一款数据库管理系统,本文将详细介绍了sql server 2000数据库备份还原功能,需要的朋友可以参考下。
MSSQL是微软公司的一款数据库管理系统,本文将详细介绍MSSQL2000中数据库的备份和还原功能。
1、首先请保证您的备份文件是bak文件,并且备份文件能够正常还原。
2、打开企业管理器”→数据库”,选择您要还原的数据库,右键所有任务”→还原数据库”。
如图:
MSSQL2000数据库备份还原的图文教程
3、如果需要还原以前备份过的文件,直接在还原”选择数据库
”,然后在下方选择要还原的备份即可,如果是从其他地方上传或者复制过来的,请选择从设备”还原。
点添加”,添加您需要还原的备份文件。
如图:。
解决sql2000只有数据文件恢复数据库或者重建日志文件
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
EXEC sp_detach_db @dbname = '库名'
b.删除日志文件
c.再附加
EXEC sp_attach_single_file_db @dbname = '库名',
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
F.设置test为紧急修复模式
打开master数据库的查询分析器执行
update sysdatabases set status=-32768 where dbid=DB_ID('test')
SQL Server日志文件丢失的恢复方法
一、概述在应用系统中,数据库往往是最核心的部分,一旦数据库毁坏或损坏,将会带来巨大的损失,所以数据库的管理越来越重要。
我们在做数据库管理与维护工作中,不可避免会出现各种各样的错误,本文针对数据库的日志文件丢失时如何利用MDF文件恢复数据库的方法进行了研究。
二、数据库的恢复当数据库的主数据MDF文件完好无损时,在丢失了LDF文件的情况下,如何利用MDF文件恢复数据库?我们把SQL Server的日志文件分为两类:一类是无活动事务的日志,另一类是含活动事务的日志,根据不同的日志,采取不同的方法来恢复数据库。
1. 无活动事务的日志恢复无活动事务的日志丢失时,我们很容易利用MDF文件直接恢复数据库,具体方法如下:①.分离被质疑的数据库,可用企业管理器中的"分离数据库工具",或者用存储过程sp_detach_db分离数据库;②利用MDF文件附加数据库生成新的日志文件,可用企业管理器中的"附加数据库"的工具,或者用存储过程sp_attach_single_file_db附加数据库。
如果数据库的日志文件中含有活动事务,利用此方法就不能恢复数据库。
2. 含活动事务的日志恢复含有活动事务的日志丢失时,利用上述方法就会出现"数据库和日志文件不符合,不能附加数据库"。
对于这种情况下,我们采用如下方法:①新建同名数据库AAA,并设它为紧急模式·停止SQL Server服务器;·把数据库主数据MDF文件移走;·启SQL Server服务器,新建一个同名的数据库AAA;·停止SQL Server服务器,把移走的MDF文件再覆盖回来;·启动SQL Server服务器,把AAA设为紧急模式,不过默认情况下,系统表是不能随便修改的,必须首先设置一下使其能被修改,运行以下语句即可:Use MasterGosp_configure ’allow updates’,1reconfigure with overrideGo接着运行以下语句,把AAA数据库设为紧急模式,即把Sysdatabases表中AAA数据库的status属性设为’37268’,就表示把AAA数据库处于紧急模式。
关于SQL2000备份及还原
关于SQL SEVER备份/恢复的步骤一备份1启动SQL SEVER服务点击“开始”在所有程序了里选择Microsoft AQL server在弹出的菜单里选择服务管理器在服务器(V)里显示的是硬件服务器的名字,如图示“support-cht”即为本地计算机的用户名。
服务(R)为要启动的数据库服务,一般默认SQL server当显示说明数据库服务已经运行起来。
为服务停止。
当SQL server 服务运行起来后,选择“所有程序”里的“Microsoft SQL server”里的“企业管理器”在“SQL SERVER组”下的(Local)本地下面有各个数据库,找到您要备份的数据库,右键点击你要备份的数据库在弹出的选择框选择所有任务选择备份数据库,会弹出备份数据库的选择框界面上除“备份到”的版块,其它均不需要做特殊的设置都是默认选项。
点击“添加”会弹出在这个选择框里是要你对于你即将备份的数据库的名字和备份地址进行确认。
点击“文件名”空格后的小方框会弹出在此选择对话框里选择要备份到的地方和要备份的名字。
注意:强烈建议不要更改原数据的名字否则会导致在恢复到原库的时候无法恢复!!举例:你要备份一个叫”A”的数据库那么如果在备份该数据库将备份文件改名为“1”,那么将备份数据库导入叫“A”数据库时会无法恢复并报错。
在完成一切备份前工作后推到最开始备份数据库文件的界面”选择“选项”将“完成后验证备份”选项前面的勾打上,这样做以便于数据库完成后对于备份的文件和原数据库进行对比和验证选择完后点击确定数据库开始进行备份,并有相应的进度显示。
在出现后点击确定,完成全部的数据库备份。
\。
误删SQL Server数据用使用日志恢复
误删SQL Server数据用LogExplorer恢复数据库技巧2010-07-28 09:48参考一:恢复误删数据(SQL Server 2000)用Log Explorer不小心把客户那边的数据库中删了一千多条数据,之前又没有备份,很郁闷,后来在网上找到一工具(Log Explorer),让我躲过一劫。
首先看一下界面:输入服务器地址,用户名及密码后点Connect,进入界面:在这里选择要恢复数据的数据库,选择UseOn-lineLog(假如你又备份文件的话就不需要用这个工具了,直接用SQL搞定了)。
然后点Attach,进入界面:可以看到左边菜单中有很多功能,我们要恢复数据,首先要查看日志,找出误操作的那些日志记录,点Browse下的ViewLog:这样我们看到对于这个数据库的所有操作日志,我们可根据日期等条件来过滤出我们需要的:过滤日志之后,就到导出数据这一步,这个工具提供了两种方式,第一是导出到XML或HTML文件中(对应左边菜单中的ExportToFile),第二是直接在数据库中建新表,然后将数据导入(ExportToSQL)。
我们来看一下导入到SQL的情况,首先点ExportToSQL选项:输入Database及Table的名称,然后Finish。
这样在你数据的数据库中就会看到有这样几个表:TestTable TestTable_dll TestTable_details TestTable_Keys TestTable_Login其中恢复的数据就在TestTable_details 表中,不过数据格式已经变了,你还需要写存储过程或用其它方法把它导入到原来的表中。
由于大小已超过限制,没有将工具传上来,不过网上有很多地方提供下载,假如你需要,请留下Email。
(网络人 asp教程网)参考资料:/341437.html参考二:误删数据情况下数据库的恢复昨天公司发生一个灾难,日报系统SQLSERVER上的所有数据被一个冒失的家伙全部删除了。
SQL_Server2000还原数据库步骤
SQL Server2000还原数据库步骤一、方法一:使用“附加数据库”方式还原(使用.MDF和.LDF文件还原) (1)二、方法二:使用“还原备份文件”方式还原(使用备份文件还原) (4)一、使用“附加数据库”方式还原(使用.MDF 和.LDF文件还原)1、展开SQL Server企业管理器中左侧树图上的“数据库”节点,在“数据库”上点右键,如下图所示:2、选择“所有任务”→“附加数据库”,弹出如下所示的界面:3、单击上图中红框所示按钮,弹出如下所示的选择需附加(还原)的数据库文件的界面:选择需附加的数据库文件(选择.mdf文件),单击“确定”按钮,如下图所示:4、根据自己的实际情况选择“指定数据库所有者”中的一个用户,单击“确定”按钮,数据库附加(还原)完成,如下图所示:二、使用“还原备份文件”方式还原(使用备份文件还原)1、展开SQL Server企业管理器中左侧树图上的“数据库”节点,在“数据库”上点右键,如下图所示:2、选择“所有任务”→“还原数据库”,弹出如下所示的界面:3、在上图所示的对话框中,在“还原为数据库”后的输入框中输入还原后的数据库名(可以是备份前的数据库名,也可以新起一个数据库名。
本例还原后的数据库名为“ExamOnline”),然后选择“从设备”,如下图所示:4、单击“选择设备”按钮,弹出如下所示对话框:5、单击“添加”按钮,弹出如下对话框:6、单击“文件名”后输入框后面的按钮,弹出选择备份文件的对话框,如下图所示:7、选择之前的数据库备份文件(本例中的备份文件为ExamOnline_backup.bak),单击“确定”按钮,返回到“选择还原目的”对话框,如下图所示:8、单上面的对话框中的“确定”按钮,返回到“选择还原设备”对话框,如下图所示:9、单击“确定”按钮,返回到“还原数据库”对话框,如下图所示:10、单击“确定”按钮,SQL Server开始还原数据库,稍等一会儿,还原就完成了,如下图所示:。
sql2000 数据库置疑解决
sql2000 数据库置疑解决标签:sql2000 数据库置疑缺失.ldf文件只有mdf文件恢复数据库it 分类:工作日志解决由于sql2000日志文件引起的“置疑”。
日志有错误--------重新附加提示日志有错误。
日志文件丢失-----丢失了.ldf文件,只有.mdf文件的数据库重建。
步骤:一、备份“置疑”数据库的数据文件,因为日志文件.ldf出错,可以只备份.mdf文件。
二、打开企业管理器(SQL Server Enterprise Manager),删除“置疑”数据库,如果提示删除错误,可以重启数据库服务器,然后再试。
三、在企业管理器中,新建同名数据库(假如数据库为test),注意建立的数据库名称,还有数据文件名要保持和原数据库一致。
四、停止数据库服务器。
五、将刚才新建数据库生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库.mdf 文件覆盖刚才生成的数据库数据文件test_data.mdf。
六、启动数据库服务器。
此时会看到数据库test的状态为“置疑”。
这时候不能对此数据库进行任何操作。
七、设置数据库允许直接操作系统表。
此操作可以在企业管理器(SQL Server Enterprise Manager)里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。
也可以使用如下语句来实现。
use mastergosp_configure 'allow updates',1goreconfigure with overridego八、设置test为紧急修复模式。
update sysdatabases set status=-32768 where dbid=DB_ID('test')此时可以在企业管理器(SQL Server Enterprise Manager)里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表。
sql2000中如何恢复数据
1、进入windows的开始--程序--Microsoft SQL Server --企业管理器
2、点击进入后,就一直点击一个小的“+”号,直到出现一个有‘数据库’文件夹的菜单,这时再点击‘数据库’旁边
的+号,找到帐套对应的数据库,用右键点击帐套对应的数据库,在出现的菜单上找到所有任务(从上到下的第三个),在出现的子菜单中找到‘还原数据库’...选项
3、进入后选择‘从设备’然后点击那个空白框旁边的‘选择设备’
4、进入后点击‘添加’,进入后点击找到管家婆服务器端的backup文件夹下的备份文件,点击确定,出现的窗口都确定,
注意:将“在现在数据库上强制还原”选中,逻辑文件名以data结尾的对应物理文件名以mdf结尾,逻辑文件名以log 结尾的对应物理文件名以ldf结尾,另请将物理文件名路径改成------管家婆服务器端安装的盘符:\服务器端安装文件夹\data\帐套对应的数据库名.mdf(帐套对应的数据库名.ldf) 如:逻辑文件名以data结尾对应c:\graspcws\data\a34.mdf 逻辑文件名以log结尾对应c:\graspcws\data\a34.ldf
5、设置完成后点击确定就开始恢复,提示完成后点击确定即可。
sql日志丢失恢复方法
sql日志丢失恢复方法我们知道,SQL Server事务日志主要是用来记录所有事务对数据库所做的修改,如果系统出现故障,它将成为最新数据的唯一来源。
日志的操作常有以下几个应用:一、事务日志文件LDF的丢失当我们不小删除或者LDF文件丢失的时候,数据库只剩下MDF文件,此时直接通过附加MDF是无法恢复数据库的,那我们怎么样才能恢复数据库呢?我们可以把SQL Server 的日志文件分为两种形式:一类是无活动事务的日志,另一类是有活动事务的日志,我们分别根据两种情况来进行数据库恢复。
1、无活动事务的日志恢复当文件并没有发生活动性的日志,我们就可以很容易的利用MDF 文件就可以直接恢复数据库了,具体操作方法如下:1)数据库要是没有日志,就会处于置疑的状态,我们先可以通过企业管理器中在对应数据库中点击右键,然后在“所有任务”下选择“分离数据库”把数据库进行分离;2)利用MDF文件附加数据库生成新的日志文件,可用企业管理器中数据库点击右键选择“所有任务”下的“附加数据库”把数据库附加上。
这样就可以直接恢复好数据库了,而如果数据库的日志文件中含有活动事务,利用此方法就不能恢复数据库,所以得使用下面的方法。
2、有活动事务的日志恢复当日志发生了事务的记录,丢失的时候,我们采用如下的方法来实现:1)新建一个同名的数据库,如原数据库名为MYDB,然后停止SQL Server服务器,再把数据库主数据MDF文件移走,然后重新启动SQL Server服务器,新建一个同名的数据库MYDB,然后再停止SQL Server服务器,把移走的MDF文件再覆盖回来,然后再重新启动SQL Server服务器,在默认的情况下,系统表是不允许被修改的,我们需要运行以下语句才可以,在查询分析器中,选择Master数据库,然后执行:Sp_configure 'allow updates',1Reconfigure With Override接着运行以下语句,把Sysdatabases表中MYDB数据库的status属性设为…37268?,把MYDB数据库设置为紧急模式。
SQLServer2000数据备份与恢复
SQL Server2000 数据备份与恢复Author looger 1. 数据库备份1.1 展开服务器组,然后展开服务器。
展开“数据库”文件夹,右击数据库,指向“所有所有”子菜单,然后单击“备份数据库”命令。
1.2 在“名称”框内输入备份集名称,在“描述”框中输入对备份集的描述。
在“备份”选项中选择备份方式。
1.3 点击“添加”按钮以添加现有的目的地或创建新的目的地,点击按钮可以选择一个备份文件1.4 点击按钮后,在下面出现的窗口中选择一个文件作为备份文件,可以在“文件名”后面的文本框中输入一个新的文件名以创建一个备份文件。
1.5 此时刚才选择的文件被加入到备份文件中。
如果要添加其他的文件,则可以点击“添加”按钮添加其他的文件。
在" 重写" 选项下,单击“追加到媒体”,将备份追加到备份设备上任何现有的备份中;点击“重写现有媒体”,将重写备份设备中任何现有的备份1.6 可以选择“调度”复选框调度备份操作在以后执行或定期执行。
点击“调度”后面的按钮可以对调度进行设置1.7 在点击按钮后,可以在下面的对话框中设置调度的名称和调度的类型。
如果需要调度反复出现,则可以点击“更改”按钮1.8 点击“更改”按钮后,可以在下面的窗口中设置作业发生的时机1.9 单击“选项”选项卡。
选择“完成后验证备份”复选框,在备份时对备份进行验证。
选择“检查媒体集名称和备份集到期时间”,检查备份媒体以防意外重写。
在“媒体集名称”框中,输入将用于备份操作的媒体的名称。
如果仅指备份集到期时间,则将其保留为空2. 数据库的恢复2.1 展开服务组,然后展开服务器。
展开“数据库”文件夹,右击数据库,指向“所有任务”子菜单,然后单击“还原数据库”命令2.2 在“还原为数据库”框中,如果要还原的数据库名称与显示的默认数据库名称不同,请在其中进行输入或选择。
若要用新名称还原数据库,请输入新的数据库名称2.3 再“要还原的第一个备份”列表中,选择要还原的备份集2.4 在“还原”列表中,单击要还原的数据库备份2.5 点击“属性”按钮可以查看数据库备份的属性2.6 单击“选项”选项卡,在“还原为”中输入组成数据库备份的各数据库文件的新名称或新位置。
SQL SERVER2000 只有数据库文件没有日志文件的附加方法
2、只有mdf文件的恢复技术由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。
如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库,但是会出现类似下面的提示信息设备激活错误。
物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF' 可能有误。
已创建名为 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日志文件。
但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上述办法就行不通了。
你也许会得到类似下面的错误信息服务器: 消息 1813,级别 16,状态 2,行 1未能打开新数据库 'test'。
CREATE DATABASE 将终止。
设备激活错误。
物理文件名 'd:\test_log.LDF' 可能有误。
怎么办呢?别着急,下面我们举例说明恢复办法。
A.我们使用默认方式建立一个供恢复使用的数据库(如test)。
可以在SQL Server Enterprise Manager里面建立。
B.停掉数据库服务器。
C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。
D.启动数据库服务器。
此时会看到数据库test的状态为“置疑”。
这时候不能对此数据库进行任何操作。
E.设置数据库允许直接操作系统表。
此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。
日志文件丢失下的SQLServer数据库的恢复
完美解决办法!!楼上兄弟不具体!
任何数据库系统都无法避免崩溃的状况,即使你使用了Clustered,双机热备……仍然无法完全根除系统中的单点故障,何况对于大部分用户来说,无法承受这样昂贵的硬件投资。所以,在系统崩溃的时候,如何恢复原有的宝贵数据就成为一个极其重要的问题了。
在恢复的时候,最理想的情况就是你的数据文件和日志文件都完好无损了,这样只需要sp_attach_db,把数据文件附加到新的数据库上即可,或者在停机的时候把所有数据文件(一定要有master等)都copy到原有路径下也行,不过一般不推荐这样的做法,sp_attach_db比较好,虽然麻烦许多。
reconfigure with override
Go
checkdb的时候可能报告有一些错误,这些错误的数据你可能就只好丢弃了。
checkdb有几种修复选项,自己看着用吧,不过最后你可能还是得用REPAIR_ALLOW_DATA_LOSS,完成所有修复。
chekcdb并不能完成所有的修复,我们需要更进一步的修复,用DBCC CHECKTABLE对每一个表做检查吧。
(可省略)
新建一数据库,使用DTS的在 SQL Server 实例之间传输数据库对象功能敬爱能够将原数据库的所有数据库对象、数据及相关权限复制到新数据库中
将原数据库删除,并将新建数据库重命名为原数据库的名,此时除在日志中为应用到数据库中的事务丢失外其他数据均已恢复。
解决方案二:
4.在SQL查询分析器中执行 exec sp_attach_db 'pubs' ,'E:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
sqlserver2000无日志文件情况下的数据库附加
sqlserver2000无日志文件情况下的数据库附加
步骤1
使用原来的数据库名字,创建一个新的数据库。
步骤2
停止SQLServer,将要附加的数据库MDF文件替换新生成的同名MDF文件,,把日志(LDF)文件删除
update sysdatabases set status = 8 where name = 'db_name'
Go
sp_configure 'allow updates', 0
reconfigure with override
Go
步骤7
运行dbcc checkdb(db_name)检查数据库的完整性,db_name中如果含有特殊字符需加"".
步骤3
重新启动SQL Server 服务,然后在查询分析器中,运行如下命令
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
begin tran
update sysdatabases set status = 32768 where name = 'db_name'
commit tran
步骤5
关闭并重启SQL Server ,然后运行如下命令:
DBCC TRACEON (3604)
DBCC REBUILD_LOG('db_name','D:\db\db_name.LDF')
Go
步骤6:
SQL SERVER2000 只有数据库文件没有日志文件的附加方法
2、只有mdf文件的恢复技术由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。
如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库,但是会出现类似下面的提示信息设备激活错误。
物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF' 可能有误。
已创建名为 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日志文件。
但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上述办法就行不通了。
你也许会得到类似下面的错误信息服务器: 消息 1813,级别 16,状态 2,行 1未能打开新数据库 'test'。
CREATE DATABASE 将终止。
设备激活错误。
物理文件名 'd:\test_log.LDF' 可能有误。
怎么办呢?别着急,下面我们举例说明恢复办法。
A.我们使用默认方式建立一个供恢复使用的数据库(如test)。
可以在SQL Server Enterprise Manager里面建立。
B.停掉数据库服务器。
C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。
D.启动数据库服务器。
此时会看到数据库test的状态为“置疑”。
这时候不能对此数据库进行任何操作。
E.设置数据库允许直接操作系统表。
此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MSSQL2000 中没有日志文件的数据库恢复方法 由于种种原因, 我们如果当时仅仅备份了 mdf 文件,那么恢复起来就是一件 很麻烦的事情了。
如果您的 mdf 文件是当前数据库产生的,那么很侥幸,也许你使用 sp_attach_db 或者 sp_attach_single_file_db 可以恢复数据库,但是会出现类 似下面的提示信息 ########################################################## 设备激活错误。
物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF' 可能有误。
已创建名为 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日志文件。
########################################################## 但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也 许上述办法就行不通了。
你也许会得到类似下面的错误信息 ########################################################## 服务器: 消息 1813,级别 16,状态 2,行 1 未能打开新数据库 'test'。
CREATE DATABASE 将终止。
设备激活错误。
物理文件名 'd:\test_log.LDF' 可能有误。
########################################################## 当出现以上问题时,恢复的办法如下: A.我们使用默认方式建立一个供恢复使用的数据库(数据库名应该与要恢复 的数据库相同,如 test)。
可以在 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 里面看到该数据库处于“只读 \置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表 G.下面执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_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 使用”。
此时可以访问数据库里面的用户表了。
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
。