1、航天信息软件技术有限公司 渠道支持部,数据库恢复及软件升级,前 言,目前随着全国范围内上线使用A6产品标准版软件的用户越来越多,恢复数据库及软件升级问题也逐步递增,由于用户日常备份不及时,以及A6软件版本的日常升级,所以如何快速,成功恢复用户数据及软件升级成了目前服务单位平台提交问题的热点。渠道支持部为协助服务单位一线运维同事在A6标准版软件服务交付中更高效的为客户服务,有效缓解A6软件日常应用的巨大压力,以期能为一线服务单位提供最好的支持工作!,支持平台“数据库恢复及升级”问题表,问题现象,电脑系统崩溃,没有账套备份,只有数据文件及日志文件保留(ldf,mdf),通过数据文件无法正常附加数据
2、库,提示:“sql server 错误9003:LSN(434:94:1)无效”怎么办?,解决方案,第一步:统管理中建立一个相同账套号的帐套,帐套名 称、行业性质等信息参考原帐套。(并记录帐套的建立路径) 第二步:停止数据库服务。 第三步:将需要恢复的MDF与LDF文件覆盖到新建立的帐套的路径上。 第四步:启动数据库服务器。此时会看到数据库的状态为“置疑”。这时候不能对此数据库进行任何操作。,第五步:此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。 也可以使用如下语句来
3、实现: Use master go sp_configure allow updates,1 go reconfigure with override go,解决方案,第六步:设置数据库为紧急修复模式。执行以下语句: Update sysdatabases set status=-32768 where dbid=DB_ID(A60032011) 第七步:这时需要将帐套建立路径中的数据库日志文件删除(A60032011_log.LDF文件) 第八步:重建数据库日志文件 :dbcc rebuild_log(A60032011,帐套的数据库文件路径A60032011_log.ldf),解决方案,第
4、九步:这时可能数据库状态为只能“DBO使用”。 执行以下语句: sp_dboption A60032011, dbo use only, false注意:这时帐套基本恢复,但是需要登陆软件看一下是否有客户之前启用的模块,如果没有请在系统管理中启用模块或调整帐套名称,解决方案,问题现像:软件执行升级程序后,登录账套管理及数据库升级界面系统报错:版本不一致,请进行数据库升级,以下是版本信息:程序版本:A6 3.0 sp03 主数据版本: A6 3.0.000!,问题现象,问题分析,安装软件并执行了SP03的升级补丁,并且成功升级,没有报错,再进行升级系统提示已是最新版本,不需要升级,但进入账套及数
5、据库升级界面却报主数据版本: A6 3.0.000,很奇怪,只有软件版本和数据库版本,主数据版本是什么呢?,问题分析,通过事件探查器我们发现程序停止在了这一点上,通过对每一条数据的分析,不难发现如下语句: select CWEBVERSION, CDATAVERSION from versioninfo versioninfo这是什么表? CWEBVERSION和CDATAVERSION这两个字段又代表什么含意?,问题分析,首先我们要了解,A6软件一共有几个版本信息,分别只在在哪个数据库中的哪个表中?第一:账套版本,就是我们常说的账套升级前后的版本。它保存在具体账套库(如A60012011)下
6、账套版本信息表(Co_versionInfo)下账套版本(cDataVersion)字段中。第二:程序版本和主数据版本,就是我们本文报错界面的两个版本信息。它保存在系统库(acc_sys)下版本信息表(versioninfo)下程序版本( CWEBVERSION )和主数据版本( CDATAVERSION )中,问题分析,正常情况下,这两个表中的三个字段值应该是完全相同的,但在升级过程中,可能系统库中的CDATAVERSION字段的值没有同步更新,最终导致与其余两个字段中的值不相符,那么我们就是遇到本文开篇见到的那个报错界面了。(以下界面引用5.0版本后台数据讲解,功能与3.0版本相同),解决方案,在A6软件-数据库SQL执行工具 或SQL查询分析器中执行如下脚本即可 Update versioninfo Set CDATAVERSION=CWEBVERSION,Thank you,