打印

[求助] 超市收银后台进不去(SQL问题)

0

超市收银后台进不去(SQL问题)

一个朋友,是超市老板。他超市收银机出了毛病。收银机是ghost版xp(具体哪个没注意),安装的收银软件带有两个程序,前台收银,后台添加删改商品。现在前台能进,每天收款的总账也能打出来,但后台提示无法连接。
查看后发现任务栏的SQL Server无法启动,系统服务中查到SQL依赖于MSSQL SERVER服务,尝试启动该服务,瞬间就又自己停止了。从事件查看器里看到MSSQL SERVER错误9003,经询问,由系统非法关闭造成的故障。

解决方法:
1、事件查看器里还看到关于“passed to log scan in database 'model' is invalid”的信息。用SQL安装文件里的model.mdf和modellog.ldf进行替换,未解决。于是又换回原来的文件。

2、从网上搜了一下解决办法(蓝色部分)(版规:"发帖和回帖所用字体不能使用超过3号规格的各类颜色字体",我理解为当文字超过3号就不能用颜色了。如果理解有误,请版主指正,因为本帖太长,下面这段引用如果不加颜色区分就太乱了,我真不是故意打擦边球)
————————————————————
--1.停用数据库服务器,我们把损坏的数据库移动到其他位置。使用默认方式建立一个供恢复使用的与原来同名的数据库(如pos)。可以在SQL   Server   Enterprise   Manager里面建立。
--2.停掉数据库服务器。
--3.将刚才生成的数据库的日志文件pos_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件pos_data.mdf。
--4.启动数据库服务器。此时会看到数据库pos的状态为“置疑”。这时候不能对此数据库进行任何操作。
--5.设置数据库允许直接操作系统表。此操作可以在SQL   Server   Enterprise   Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。
use   master
go
exec sp_configure   'allow updates',1
go   
reconfigure   with   override
go
--6.设置pos为紧急修复模式
update sysdatabases set status=-32768 where dbid=DB_ID('pos')
--此时可以在SQL   Server   Enterprise   Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表

--7.下面执行真正的恢复操作,重建数据库日志文件

go

dbcc rebuild_log('pos','D:\Program Files\Microsoft SQL Server\MSSQL\Data\pos_log.ldf')

go
--执行过程中,如果遇到下列提示信息:
--服务器:   消息   5030,级别   16,状态   1,行   1
--未能排它地锁定数据库以执行该操作。
--DBCC   执行完毕。如果   DBCC   输出了错误信息,请与系统管理员联系。
--说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL   Server   Enterprise   Manager打开了pos库的系统表,那么退出SQL   Server   Enterprise   Manager就可以了。
--正确执行完成的提示应该类似于:
--警告:   数据库   'pos'   的日志已重建。已失去事务的一致性。应运行   DBCC   CHECKDB   以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
--DBCC   执行完毕。如果   DBCC   输出了错误信息,请与系统管理员联系。
--此时打开在SQL   Server   Enterprise   Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

--8.验证数据库一致性(可省略)

go
dbcc checkdb('pos')
--一般执行结果如下:
--CHECKDB   发现了   0   个分配错误和   0   个一致性错误(在数据库   'pos'   中)。
--DBCC   执行完毕。如果   DBCC   输出了错误信息,请与系统管理员联系。

--9.设置数据库为正常状态

go

exec sp_dboption 'pos','dbo use only','false'

go
--如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。
--10.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL   Server   Enterprise   Manager里面恢复,也可以使用如下语句完成
exec sp_configure   'allow updates',0
go   
reconfigure   with   override
go

——————————————————————
按照上面的第一步操作就有问题。按理说SQL组里应该有两个数据库,一个local,一个比如叫pos。可问题是,我打开企业管理器,只有一个local数据库,而且还是红色的无法连接。我在当前组里新建pos,最后提示同名,已经存在。无论我是否把损坏的数据库移动走,都是这样。而且服务管理器一直是stop,也根本启动不了。
我打开查询分析器,能选择连接到的只有127.0.0.1,而且还连接不上。
于是后面的步骤没法做。
由于这个机器在超市没有联网,只能一次次的跑去试验。我对操作系统及网络配置这块还行(DHCP DNS IIS等),但对数据库的了解连皮毛都算不上,可那朋友拿我像救命稻草一样,我很无奈。

其他情况再介绍一下,这个超市刚开业一个月,整套设备都是新的,从国内弄好运过来的,虽然是ghost xp,但据我查看,基本可以排除系统问题。超市的人不懂电脑,也没有胡乱修改什么。但我从事件查看器里,看到了2010年12月10日的一部分日志记录,但我接手这事的时候,日期是正常的,从出现故障前几天现在的日志都全,应该跟这事没什么关系吧。

由于我在国外(这个超市在我旁边),电话号码就不留了。希望高手们能提供一些帮助,如有必要,请留下电话,我可以主叫咨询。
在此先谢过了。

TOP

0
ghost版本不适合作服务器,先备份数据库,安装2000或安装版的xp,在安装之前把sql目录全部备份,系统安装好后,先把局域网组好,再重新安装数据库,再后恢复,我以前也是这样做的,没问题

TOP

0
不知道GHOST后的计算机名是否与原来的相同,如果不同要重新注册sql组件

TOP

0
应该是SQL SERVER2000的问,你重新装一次,注册一下链接试一试嘛

TOP

0
2楼。收银机连接着电子秤和扫描枪等设备,重做系统后,那些东西不会设。备份数据库指的是那些mdf文件所在的文件夹复制走吧?恢复是装好后把那些文件再复制回来?我不知道能不能牵扯到别的东西,怕到时候用不了,都不知道该怎么设了。

3楼。它的系统我没动过,我现在什么都没改。只是按照网上的方法,按照原名重新注册的时候提示重名,可原来的名字根本没显示,也没法删除啊。

4楼。我担心重装完,跟其他设备的数据连接断掉了。现在只是收银后台故障,如果扫描枪和电子秤都不能用,就可以停业了……

6楼。我连SQL都搞不定,玩Oracle更傻了不是。

7楼。他的系统一直是这样,能用,现在的故障应该是能修复的。换系统动作太大,我怕有不可恢复的后果。

[ 本帖最后由 lsytt 于 2010-7-3 12:10 编辑 ]

TOP

0
这个比较专业,看起来是SQL的问题,重装一下

超市如果比较大,建议用orecle

TOP

0
还是建议安装服务器版系统,别使用XP,XP是客户端可以!

TOP

0
这么复杂,还不如重装系统算了,GHOST版本的操作系统问题很多,我一直都认为如果有可能用原版操作系统为好。

TOP

0
应该是数据库文件的问题,直接拷贝覆盖没用,一般要在sql管理器中附加还原才可以,而且一般这种商业应用的系统都会有备份功能,可以尝试恢复.

最好的办法还是直接打电话到该系统的客服咨询.最好是能找到备份,毕竟很多商品信息还是要用的.做任何操作记得备份好数据库文件.

还有点不明白的是,一般整个系统应该只有一个数据服务在运行,你这个台机器是否是数据库服务器?

重装系统肯定不是对的,与系统无关.况且很多设备还需要专门的驱动,随便重新安装系统只会更麻烦.

[ 本帖最后由 czonline 于 2010-7-3 21:17 编辑 ]
本帖最近评分记录
  • 维豆豆 金币 +4 回复认真,鼓励! 2010-7-4 01:08

TOP

当前时区 GMT+8, 现在时间是 2025-3-23 11:42