bitget

Bitget交易所

Bitget交易所是全球前4大交易所之一、打新活动多、领空投到手软,新用户注册即可领取BGB空投

点击注册 立即下载

现在虽然很多程序都已经不使用SQL SERVER2000,但是还是有很多系统在用,这些系统往往都是比较老的,又舍不得升级的那种,而且往往服务器也比较老,配置较低,使用时间较长,这样的机器往往容易出现一些问题。

今天我分享一些我的实战经验,针对SQL SERVER 2000 的数据库恢复。

前几天某单位的用友财务系统应强制关机造成数据库日志损坏,单位找到用友的工程师也没有办法,找到了我。远程看了一下他们的系统,发现mdf文件还在,日志损坏了,那就不用多想了,用MDF文件直接恢复。

总计步骤如下:

1、备份原始数据文件以防万一。

2、在管理器中删除损坏的数据库文件,新建一个同名数据库。

3、停止数据库服务 ,把损坏的数据库覆盖回去。

4、打开查询分析器,设置数据库目录可直接读写,并设置紧急模式

use master

go

sp_configure 'allow updates',1

go

reconfigure with override

go

update sysdatabases set status=-32768 where dbid=DB_ID('数据库名称')

go

5、删除日志文件,然后对日志文件进行重建

dbcc rebuild_log('数据库名称','日志文件物理路径')

6、检查数据库并修复其中的错误

dbcc checkdb ('数据库名',repair_allow_data_loss)

如果是数据表,这个命令可以改成dbcc checktable('表名',repair_allow_data_loss)

该步骤非常重要,可能会丢失数据的。。。不执行的话数据库也是不能正常使用的。。。除非你人品好

如果这里有问题,提示什么单用户模式,参照下列代码

Use master

go

sp_dboption 数据库名, single, true

更改成单用户

alter database 数据库名 set single_user with rollback immediate

7、 到第6步其实数据库已经可以恢复正常了,现在要把数据库还原多用户模式,之前修改过的属性也要恢复

alter database 数据库名 set multi_user with rollback immediate

go

sp_dboption '数据库名 ','dbo use only','false'

go

sp_configure 'allow updates',0

go

reconfigure with override

go

以上方法可以不再本机进行,可以在其他电脑恢复完成后在备份过去或者拷过去附加一下即可。

我也因为路程较远没有过去,直接在本机完成了恢复,为了个破sql2000,还特地装了个虚拟机。

恢复之后让对方用用友的软件查看数据,完好无损。

原创文章,转载请注明出处。

bitget

Bitget交易所

Bitget交易所是全球前4大交易所之一、打新活动多、领空投到手软,新用户注册即可领取BGB空投

点击注册 立即下载

Bitget交易所

Bitget交易所V

现在虽然很多程序都已经不使用但是还是有很多系统在用这些系统往往都是比较老的又舍不得升级的那种而且往往服务器也比较老配置较低使用时间较长这样的机器往往容易出现一些问题今天我分享一些我的实战经验针对的数据库恢复前几天某单位的用友财务系统应强制关机造成数据库日志损坏单位找到用友的工程师也没有办法找到了我远...

文章数
0 评论数
浏览数

最近发表

热门文章

标签列表

目录[+]