论坛2014年7月11日故障的一些问题

2014年7月14日,我接到站务部长李东升的通知,说有人反应论坛登录不上。我就去登陆了一下。现象主要如下:

  1. 论坛首页可以访问。
  2. 进入校内门户,再进入论坛登录界面,可以读取到用户信息
  3. 登录,提示成功登录。
  4. 返回到论坛首页,发现问题了,没有读到用户。这个时候还可以访问,时间大概是13点。

接着我去找原因。

我先试了下进网站的后台,发现没有问题,可以进入。也可以审核用户。顺手就审核了用户。用大号在后台看了下管理员后台登录和操作,10号的时候lwcjjpw这个用户登录了后台。奇怪了,这个不是以前的老人的号么?大概到了14点的时候。主页访问不了了。

SELECT p.*, m.uid, m.username, m.groupid, m.adminid, m.regdate, m.lastactivity, m.posts, m.threads, m.digestposts, m.oltime,

m.pageviews, m.credits, m.extcredits1, m.extcredits2, m.extcredits3, m.extcredits4, m.extcredits5, m.extcredits6,

m.extcredits7, m.extcredits8, m.email, m.gender, m.showemail, m.invisible, mf.nickname, mf.site,

mf.icq, mf.qq, mf.yahoo, mf.msn, mf.taobao, mf.alipay, mf.location, mf.medals,

mf.sightml AS signature, mf.customstatus, mf.spacename , mf.field_2

FROM [Table]posts p

LEFT JOIN [Table]members m ON m.uid=p.authorid

LEFT JOIN [Table]memberfields mf ON mf.uid=m.uid

WHERE p.tid=’344231’ AND p.invisible=’0’ ORDER BY dateline LIMIT 0, 20

这个是提示信息。

数据库中少了张表。

好好的不可能少张表啊,没有人闲着没事去删除你的表啊。于是我就去数据库服务器上看了下现存的表有没有members,找到了一张site_members这个是网站的用户表,还有张uc_members这个是ucenter的吧。论坛的数据库中表前缀是bbs,找了一圈,没有找到应该有的bbs_members。问题很严重了。用户表没有了。

难道是db的连接文件上写错了?上ftp看个究竟。找了半天,汗。都写的是members。说明不是文件上有人改了,而是真的数据库出问题了。

找了下以前写论坛的师兄帮忙,说明了下情况。

师兄说,后台日志看到10号的时候,服务器上有文件修改记录。但是引发这个错误的原因,他也不清楚。

当时我的猜想是论坛和网站用的用户表是一张表,然后论坛的用记表是动态的,会在服务器启动时触发事务,然后创建已经登录用户的表,然后把他们的数据加进来。所以我就向老师申请了重启服务器。

最后就是一天时间的漫长等待。

师兄最后给的结论是:由于管理员误操作,导致论坛数据库中用户表被误删除。

由于和网站用的是同一个用户群体,他对数据做了最大程度上的恢复。

这是对此次故障的处理办法。丢失了数据,真是不应该。作为线上最高管理,居然发生了这种事。我很难想象开学来了用户看到自己数据全没有的心情。

可是这次事件致使我写下这篇文档的原因不只是这个。更是让我难以理解的,是怎么会丢失表。以下几点比较难以理解:

  1. 现在留下的几个人里,知道ftp密码的人就我和站务部长,其他人都不知道论坛的ftp的密码的。也就是说,能通过ftp来看到网站源文件的,进而看到数据库密码和地址的人,也就我和他。而他怎么会懂数据库的东西。而我在10号到14号的时候因为自己有事,一直没有看论坛,一个连前台都没有登录的人,不可能是我误操作了吧。
  2. 如果是站务部的人在后台操作的时候不小心删除的。但是站务部的只能做到删除用户,不能删除表。你就算是全部把用户删除了,表还是在的吧。这就是可疑的第二点。
  3. Lwcjjpw以前主席干的?我去查了下他的账号,普通用户组,奇怪,普通用户组没有后台登录的权限,他是怎么登录的?再说,他是以前的主席,站务部长,怎么可能会去删除论坛的表?
  4. 知道服务器ftp的除了我们,应该还有网站的人了,这么多年都没有事,也不会是他们做的吧。
  5. 还有一点,就是注入了。有人注入,然后删除表,破坏数据。可是这个要怎么去证明呢?要查数据库的日志,可是我没有办法去查。暂且留意下这个。
  6. 最后一点就是我最疑惑的地方。

记住这个时间,是6月,6月的运行记录里就出现了有表不存在的错误。

而第一次出现members这张表不存在的记录在7月2号就发生了。

7月11号的时候就可以正常登录,7月2号表不存在的错误就已经有了。这是为什么?而且,在7月出现了一个实体重复的错误。这个错误是怎么引起的?

同时在我写日志的今天。也就是2014年7月18日星期五也出现了这个表不存在的错误。不是在15号的时候就已经修复了吗?为什么到现在还是有这个错误存在?

难以琢磨。我的推测是写论坛的时候,师兄还是个学生,开发的时候做的不是很严谨,存在逻辑上的错误。虽然在以前没有体现出来,但是由于去年换了登录方式,结果现在的错误就体现出来了。这里的问题是:为什么一年以后才会体现出来?奇怪。我问了下师兄,他在工作,也没有时间回我,他估计是觉得能运行就可以了,但是我不能这样,下次要是还出现这种情况怎么办?

至于原因,我暂时没有想明白。要想知道是怎么发生的,只能查数据库的日志,但是这个真的不现实。我只能现在记录下最近发生的这些,以备后来故障时做参考。

Mdcici.Yan  2014年7月18日

论坛2014年7月11日故障的一些问题

时间: 2024-10-09 18:36:54

论坛2014年7月11日故障的一些问题的相关文章

接口2014年6月11日01:11:37

1 [1]C#中的接口和类有什么异同. 2 3 不同点: 4 不能直接实例化接口. 5 接口不包含方法的实现. 6 接口可以多继承,类只能单继承. 7 类定义可在不同的源文件之间进行拆分(partial). 8 9 相同点: 10 接口.类和结构都可以从多个接口继承. 11 接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员. 12 接口和类都可以包含事件.索引器.方法和属性(属性本质上是两个方法). 13 14 基础知识:接口只能定义方法(只能定义行为,不能定义实现也就是字段

【每日圣经日历】2014年10月11日

注:移动用户(特别是苹果(Ipad))可以全选文字使用机器朗读 Samedi le 11 Octobre 2014 礼拜六 2014年10月11日 Ne vous enivrez pas de vin: c'est de la débauche. Soyez, au contraire, remplis de l'Esprit;entretenez-vous par des psaumes, par des hymnes, et par des cantiques spirituels, cha

oracle事务处理及实例演示jdbc操作批量删除 2014年8月11日

事务 作为逻辑处理的基本单位,对于数据库操作来说由一条或者多条sql语句来构成.当然还有针对非数据库操作的,如在计算机中设置的还原点即是一个很好的应用. 对于事务的基本性质在另一篇中有所叙述:SQL 事务及实例演示 oracle和sql server在事务上区别 sql server中的事务一般分为隐式事务.显式事务.自动提交事务. 自动事务:对于sql server来说,当客户端提交一条sql语句时,这时候sql server都会自动启动一个事务:对于这样的事务,在执行完sql语句后会自动提交

2014年12月11日-关系映射

one-to-one 一对一......单向外键关联 1)annotation方式: 在加入外键(即加入引用的一方)的实体类的类名上加@Entity : 在主键的get方法上加@id @GeneratedValue : 在体现关系的外键属性上加 @onetoone 和  @JoinColumn(name=”添加的外键的名字“,不写的话就是自动生成的名字) package com.hb.model; import javax.persistence.Entity; import javax.per

2015年1月MVP开始申请了~[截止时间:10月11日]

51CTO与微软中国合作长期为用户提供申请"微软最有价值专家"的平台希望有兴趣.资历的朋友以及正在朝这个方向努力的朋友能够积极参与只要您想参与我们将为您向微软推荐 微软最有价值专家MVP一年评选4次分别为每年的1月.4月.7月.10月.2015年1月的MVP申请截止时间是2015年10月11日. 申请MVP的午饭请下载2015年1月MVP申请表填好后发送到[email protected].我们会在每次MVP申请开始时把用户提交的申请表格推荐到微软中国相关部门 [注意事项]1.51CT

2014年7月11~12日,杨学明老师《软件测试管理》公开课(深圳站)成功举办!

2014年7月11~12日,<在软件开发流程中构筑软件质量—软件测试管理>公开课在深圳市CBD某酒店准时开课,来自智能电视.软件.手机.汽车电子.芯片.IT系统集成等企业的研发总监和测试部门经理等参加了此次培训,此次培训由研发管理资深顾问.产品测试专家杨学明先生主讲,本次课程采用全程案例分析讲解,让学员从一开始就融入到软件测试的场景中去,根据测试中所遇问题进行针对性讲解和讨论:课堂上许多企业都提出了很多高难度和有挑战性的问题,杨老师耐心地为各企业学员进行解答,很多学员代表表示对解决方案非常满意

数据库2014年6月10日11:13:10

SQL语句创建数据库: create table student(id int not null primary key,number nvarchar not null,name nvarchar not null,brithday DateTime default getdate(), adress nvarchar ) 创建一个学生表,主键为id,not null 表示不为空,default getdate()表示设定默认值为当前时间. 空值处理函数:select isnull (Name

2014年11月11日

一晃又是一年的11月11日.来公司6个月了,昨天转正考试,考得一塌糊涂,晚上组长陪着我折腾到半夜1点过,最后还是没有搞定,走出门,冬天的晚上好冷,打了个车回去.煮了包方便面,洗了个澡,已经2点,准备睡觉,隐隐约约听到有人在哭,妈的,吓死人了,过了一会儿,听清楚了,原来是楼上的邻居大半夜不睡觉还在教育孩子,家长真辛苦,那孩子比我还可怜.我以为我的双十一会双喜临门,单身+失业,最后失业待定了. 一上午,讨论组里面的小伙伴们都在讨论着想买啥买了啥到底买不买这样一些问题,讨论一直持续到中午终于安静下来,

php 学习路线 赵兴壮2014年4月28 日 加油

第一阶段 第一讲,WEB基础     1.1 网站基本知识: 1.2 网络协议介绍: 1.3 B/S与C/S结构的区别: 1.4 WEB编程.网站开发技术介绍.      第二讲,网页设计     2.1 Dreamweaver介绍及使用: 2.2 静态网页HTML语言: 2.3 标题与段落,换行与分割线: 2.4 表格.表单: 2.5 框架.超链接.图片.     实例:1,使用表格进行网页布局设计: 2,使用表单.表格.框架进行系统后台界面设计. 第三讲,DIV+CSS     3.1 CS