浪潮数据库修复实战
问题:
一客户没有任何数据备份,在使用浪潮数据备份的时候提示XXXX.dll 控件无效.客户端登陆的时候提示,cwmaster数据库无效.
客户使用的是浪潮软件的e系列,只能安装msde.没有sql server 的客户端工具.
解决方法:
首先安装sql的客户端工具,打开企业管理器,查看cwmaster数据库-质疑.分离数据库吧.
然后搜索cwmaster数据库,找到具体路径然后到企业管理器重附加数据库.客户端可以登陆。使用浪潮软件提供的备份工具提示xxx.dll控件无效,从其他机器拷贝一个xxx.dll控件,然后使用regsvr32命令注册此控件。问题解决。
问题解决扩展:
问题可以延伸到1、找不到cwmaster数据库2、找到cwmaster数据库但是数据库被损坏。
1、找不到数据库cwmaster
首先建立一个帐套(001),然后分离此帐套的数据实体,附加客户实际帐套数据实体。
进入sql的查询分析器,执行如下脚本。
sp_configure "allow updates",1
go
reconfigure with override
go
假定是把001账套的数据实体附加到002账套中)
update cwbase2..sysusers set name='lc0029999'
where cwbase2..sysusers.name='lc0019999'
go
update cwbase2..sysusers set name='ad0029999'
where cwbase2..sysusers.name='ad0019999'
go
commit
修改数据库用户Id号:
update cwbase*..sysusers set sid = master..syslogins.sid
from cwbase*..sysusers,master..syslogins
where cwbase*..sysusers.name=master..syslogins.name
go
commit
恢复系统参数设置
sp_configure "allow updates",0
go
reconfigure with override
go
2、cwmaster数据实体被损坏。
这个问题比较复杂,只能从多方面处理,首先考虑的是使用dbcc checkdb修复数据库,可以允许数据丢失进行修复,具体问题出在哪里,从哪里着手。其次是考虑导表,新建数据库cwmaster,利用sql的工具进行导表操作,将旧数据库的数据倒入到新的数据库中。如果不能修复可以按照问题1没有cwmaster的方法处理方法。
其他:
如果是用友软件,出现这种情况,可以新建帐套(001),分离001数据实体,然后附加客户实际数据文件。
如果客户使用的只是财务部份,问题就处理完成。
如果客户使用了供应链-进销存,那么还需要修改ua_identity表。根据供应链中各个表的id和autoid最大值修改ua_identity表中相应的字段.
如果是金蝶软件,处理方法十分简单,直接附加数据实体就可以了.
如果还有其他问题或者不清楚的地方,请给我留言.