SQLserver2000数据库修复办法总结
SQL Server 2000数据恢复教程

SQLServer2000数据恢复教程
SQL Server 2000 数据库恢复方法:
一、恢复数据库步骤
1. 打开“开始” -> “程序” -> “ MicroSoft SQL Server ” -> “企业管理器”。
2. 在数据库上上单击鼠标右键选择所有任务 -> 还原数据库,如:图 1。
图1
3. 常规设置 ->还原为数据库为:HospitalQueueDB,如:图 2 ,还原选择“从设备”,还原为数据库的名称,您必须填写,数据库名称为排队系统数据库名称(名称一般为HospitalQueueDB、HallQueueDB、WorkHall等)。
图2 4.点击“选择设备按钮”,弹出图3。
5. 在图3上,单击“添加”,弹出窗口如:图4。
图4
6. 在图 4 上,单击“目录选择按钮” 选择排队系统数据库的备份文
件。
7. 单击“确定”回到图3界面,再单击“确定”回到图2界面,在图2中选择选项标签页,如图5。
8.选择正确的物理文件名,也就是数据文件安装目录下的文件,必要时,可把“在现有数据库上强制还原”打勾。
9.点击“确定”按钮开始还原。
sql2000数据库置疑修复

方法一:
1.停止SQL Server的服务,然后备份MS SQL Server的安装目录下的\data子目录. 注意:整个目录目录备份或只备份data目录下置疑数据库的两个文件,一个数据文件dbname_data.mdf,一个dbname_log.ldf(也有可能非此命名),同时查看磁盘空间是否有足够的空间;
8.运行dbcc checkdb(db_name) 检查数据库的完整性 修复数库
注:都要把 dbname 替换成真实的数据库名字。
2.启用SQL Server的服务。打开查询分析器(Query Analyzer)的工具,以用户sa登录;
3.输入如下指令后点工具栏上的绿色箭头运行(快捷键F5), use master go sp_resetstatus dbname go
4.运行完毕后退出此工具,停止SQL Server的服务.
5.在MS SQL Server的安装目录下,有一个\data子目录,其中存放数据文件,包括SQL Server和本系统的数据文件,删除置疑数据库的日志文件dbname_log.ldf(也有可能非此命名).
6.启动SQL Server的服务.
7.打开企业管理器(Enterprise Manager)的工具,查看数据库(database)节点下的dbname是否恢复。
4.停止SQL Server 的服务,再重新启动SQL Server 服务.
5.打开SQL Server 的查询分析器(Query Analyzer),以用户 sa 登录。输入如下指令后点工具栏上的绿色箭头运行,运行完毕后退出此工具: use master go DBCC DBRECOVER (dbname) go
SQLServer2000数据库置疑的解决方法

SQLServer2000数据库置疑的解决方法sql2000中MSDB数据库置疑状态的解决方法问题:我的SQL Server 2000的MSDB数据库,因为不正常关机,造成了置疑状态,请问采用什么方法能够弥补,解决方法一:你可以采用以下的代码进行修复: USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb' Gosp_dboption 'msdb', 'single user', 'true'GoDBCC CHECKDB('msdb')Goupdate sysdatabases set status =28 where name='msdb' Gosp_configure 'allow updates', 0reconfigure with overrideGosp_dboption 'msdb', 'single user', 'false'Go解决方法二:MSDB数据库解决过程难点:由于MSDB数据库不能删除,将其文件拷出来,再次附加数据库,但新的不能同名,遇到了困难。
附加数据库不能叫MSDB,也就是1:先停止整个数据库,将该数据库的文件msdbdata.mdf和msdblog.ldf拷贝粘贴出来到另一个目录下。
2:将以上的文件再拷贝到另一个目录下,也就是说复制两次。
3:选择数据库右击鼠标 --》所有任务--》附加数据库将复制出的一个备份文件附加上去,其中,数据库名称叫MSDB1,用户是SA或ADMINISTRATOR。
4:将MSDB1数据库备份,备份成一个文件,当时我的叫MSDB。
SQLserver2000数据库没有备份时的数据库恢复方法(附加与分离)

数据库没有备份时的数据库恢复方法背景:公司使用浪潮管理软件做账,用Mss sql server 2000数据库系统,建有一套账。
后台数据库名为cwbase1,设备文件保存在D:\cwdata 目录内,名为cwdata1.dat和cwlog1.dat。
由于系统崩亏,不能启动,重装系统。
没有备份。
条件:现在只有d:\cwdata\cwdata1.dat和cwlog1.dat文件。
要恢复数据到系统崩亏前的状态。
实现方法有两种,先看第一种:1、先安装浪潮软件和数据库Mss sql server2000系统。
2、把D:\cwdata文件夹改名为D:\cwdata1。
再新建一个文件夹D:\cwdata。
3、进入浪潮软件的账套管理建一套账,账套的数据库设备目录是D:\cwdata。
4、建完账套后,进入左下角[开始]菜单下的[程序]菜单下的[Microsoft SQL Server]菜单下的[企业管理器],展开各项前面的+ 号后,如下图1:图15、点上cwbase1后,点右键,选择[所有任务]菜单,选择[分离数据库…],如下图2图26、打开后界面如下图3图37、直接点确定,提示“分离数据库顺利完成。
”,cwbase1数据库就从这个企业管理器中消失了。
8、到D:\cwdata目录中,把cwdata1.dat和cwlog1.dat文件删除,再把旧账的备份在d:\cwdata1中的cwdata1.dat和cwlog1.dat复制(或剪切)到d:\cwdata目录中。
9、回到企业管理器中,在[数据库]菜单上点右键,选择[所有任务]菜单下的[附加数据库…]。
如下图4。
图410、打开界面如下图5图511、在“要附加数据库的MDF文件:”下面的对话框,选择框后面的三个点的按钮([验证]前面的),打开一个浏览选择文件的窗口,这时就去选择D:\cwdata\cwdata1.dat文件。
如下图6:图612、点下面的[确定]键,回到如下图7所示界面,再点“指定数据库所有者:”后面的下拉三角按钮,选择“sa”后点确定即可。
MS Sql Server 数据库或表修复(Log日志文件损坏的修复方法)

Sql代码1.----------------- 【1】e master3.go4.sp_configure 'allow updates',15.reconfigure with override6.go7.----------------- 【2】8.update sysdatabases set status=-32768 where dbid=DB_ID('zc_post')9.----------------- 【3】10.dbcc rebuild_log('zc_post','d:\zc_post_log.ldg')11.12.----------------- 【4】13.dbcc checkdb('zc_post')14.15.----------------- 【5】16.sp_dboption 'zc_post','dbo use only','false'Sql代码1.----------------- 【6】Sql代码1.<pre class="sql" style="color: rgb(75, 75, 75); font-size: 15px; font-weight: bold; background-color: rgb(255, 255, 255);" name="code">s p_configure 'allow updates',02.go3.reconfigure with override4.go</pre><br><pre></pre>5.<br>6.============================================================ 【详细方法】Sql代码1.[转]sql server 2000,Log.LDF文件丢失,附加数据库失败的解决办法2.3.关键词:SQL Server数据库文件恢复技术 SQL Server日志文件丢失的恢复方法4.5.SQL Server数据库备份有两种方式,一种是使用BACKUP DATABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式。
日志文件已损坏,如何修复SQLSERVER2000数据库文件

dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
执行过程中,如果遇到下列提示信息:
服务器: 消息 5030,级别 16,状态 1,行 1
1) 先及时把原来的数据库文件(如test.mdf)备份到其他地方。
2) 停掉服务器。
3) 删除这个test.mdf。
4) 重新建立一个test同名数据库。
5) 删除这个新建立的test数据库的test.ldf文件,并用开始备份好test.mdf文件覆盖这个新建立的test.mdf文件。
未能排它地锁定数据库以执行该操作。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
说明您的其他程序正在使用该数据库,如果刚才您在操作中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。
7) 设置test为紧急修复模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')
此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表
正确执行完成的提示应该类似于:
警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件
SQL2000数据库置疑的恢复方法

1、将数据库设置为单用户迷失
sp_dboption '你的数据库名', 'single user', 'true'
2、修复表
DBCC CHECKTABLE('表名',repair_allow_data_loss)
3、取消单用户模式
sp_dboption '你的数据库名', 'single user', 'false'
二、重新启动SQL服务器 来自三、建立新数据库文件夹 如:newdat
四、复制空数据库到新建的数据库文件夹
五、在 sql 企业管理器中附加新数据库 如:newdat
六、用SQL的DTS工具将旧库数据全部导入新库
导入时注意:以pb打头的表不要选择导入
七、导入过程中,如发现某个表被损坏不能导入,可用下面的指令恢复后再导入
操作步骤:
一、打开查询分析器,修改被置疑的数据库为强制启动状态
选择 master 数据库,按以下指令顺序逐条执行
sp_configure 'allow updates',1
RECONFIGURE WITH OVERRIDE
update sysdatabases set status=-32768 Where name='被质疑的数据库名'
sql server数据库修复语句

SQL Server数据库修复语句在SQL Server中,数据库可能会遇到各种问题,比如损坏、不一致或者出现其他错误,这时就需要使用修复语句来修复数据库。
本文将介绍一些常见的SQL Server数据库修复语句,帮助大家解决数据库问题。
1. 使用DBCC CHECKDB命令检查数据库的一致性DBCC CHECKDB是SQL Server中用于检查数据库一致性的命令。
可以使用以下命令来检查指定数据库的一致性问题:```DBCC CHECKDB('数据库名')```这个命令会检查数据库对象的物理和逻辑一致性,包括索引、数据页、数据链路等内容。
如果发现问题,会输出错误信息并尝试修复。
需要说明的是,在运行此命令之前,建议先备份数据库,以免造成数据丢失。
2. 修复损坏的数据页如果DBCC CHECKDB命令检查出了数据页损坏的问题,可以使用以下语句修复:```DBCC PAGE('数据库名', 1, 数据页号, 数据页修复选项)```其中,数据页号是需要修复的数据页的页号,数据页修复选项包括3种:0表示不执行修复,1表示尝试逻辑级别的修复,2表示尝试物理级别的修复。
根据实际情况选择修复选项。
3. 使用修复命令修复数据库如果数据库无法自动修复,可以使用修复命令手动修复数据库。
修复数据库的命令如下:```DBCC CHECKDB('数据库名', REP本人R_REBUILD)```修复操作会尝试重建损坏或不一致的索引,并进行一些其他的一致性检查和修复。
但需要注意的是,该操作可能会导致数据丢失或者数据库不一致,使用前务必确认已经备份了数据库。
4. 使用备份和还原来修复数据库如果数据库问题较为严重,以上方法无法修复,可以尝试使用备份和还原来修复数据库。
需要备份数据库:```BACKUP DATABASE 数据库名 TO 磁盘路径```将备份文件还原到一个新的数据库中:```RESTORE DATABASE 新数据库名 FROM 磁盘路径```这种方法可以将数据库还原到一个较为稳定的状态,但需要注意备份和还原的时机,避免数据丢失。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQLserver2000数据库修复办法总结
Praymid 戴华倪
总结步骤如下:
1、检测数据库,
使用命令(Dbcc checkdb)
拿到数据库后附加到本地SQLserver使其运行,打开企业管理器,查看它。
同时打开查询分析器,在里面输入
Dbcc checkdb 检测数据库命令然后回车
即可以看到数据库的分析资料看到问题,
评注:拿到问题先不要盲目的卸载SQLServer,本次因为新手,上手后就把数据库卸载,这样就耗费了一天的时间,过没有任何作用,测试服务器的完整性可以拿一个好的数据库做对比,自己可以建一个“test”,如果测试数据库运行正常,则不需要对服务器做任何改动。
千万不要改动系统,麻烦会更大。
提示:错误会以红色显示。
2、简单修复:命令:dbcc checkdb
输入以下两句尝试修复。
DBCC CHECKDB('AIS20110120172605',repair_allow_data_loss)
DBCC CHECKDB('AIS20110120172605',repair_rebuild)
不管他究竟哪里错了,先用这两句试试一般的索引系统文件丢失,SQLserver 都可以解决这个问题,基本就差不多了。
但是对于主键索引损坏,这个命令基本修不好,所以对一个满身是伤的数据库,他可以修复70%。
注:修复时系统提示必须要在单用户模式下才可以生效,用户可以去企业管理器,对要修理的数据库:右击属性—选项—限制访问—单用户。
也可以使用以下语句实现:
ALTER DATABASE AIS20110420091143 SET single_USER
GO 改为单用户
ALTER DATABASE AIS20110420091143 SET MULTI_USER
GO 改为多用户。
继续使用dbcc checkdb检测,如果继续报错。
再次运行:
DBCC CHECKDB('DataBasename') with NO_INFOMSGS,PHYSICAL_ONLY
然后再运行:
DBCC CHECKDB(' DataBasename ',repair_allow_data_loss) WITH TABLOCK 再次运行:DBCC CHECKDB('DB name') 系统显示修复成功,说明本次问题主要由索引等数据库系统本身问题引起,这样的修复可能会导致数据丢失,但是绝对不会是大批丢失,基本没有影响。
2、检测表:命令:dbcc checktable(‘tablename’)
接上述检测提示:我们可以看到一个id号,这个基本就是这个错误的表在系统表“sysobjects”里面的注册信息。
输入如下语句即可以看见:
select * from sysobjects where id=1205579333(错误提示号码)
接下来检测这张表究竟是什么问题。
输入:dbcc checktable(‘tablename’)
接下来将会得到一些错误提示,基本上就是检测表的时候那些,提示什么B 树错误,父节点,子节点错误,这些都别管,因为这个可能就是索引引起的错误:尝试用下列语句修复:
DBCC CHECKtable('Tablename',repair_rebuild)
执行完后查看提示:如果出现下面的提示
CREATE UNIQUE INDEX 终止,因为发现了索引 ID 1 的重复键。
最重要的主键为 '3'。
这里基本上就可以确定就是索引出的问题,而且数据表没有被修复的可能很可能就是内容产生的问题。
根据提示,我们得出的结论就是主键重复。
这是我们使用select查询语句是看不到的甚至表里面打开也没有反映。
此时,关闭查询分析器,打开企业管理器,找到那个数据表,然后右击选择设计表,选择主键,右击,取消主键,回到查询分析器,找到该表,右击选择索引,这时候表以前所有的索引都能看见了,但是上面的唯一性选项很明显没有了,然后给表里面添加一个新的字段,字段名 id 需要生成编号:
语句如下:
alter table t_item add id integer identity
该字段用完后删除,语句如下:
alter table t_item drop column id
在查询分析器这里右击索引,选择唯一性选项,然后点击确定,系统会提示重复键,和最重要的主键ID,根据id数字,进行查询
如提示最重要的键值是3则,
select * from t_item where fitemid=3
有时候查询的结果,是合法的,比如这个3可能只有一条,这个时候,就右击索引,点击编辑勾选唯一性,在列上面去掉一个,从上往下第一个开始,但是必须记住他的名字,最好写下来,这时候,你会发现错误信息里面的ID换成了另外一个数字,继续用select语句查询该数字,字段仍然是该表的第一个字段,你会发现他有两条,仔细对比这两条,什么都是一样的,每一个字段的值都一样,这显然不符合逻辑,用刚才添加的id记录删除一条,语句如下:Delete tablename where id=两着任何一个,删除完后,
右击恢复刚才被点掉的那一条列名,勾选上唯一性,点击确定,则正常,回到企业管理器,打开表设计,设置主键。
完成。
回到查询分析器,输入dbcc checktable 显示正常,再次检测数据库,显示正常。
删除刚才增加的列,修复完成。
结论:修复这类数据表,别急着导出数据,新建库文件,这个应该还不到那一步,最好就是能这样修复,少动干戈,如果是主键重复,你导出数据,在把这个错误的数据倒进来(这里假设能正常导入),表的错误会依然存在。