用友软件数据库质疑处理办法.doc
- 文档编号:1336826
- 上传时间:2023-04-30
- 格式:DOC
- 页数:7
- 大小:315KB
用友软件数据库质疑处理办法.doc
《用友软件数据库质疑处理办法.doc》由会员分享,可在线阅读,更多相关《用友软件数据库质疑处理办法.doc(7页珍藏版)》请在冰点文库上搜索。
SQLServer数据库错误9003(LSN无效)的处理方法
国内一些ERP、财务软件一般后台都使用SQLServer的数据库,SQLServer作为一个中大型数据库是不应该在桌面系统上运行的,小规模企业一般不使用专用服务器,大部分直接使用XP系统+桌面引擎MSDE作为SQL数据库的后台服务。
这种方案当然就谈不上什么稳定性和可靠性了,最糟的是在死机、重启或意外掉电后数据库会出现打不开的现象,其中错误9003:
LSN(xx:
xx:
x)无效是最常见的问题。
这种情况是数据库的日志文件(LDF)数据不同步造成的,可以根据数据库MDF文件重建日志文件修复。
以下是详细步骤,有颜色标注的部分应该按本机的实际名称进行修改。
假设损坏的数据库名称是MYDB_001,对应的数据库名称是MyDB_Data.MDF,日志文件是MyDB_Log.LDF,数据库所在文件夹为D:
\MYDATA\;
1、先把损坏的数据库对应的文件MyDB_Data.MDF和MyDB_Log.LDF备份到别的地方;
2、在SQLServer和企业管理器中创建一个与损坏数据库同名的数据库,对应的数据库文件名称也是MyDB_Data.MDF和MyDB_Log.LDF;
3、停止SQLServer服务;
4、删除第2步新建数据库产生的MyDB_Log.LDF文件;
5、用损坏的数据库数据文件MyDB_Data.MDF覆盖第2步新建数据库产生的MyDB_Data.MDF文件
6、启动SQLServer服务;
7、进入企业管理器,刷新数据库状态,此时数据库MYDB_001状态为“置疑”;
8、在SQLServer服务器属性中设置SQLServer数据库服务器“允许对系统目录直接修改”
9、从SQL企业管理器的“工具”菜单启动“SQL查询分析器”;
10、输入以下代码并运行使MYDB_001数据库进入紧急修复模式:
updatesysdatabasessetstatus=-32768wheredbid=DB_ID('MYDB_001')
这句语句执行后,刷新企业管理器,MYDB_001数据库的状态变成“只读\置疑\脱机\紧急模式”。
11、输入以下语句并执行重建日志文件;
dbccrebuild_log('MYDB_001','D:
\MYDATA\MyDB_Log.LDF')
这句语句执行后,刷新企业管理器,MYDB_001数据库的状态变成“只供DBO使用”。
12、输入并执行正面的语句设置数据库MYDB_001到正常状态;
execsp_dboption'MYDB_001','dbouseonly','false'
这句语句执行后,刷新企业管理器,MYDB_001数据库变成正常状态。
到此,MYDB_001数据库修复成功。
最后不要忘记关闭第8步中打开的“允许对系统目录直接进行修改”服务器开关。
万华数据
逻辑文件'UFMODEL'不是数据库‘UFDATA_002_2008’的一部分,请使用RESTOREFILELISTO
U871备份引入失败:
逻辑文件'UFMODEL'不是数据库‘UFDATA_002_2008’的一部分,请使用RESTOREFILELISTONLY来列出逻辑文件名。
-2147217900
截图如下:
ERP资源中心的方法(如下):
问题说明:
数据库备份文件逻辑文件名称错误,数据库文件未损坏,可通过sql企业管理器进行bak还原,进行dbcc checkdb检查也无错误; 正常情况下逻辑文件名应为ufmodel、ufmodel_log,目前用户数据逻辑文件名为ufdata_931_2002_data、ufdata_931_2002_log;(bak还原完成后,从数据库属性中查看逻辑文件名显示正常,但实际上其逻辑文件名存在问题,对其做bak备份仍然保存的是错误的逻辑文件名)
解决方法:
可通过脚本修改数据库的逻辑文件名即可,具体操作如下:
1、首先将数据备份文件ufdata.ba_释放成ufdata.bak文件(由于数据库文件有错,请先在sql7机器上使用数据库还原操作,不需要821);2、在sql企业管理器中进行数据库还原操作,将ufdata.bak还原成数据库ufdata_931_2002;3、还原操作时查看逻辑文件名是ufdata_931_2002_data/log,还原后查看逻辑文件名显示ufmodel_log/ufModel,但实际上仍是错误的ufdata_931_2002_data/log;4、通过sql脚本修改逻辑文件名称(此处需要用到中间逻辑文件名称变量进行转换):
--
(1)、先修改日志逻辑文件名称ALTERDATABASEufdata_931_2002MODIFYFILE(NAME=ufdata_931_2002_log,NEWNAME=ufmodel_log_tmp)goALTERDATABASEufdata_931_2002MODIFYFILE(NAME=ufmodel_log_tmp,NEWNAME=ufmodel_log)go--
(2)、再修改数据逻辑文件名称ALTERDATABASEufdata_931_2002MODIFYFILE(NAME=ufdata_931_2002_data,NEWNAME=ufmodel_tmp)goALTERDATABASEufdata_931_2002MODIFYFILE(NAME=ufmodel_tmp,NEWNAME=ufmodel)go5、此时数据库逻辑文件名称已成功修改。
6、可对数据库进行bak备份,得到一个ufdata.bak文件;7、使用rar压缩软件将ufdata.bak压缩成ufdata.rar文件,再重命名为ufdata.ba_文件;8、用【原lst文件+新生成的ufdata.ba_文件】进行帐套引入操作即可。
解决不了,在执行脚本时一直提示“MODIFYFILE失败。
文件'ufdata_002_2008_log'不存在。
”
可以肯定的是因为逻辑文件名的错误导致帐套备份无法引入,那么修改逻辑文件名即可解决问题。
首先需要做的是得到错误的逻辑文件名:
1,通过企业管理器还原备份中错误的年度数据
查看对应的逻辑文件名
经后面的操作验证了上面显示的不是真正的逻辑文件名,才导致了修改逻辑文件名的失败。
2,备份刚恢复的数据库,以查询到真正的逻辑文件名
backupdatabaseufdata_002_2008
todisk='F:
\000'
命名备份的文件为000
查询逻辑文件名:
RESTOREFILELISTONLYFROMDISK='F:
\000'
结果如下:
修改逻辑文件名:
先修改日志逻辑文件名称
ALTERDATABASEufdata_002_2008
MODIFYFILE(NAME=ufmodel_log2008_log,NEWNAME=ufmodel_log_tmp)
go
ALTERDATABASEufdata_002_2008
MODIFYFILE(NAME=ufmodel_log_tmp,NEWNAME=ufmodel_log)
go
再修改数据逻辑文件名称
ALTERDATABASEufdata_002_2008
MODIFYFILE(NAME=ufmodel002_2008_data,NEWNAME=ufmodel_tmp)
go
ALTERDATABASEufdata_002_2008
MODIFYFILE(NAME=ufmodel_tmp,NEWNAME=ufmodel)
成功!
3,分离数据库ufdata_002_2008
4,还原其他几年度的数据,得到mdf和ldf文件
5,帐套002是从2000年使用,新建帐套002,启用日期为2000.01.01,启用相应模块,一直年结到2010年。
(应该还有更简便的方法)
6,停止数据库服务,用还原得到的mdf和ldf文件替换新帐套文件。
登陆帐套,备份002帐套,修改帐套号重新引入测试。
成功!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用友 软件 数据库 质疑 处理 办法
![提示](https://static.bingdoc.com/images/bang_tan.gif)