应该有蛮多技术员碰到过帐套数据库日志文件过大而无法打开帐套的情况,其中也有很多人在企业管理器中数据库的属性里再添加一个日志文件,但后来重装系统的时候发现,备份出来的帐套无法恢复(这个有点不幸,我还没有研究过该怎么恢复他);或者某天发现,日志所在的盘已经暴满,想备份帐套数据库,却发现日志大到你没有介质存储他;这些我们该怎么解决呢?多数人在日志满时选择了重装统,这是一个比原始的办法啦,当然也能彻底解决问题。但是如果客户的机器情况不容许重装就……,如果这样,我们都只有考虑类似“AIS20070308160626_Data.mdf”的文件上下工夫了,或者我们只有一个“AISXXXXXXXXXXXXXX_Data.mdf”的文件,没得选择……
即然问题已经出现,大家按下面的方法即可恢复数据库文件,如果你重装了系统,那么最好就是只装好数据库就可以了,待恢复完成再安装kingdee和其他软件,以免影响我们的工作。
1、打开"企业管理器",使用默认方式建立一个供恢复使用的与原帐套数据库同名数据库(如AIS20070308160626),新建完后关闭企业管理器。
2.停掉数据库服务器,(右键我的电脑-管理-服务和应用程序-服务-双击"MSSQLSERVER"-"停止"),也可以在屏幕右下角点出服务管理器,再点停止。
3.将刚才生成的数据库的日志文件AIS20070308160626_log.ldf删除,用要恢复的数据库“AIS20070308160626_Data.mdf”文件覆盖刚才生成的数据库数据文件AIS20070308160626_data.mdf。 操作完成后重新启动数据库服务器。
4.设置数据库允许直接操作系统表:
打开“查询分析器”,直接确定进入,输入以下语句,点“查询”下的“执行”
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
5.设置"AIS20070308160626"为紧急修复模式,执行如下语句
update sysdatabases set status=-32768 where dbid=DB_ID('AIS20070308160626')
6.执行日志的新建操作,重建数据库日志文件,语句如下:
dbcc rebuild_log('AIS20070308160626','E:\专业版帐套\AIS20070308160626_log.ldf')
正确执行完成的提示应该类似于:
警告: 数据库 'AIS20070308160626' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
7.设置数据库为正常状态,执行如下语句:
sp_dboption 'AIS20070308160626','dbo use only','false'
8.最后,对“允许对系统目录直接修改”一项恢复。执行下列语句
sp_configure 'allow updates',0
go
reconfigure with override
go
到这里,我们数据库恢复完成了