Pubwin2009SQLServer数据库修复常见问题方法目录Pubwin2009SQLServer数据库修复常见问题方法 (1)一、修复一致性错误和分配错误 (2)二、用自动备份文件(local_db.DBBak)恢复local数据库 (3)三、修复置疑的数据库 (9)四、最大限度导出会员 (22)五、local数据库文件和自动备份文件都损坏或丢失 (23)六、合并会员表 (24)七.Pubwin2009各个表的作用 (33)一、修复一致性错误和分配错误数据库的基本信息:Pubwin2009的数据库文件有4个(路径为:Hintsoft\PubwinServer\database 下的“local_Data.MDF”和“local_log.LDF”“eventDB_Data.MDF”和“eventDB_log.LDF”;其中eventDB数据库专门存放会员事件记录和部分省市的实名ID卡库,local数据库存放除eventDB 数据库以外的全部数据(包括会员数据、各项计费相关设置、各项报表数据、各项历史记录数据) 注意:在对数据库做任何操作前请一定注意备份数据库。
Pubwin2009默认会间隔37分钟自动进行差异备份local数据库,自动备份文件其路径为:Hintsoft\PubwinServer\appServ\server\webapps\NetCafe\backup\longtermdata下“local_db.DBBak”),用此文件恢复会丢失最近37分钟的全部记录。
修复数据库步骤:在数据库损坏时候,优先考虑使用自动备份文件来恢复local数据库,恢复方法本文档下面会谈到,不能恢复时再用修复置疑的方法处理,用置疑方法不能导出完整会员表时,可以尝试用最大限度导出会员的工具(方法如下)。
1、开始检查local数据库是否发生一致性错误或分配错误:并把Pubwin2009服务停止,只启动SQLSERVER服务;进入CMD。
输入osql -U netcafe –P 数据库密码1>use local2>go1>dbcc checkdb2>go2、发现错误后我们要开始修复,所使用语句下:(1)把数据库置为单用户模式sp_dboption'local','single user', 'true'go(2)修复数据库DBCC checkdb('local',REPAIR_ALLOW_DATA_LOSS)go如果DBCC checkdb('local',REPAIR_A LLOW_DATA_LOSS)语句执行一次不行,可以在多执行几次直到没有再提示数据库有错误为止.(3)设置为多用户模式sp_dboption 'local', 'single user', 'false'(4)如有必要可以收缩(压缩)下数据库:DBCC SHRINKDATABASE (local, 0)go3、然后停止SQLSERVER,重新启动Pubwin2009服务控制器就可以了。
二、用自动备份文件(local_db.DBBak)恢复local数据库1、新建一个全新的local数据库:点确定完成新建空库,可以把新建的空库备份,方便以后使用。
首先要新建个空的local数据库(方法同上),然后在local上右键->所有任务->还原数据库在下面对话框上选从设备,点选择设备。
点添加浏览到自动备份文件所在目录,选择local_db.DBBak点确定,回到还原数据库对话框,点选项,选择使数据库不再运行,但能还原其它事务日志点确定开始还原数据库,完成后弹出以下提示。
此时local显示为正在装载,再点一遍还原数据库-->选从设备-->选择设备-->点添加--> 浏览到自动备份文件所在目录-->选择local_db.DBBak-->点确定, 回到还原数据库对话框打开查看内容:选择你需要的某个时间点将其恢复,通常为最后一个时间。
这个时候把local分离出去,把local的2个文件(“local_Data.MDF”和“local_log.LDF”)拷贝到\database 文件夹下替换,重新附加\database 文件夹下的local附加到SQL,如有必要可以收缩下数据库 DBCC SHRINKDATABASE (local, 0) 这时启动Pubwin2009服务控制器就好了。
三、修复置疑的数据库修复置疑的数据库基本步骤:取消local置疑状态->从相同版本的安装包里面获取空的数据库附加为local2-->把必要的5个表导入到空库中-->分离置疑的local 和local2数据库-->把服务端数据库目录Hintsoft\PubwinServer\database下的原始2个旧文件重命名-->然后把local2数据库的2个文件复制到服务端数据库目录Hintsoft\PubwinServer\database下-->附加为local-->启动服务。
1、什么情况下可能是数据库发生置疑导致的?1)打开后台提示:“server not ready yet”2)Pubwin 2009服务控制器运行时,提示发生错误:2、检查数据库是否置疑:1)启动SQL数据库服务:2)在运行中输入cmd,进入到cmd命令窗口。
3)输入osql -U netcafe –P 数据库密码4)use local5) go6) 若local数据库发生置疑即提示下图,eventDB数据库的检查方法同上。
3、若发生置疑,即需要使用SQLManager.rar和S QL查询分析器.rar工具,来修复置疑,下载地址:ftp://pubwinxz:pubwinxz@203.110.170.240/WWW/1)将SQLManager.rar解压缩到D盘根目录,运行Reg.Bat进行注册一遍。
注意:当打开我的电脑--管理--服务时会提示:在运行里面输入services.msc 即可打开服务。
2)运行SQL Server Enterprise Manager.MSC 打开3)连接SQL数据库服务,编辑属性:4)设置登录数据库的账户:netcafe 务必勾选:总是提示输入登录名和密码。
5)输入登录数据库的密码:新安装Pubwin2009服务端时,数据库密码默认是pubwin以后则以在Pubwin2009 后台Web 管理平台中,修改的数据库密码为准,然后点连接,再点确定即可登录数据库,6)登录数据库后,即可查看数据库的置疑情况。
7)用SQL查询分析器取消置疑状态:执行isqlw.exe开始连接SQL数据库:把以下语句粘贴到SQL查询分析器去执行或者按F5,USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='local' Gosp_dboption 'local', 'single user', 'true'GoDBCC CHECKDB('local')Goupdate sysdatabases set status =28 where name='local'Gosp_configure 'allow updates', 0 reconfigure with override Gosp_dboption 'local', 'single user', 'false'Go如果是eventDB数据库发生置疑,将上面的local改为eventDB即可。
4、如何从Pubwin2009服务端安装包中获取:双击打开服务端安装包目录下的Data1.cab压缩包文件,如图:将两个空的数据库文件:local_data.mdf和local_log.ldf解压缩到任意目录,例如:D盘根目录。
5、运行完此脚本后数据库就不再是置疑状态了,现在把上面从安装包里面提取的空的数据库附加到SQL里面;并重命名local2下面就可以开始导表了,在local上点右键->所有任务->导出数据->下一步:数据源选local,点击下一步:目的选local2,点击下一步:建议只导出必要的5个表:1、client_pc 客户端机型列表(需要转换,方法如下)2、console_clientpc_list 客户端列表3、Leveltype 会员等级列表(需要转换,方法如下)4、mem_localdiscountaccount 优惠时间会员表5、mem_localmemberbaseinfo 会员信息列表转换方法:导出客户端列表console_clientpc_list:导出会员等级列表Leveltype需要转换:导出会员优惠时间表,和会员信息表:然后点击下一步、下一步、完成:6、在通常导过表或者还原过的数据库文件比实际的要大,数据库文件临时空间没有释放,这个时候就需要收缩数据库:注意勾选“在收缩前将页移到文件起始位置”或者查询分析器执行:DBCC SHRINKDATABASE (local2, 0) 注意:local2为数据库名称。
7、这个时候把local和local2都分离,如图:8、把服务端数据库目录Hintsoft\PubwinServer\database下的原始2个旧文件“local_Data.MDF”和“local_log.LDF”)重命名,然后把local2数据库的2个文件复制到服务端数据库目录Hintsoft\PubwinServer\database下,附加为local,如图:注意:因为只导出了5个必要的表,所有的营业记录、充值记录、所有的价格方案和设置、当前上机的人员的信息都会丢失,不是不得已的情况下,不建议使用导表的方法。
1)在数据库能访问的情况下,可以用此语句查询出所有用户编号和预付款信息:select uniqueid 用户编号,prepay/100 预付款元 from cur_useraccountGo2)在后台能打开,营业管理--用户视图能打开的情况下,因为其它原因需要导表,可以把后台的用户视图截图下,方便导表后给网民补钱。
3)因为当前表丢失,若启动服务,数据库损坏的时候已经在客户端上机的用户可能会立即关机;所以启动服务前,先请通知网吧做好准备工作。