《pubwin数据库修复相关方法及要点.docx》由会员分享,可在线阅读,更多相关《pubwin数据库修复相关方法及要点.docx(10页珍藏版)》请在三一办公上搜索。
1、SQL数据库修复相关方法及要点、网吧数据库出现问题后如何判断数据库文件是否损坏1. 从网吧处取回数据库文件,参照网吧安装目录安装同样的版本,分离当前数据库文 件,附加网吧的数据库文件,然后重新启动EP服务,看本地是否能重现网吧的问 题,如果在本地没有任何问题,则说明数据库文件本身没有问题,可以尝试让网吧 重装 PubwinServer。2. 如果网吧的数据库附加到本地能重现问题,或者本地附加网吧数据库时报数据库无 法附加,则说明数据库确实损坏。如果网吧的备份文件还在,且数据回滚的时间网 吧可以接受,则使用从备份文件恢复数据的方法。3. 如果网吧的数据库文件无法附加,而且备份文件也被误删除,或者
2、网吧不接受数据 回滚的修复方法,可以使用附件中的无法附加数据库修复来修复数据库。二、SQL数据库修复后用户如何使用:启动SQL数据库服务,利用osql工具连接数据库,然后用SQL语句操作:osql工具连接数据库的方法:运行CMD,然后输入osql -U netcafe-H localhost回车后 输入密码:pubwin,注意U和H要大写。1、分离当前使用的数据库:EXEC sp_detach_db dbname = localGO2、停止SQL服务,备份数据库文件,然后把修复后的数据库文件替换当前的数据库文 件,启动服务。3、连接修复后的数据库:EXEC sp_attach_db dbnam
3、e = local, filename1 =安装路径local_Data.MDF, filename2 =安装路 Slocal_log.LDFGO执行结束后输入exit退出osql,启动EP服务即可。 利用软件自身功能连接数据库:1. 备份原来的数据库文件以及照片等;2. 卸载 PubwinServer 和 MSDE (Microsoft SQL Server Desktop Engine ),然后删掉系统目录TProgram FilesMicrosoft SQL Server文件夹和 HintsoftPubwinServer 文件夹;3. 重新安装 PubwinServer;4. 新的服务安
4、装好后不要重启机器,不要运行EP服务控制器,使用SQL服务管理器停止SQL数据库服务;5. 将备份的数据库文件放入Pubwinserver/database目录下,替换原有文件,启动EP 服务即可正常使用。三、数据库损坏后的一般修复方法:对于SQL版本的EP,出现数据库损坏时,修复方法一般是利用软件的数据备份功能, 从数据库备份文件中把数据还原出来,数据还原一般分两种操作方式,1、利用软件自身修 复功能还原数据;2、使用SQL2000自带的企业管理器还原数据。 利用软件自身修复功能还原数据:1. 备份 HintsoftPubwinServerappServserverwebappsNetCaf
5、ebackuplongtermdata 下 的备份文件local_db.DBBak,为以防万一把数据库文件也备份一份,并且要注意网 吧数据库的路径和盘符,这一步很重要。2. 备份好以后,卸载软件,然后参照原安装路径重新安装软件,将数据库备份文件放 入新装服务的备份目录下,并在pubwinserverappserT建立CheckDB文件夹,开启 服务后,会提示“数据库损坏,正在修复”,如果能正常启动服务,并且能够打开 WEB管理界面,则数据还原完成。然后停止服务,检查CheckDB目录是否还存在, 如果系统没有自动删除该文件夹,手动把该文件夹删除,最后把longtermdata里的 备份文件删除
6、,启动服务,此时软件会自动对数据库做一次完整备份。注:网吧的longtermdata文件夹内经常会有一个Backup2的文件夹,该文件夹存放的是 发送到FTP服务器的备份文件,格式与longtermdata下的文件相同,如果longtermdata 下的备份文件被损坏,软件报数据库修复失败,可以使用Backup2里的备份文件还原, 只要把Backup2里的备份文件复制到longtermdata文件夹下覆盖损坏的文件即可。 使用企业管理器还原数据:1. 从网吧取回数据库备份文件。2. 打开企业管理器,分离当前使用的数据库文件,勾中“分离前更新统计信息”。3.新建数据库,命名为local,然后选择
7、数据文件和事务日至的存放地址,确定后新建 成功。4.在新建的local数据库上点击右键一一所有任务一一还原数据库。5.选择从设备,然后点击选择设备,添加,选择从网吧取得的备份文件后确定。6.然后选择查看内容,会出现所有的备份列表,其中备份集名称为local-Backup的是 完整备份,local-diffBackup为差异备份,我们先选择还原完整备份,然后在选项里 选择“使数据库不再运行,但能还原其它事务日志”,单击确定开始还原。志 SQL Server Enterprise Manager -控制台根目录Microsoft SQL ServerSQL Server Ifl (local) (
8、Windows NT数素庠localJ傩文件(E)操作伽查看俄工具(D窗口睡帮助(d)| -J刨刈卒* 囱函 *智面扇|贸|苗| 4孙召电拿一备份集日期2006-1-11 上午 12:00:072006-1-11 上午 12:10:012006-1-11 上午 12:20:002006-1-11 上午 12:30:00200G-1-11 上午 12:40:012006-1-11 上午 12:50:01 nnnr 1 11 LA* 1 .nn.nn还原设备选择备份local I。个项目口控制台根目录确定取消帮助日阊 Microsoft SQL Servers白耳SQL Server组 Qj (l
9、ocal) (Windows NT)白数据库|亩目localE 囱 master 亩(J model E 目 msdb 亩 |j tempdb亩u数据转狡服务 由匚l管理 亩口复制 由匚安全性 亩CJ支持服务 国口 Meta Data Servicesaf n 街国瞌整口关系图 表视图 存储过程 用户 角色 规则还原:r数据库(Q)r文件俎矽参数C:Documents and SettingsVI备份号E:i c婆厢叵nG还原备份集(QG数据库-完全r数据库-差异句C事务日志(I)C文件或文件组业)C读取备份集信息并添加到备份巧史记录也)/r用尸定义的数据类型媒体名称媒体描述媒体序列系列。,媒
10、体1备份集名称local-Backuplocal-diffBackuplocal-diffBackuplocal-diffBackuplocal-diffBackuplocal-diffBackup7.此时数据库会出现“(正在装载)”,不用理会,重复4-6步的操作,注意在重复第6步操作的时候,选择最后一个local-diffBackup,选项里保持默认即可,不需要更 改,确定后进行差异备份的还原,至此数据库还原完成。8,还原完成后,停止服务,把还原后的数据库文件复制,打包,然后运行EP服务, 确认还原是否成功,能否正常使用,如果一切正常就可以把打包好的数据库文件发 给网吧,网吧重装Pubwin
11、Server后替换即可正常使用。附件: 无法附加数据库修复1、建一同名的local数据库,建好后停止数据库,用错误的数据库文件覆盖新文件,重 启数据库,此时在企业管理器里面查看local数据库,显示“质疑”。2、进入sqlserver命令行osql -U netcafe -P pubwin -d master3、执行下面的命令USE MASTERGOSP_CONFIGURE ALLOW UPDATES,1 RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME=localGosp_dboption
12、local, single user, trueGoDBCC CHECKDB(local)Goupdate sysdatabases set status =28 where name=localGosp_configure allow updates, 0 reconfigure with overrideGosp_dboption local, single user, falseGo执行命令行,在企业管理器里面可以看到local数据库的“质疑”已经消失,可以打 开local数据库的表。4、执行检查数据库命令Dbcc checkdb如果没有错误出现,则修复数据库成功。但在处理的过程中有时会
13、显示一些系统表出现错误,该错误是因为我们现在用的 msde是sp3版本,在上可以查到这是一个缺陷,在sp4中已经修复, 遇到此种情况可以尝试用步骤5,6,7,8修复。5、找一个同版本空的local数据库,附加为local3。6、清空local3里所有表的内容,在查询分析器里执行,不要在命令行下执行truncate table local3.dbo.hst_cashserial;truncate table local3.dbo.hst_dealrecord;truncate table local3.dbo.hst_discountrsvconsume;truncate table local
14、3.dbo.hst_duty;truncate table local3.dbo.hst_duty_detail;truncate table local3.dbo.hst_event;truncate table local3.dbo.hst_messageinfo;truncate table local3.dbo.hst_paymentrequestrecord;truncate table local3.dbo.hst_usehistory;truncate table local3.dbo.hst_usepcbiz;truncate table local3.dbo.hst_work
15、ingstatusdata;truncate table local3.dbo.mem_additionalinfo;truncate table local3.dbo.mem_event;truncate table local3.dbo.mem_localdiscountaccount;truncate table local3.dbo.mem_localmemberbaseinfo;truncate table local3.dbo.pc_layout;truncate table local3.dbo.pc_layout_access;truncate table local3.dbo
16、.pc_layout_global;truncate table local3.dbo.prod_category;truncate table local3.dbo.prod_inputrecord;truncate table local3.dbo.prod_invcheck;truncate table local3.dbo.prod_invcheckdetail;truncate table local3.dbo.prod_inventory;truncate table local3.dbo.prod_product;truncate table local3.dbo.prod_sh
17、ipment;truncate table local3.dbo.prod_shipmentdetail;truncate table local3.dbo.prod_vendor;truncate table local3.dbo.realname_card;truncate table local3.dbo.sequence;truncate table local3.dbo.hst_nonpayment;truncate table local3.dbo.cur_userinfo;truncate table local3.dbo.cfg_adminaccount;truncate ta
18、ble local3.dbo.cfg_adminrole;truncate table local3.dbo.cfg_objectresource;truncate table local3.dbo.realname_frequenter;truncate table local3.dbo.cfg_permissionitem;truncate table local3.dbo.cfg_relativepermission;truncate table local3.dbo.cfg_role;truncate table local3.dbo.cfg_rolepermission;trunca
19、te table local3.dbo.configitem;truncate table local3.dbo.cur_usehistory;truncate table local3.dbo.cur_user;7、把local数据库的内容复制到local3数据库insert into local3.dbo.hst_cashserial select * from local.dbo.hst_cashserial;insert into local3.dbo.hst_dealrecord select * from local.dbo.hst_dealrecord ;insert into
20、local3.dbo.hst_discountrsvconsume select * from local.dbo.hst_discountrsvconsume ; insert into local3.dbo.hst_duty select * from local.dbo.hst_duty ;insert into local3.dbo.hst_duty_detail select * from local.dbo.hst_duty_detail ;insert into local3.dbo.hst_event select * from local.dbo.hst_event ;ins
21、ert into local3.dbo.hst_messageinfo select * from local.dbo.hst_messageinfo ;insert into local3.dbo.hst_paymentrequestrecord select * fromlocal.dbo.hst_paymentrequestrecord;insert into local3.dbo.hst_usehistory select * from local.dbo.hst_usehistory ;insert into local3.dbo.hst_usepcbiz select * from
22、 local.dbo.hst_usepcbiz ;insert into local3.dbo.hst_workingstatusdata select * from local.dbo.hst_workingstatusdata ;insert into local3.dbo.mem_additionalinfo select * from local.dbo.mem_additionalinfo ;insert into local3.dbo.mem_event select * from local.dbo.mem_event ;insertintolocal3.dbo.mem_loca
23、ldiscountaccountselect*fromlocal.dbo.mem_localdiscountaccount;insertintolocal3.dbo.mem_localmemberbaseinfoselect*fromlocal.dbo.mem_localmemberbaseinfo ;insert into local3.dbo.pc_layout select * from local.dbo.pc_layout ;insert into local3.dbo.pc_layout_access select * from local.dbo.pc_layout_access
24、 ;insert into local3.dbo.pc_layout_global select * from local.dbo.pc_layout_global ;insert into local3.dbo.prod_category select * from local.dbo.prod_category ;insert into local3.dbo.prod_inputrecord select * from local.dbo.prod_inputrecord ;insert into local3.dbo.prod_invcheck select * from local.d
25、bo.prod_invcheck ;insert into local3.dbo.prod_invcheckdetail select * from local.dbo.prod_invcheckdetail ;insert into local3.dbo.prod_inventory select * from local.dbo.prod_inventory ;insert into local3.dbo.prod_product select * from local.dbo.prod_product ;insert into local3.dbo.prod_shipment selec
26、t * from local.dbo.prod_shipment ;insert into local3.dbo.prod_shipmentdetail select * from local.dbo.prod_shipmentdetail ;insert into local3.dbo.prod_vendor select * from local.dbo.prod_vendor ;insert into local3.dbo.realname_card select * from local.dbo.realname_card ;insert into local3.dbo.sequenc
27、e select * from local.dbo.sequence ;insert into local3.dbo.hst_nonpayment select * from local.dbo.hst_nonpayment ;insert into local3.dbo.cur_userinfo select * from local.dbo.cur_userinfo ;insert into local3.dbo.cfg_adminaccount select * from local.dbo.cfg_adminaccount ;insert into local3.dbo.cfg_adm
28、inrole select * from local.dbo.cfg_adminrole ;insert into local3.dbo.cfg_objectresource select * from local.dbo.cfg_objectresource ;insert into local3.dbo.realname_frequenter select * from local.dbo.realname_frequenter ;insert into local3.dbo.cfg_permissionitem select * from local.dbo.cfg_permission
29、item ;insert into local3.dbo.cfg_relativepermission select * from local.dbo.cfg_relativepermission ;insert into local3.dbo.cfg_role select * from local.dbo.cfg_role ;insert into local3.dbo.cfg_rolepermission select * from local.dbo.cfg_rolepermission ;insert into local3.dbo.configitem select * from local.dbo.configitem ;insert into local3.dbo.cur_usehistory select * from local.dbo.cur_usehistory ;insert into local3.dbo.cur_user select * from local.dbo.cur_user ;8、分离local3数据库,local3即为修复后的数据库文件,local数据库可丢弃。