—张映辉数据库问题解决方案下面介绍三个数据库方面的维护技巧一、2000SQL中数据库日志重建方法二、2005SQL中数据库日志重建方法三、2008SQL+U890安装环境监测不通过解决方法一、2000SQL中数据库日志重建方法日常中经碰到现数据库出现质疑的现象,正常情况下只要将质疑数据库分离后再附加就可以了,但有时在重新附加时会出现无法附加的情况该如何处理呢?就此问题大家经常遇到,是一个比较普遍切头痛的问题,其实数据库无法附加的原因一般都是因为数据库的LDF文件(日志文件)损坏造成的,那么只要重新创建该文件就可以解决了,下面我具体介绍了该方法的实现步骤并精简化了,在日常处理中按此步骤可以快速的实现数据库日志重建,成功附加数据库按照该方法操作即可成功创建日志文件成功附加数据库,步骤不可忽略颠倒1、建立新数据库,与要重建日志的数据库名字相同,日志名不同2、停止SQL服务后覆盖数据库MDF文件,重启SQL服务3、修改系统表中该数据库为可写、为紧急状态sp_configure'allow',1reconfigurewithoverrideupdatesysdatabasessetstatus=32768wherename='UFDATA_001_2003'4、创建该数据库新的日志文件DBCCREBUILD_LOG('UFDATA_001_2003','E:\UFSOFT850\ZT001\UFDATA.LDF')restoredatabaseUFDATA_001_2003WITHRECOVERY一、2000SQL中数据库日志重建方法5、修改系统表中数据库状态为正常状态、不可写updatesysdatabasessetstatus=4194316wherename='UFDATA_001_2003'sp_configure'allow',0reconfigurewithoverride6、修复数据库sp_dboption@dbname='ufdata_001_2003',@optname='singleuser',@optvalue='true'useufdata_001_2003DBCCCHECKDB('ufdata_001_2003',REPAIR_ALLOW_DATA_LOSS)sp_dboption@dbname='ufdata_001_2003',@optname='singleuser',@optvalue='false'一、2000SQL中数据库日志重建方法二、2005SQL中数据库日志重建方法上面提到了2000SQL数据库置疑后修复日志的过程,那么在2005SQL中也会遇到类似问题,只是在2005中数据库状态显示为“可疑”,而非“置疑”,其实都是人之文件损坏造成,那么用2000的处理方法是是否可以行?经过测试2000的方法再2005中是不可行的,下面就介绍一下2005中该问题的处理方法,其实想对2000来比较就更加简单了。将语句中的“MyDB”替换为要修复的数据库然后执行就额可以了,可以看出2005是直接通过修复语句直接创建了数据库日志,而不用像2000那样需要单独来创建。USEMASTERGOSP_CONFIGURE'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDEGOALTERDATABASEMyDBSETEMERGENCYGOsp_dboption'MyDB','singleuser','true'GODBCCCHECKDB('MyDB','REPAIR_ALLOW_DATA_LOSS')GOALTERDATABASEMyDBSETONLINEGOsp_configure'allowupdates',0reconfigurewithoverrideGOsp_dboption'MyDB','singleuser','false'GO二、2005SQL中数据库日志重建方法三、2008SQL+U890安装环境监测不通过解决方法安装了SQL2008后安装U890软件,在环境监测中提示:没有安装SQLServer2005_BC.msi组件,但多次安装该组件仍提示没有安装(如图)三、2008SQL+U890安装环境监测不通过解决方法那该如何解决呢,通常各种程序安装后都会写入注册表,已备其他程序确认调用,那么U890环境监测是不是也盾寻该规则呢,用ProcessMonitor工具跟踪一下看看(如图)三、2008SQL+U890安装环境监测不通过解决方法发现再环境检测时软件查找了注册表记录:HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSSQLSEREER\MSSQLServer\CurrentVersion;但是检查发现在MSSQLServer下就没有记录了,问题就出现在这里了。三、2008SQL+U890安装环境监测不通过解决方法对照正常记录将注册中加入相关键值,再进行U890环境检测——OK问题解决!