上周月底检测各个系统运行状态的时候突然发现,文件服务器上缺少了几天ERP系统的备份数据,ERP系统数据备份是日常工作中非常重要的一项,所以对这个问题进行了分析和处理,在此过程中学到一些新的知识,留此文以备以后查阅。

一、故障现象

9.1日检查文件服务器异机备份情况发现,ERP系统备份数据只有8.24日前的数据(下图),其后一周的备份数据均消失,由于ERP系统是重要的业务数据,所以立马动手检查。

image

二、故障分析

先来说说我们的备份方式, 首先我们在文件服务器上(下称File)上建立网络共享提供备份空间,其次在ERP上建立定期批处理任务进行备份,备份脚本首先使用net use建立File到本地的磁盘映射,然后执行SQL备份语句备份ERP系统的业务数据到本地,最后脚本使用XCOPY将ERP的业务数据复制到映射磁盘中。

鉴于此故障点可能出现在:A.文件服务器 B.ERP服务器 C.备份脚本

A.近期没有对File上的共享进行过调整,另外两个备份目录数据备份和上传均正常,为全公司提供集中共享的目录也运行正常,最后检查了ERP备份目录的NTFS权限/共享权限,均无异常,所以排除了文件服务器的原因

B.在此备份过程中,ERP服务器主要完成定期任务的执行。登录ERP系统检查了计划和任务列表,发现设定的备份任务在故障期间均有运行,所以排除了计划任务失败的原因。

C.备份脚本本身已经固化,从部署之初就没有进行过调整,检查脚本后也未发现任何异常。

感觉毫无头绪的时候,突然想到备份脚本设置了日志来记录脚本的运行状态,于是打开8.24日的备份脚本运行日志,发现如下错误:

image

分析脚本日志后发现,脚本中的SQL备份语句运行正常,只是在备份成功后上传至File失败,而且是在8.24日的第二次备份时上传失败。

由此分析故障可能出现在脚本建立磁盘映射的net use或者上传的XCOPY阶段,尝试在ERP端使用net use z: \\ip\sharename 建立磁盘映射,这时系统提示“已达到计算机的连接数最大值,无法再同此远程计算机连接” ,无法建立磁盘映射那么后续的上传将无法执行。

image

三、故障处理

摆渡后得知,出现此项错误提示很有可能和Session有关,所以分别在File和ERP端运行 net session /list查看当前的session情况,发现ERP端会话数量为空,File端存在大量无效的session.同时检查File端备份目录发现同时允许共享用户数量设置为100,找到问题的原因就好处理了。

1.可以加大FILE端备份目录允许的共享用户数量

2.可以在File端执行net session /del 清楚所有会话数连接即可

四、结论

其实服务器端操作系统的共享session是很大的,只是由于当时设置共享的时候没有考虑周全,所以设置的量较小,当脚本运行了一段时间过后现有的session数量达到了File端的限制值,新的session就无法创建了;其次,由于Session在建立过后,如果建立端的双方不关闭连接,那么会话会一直存在。从此次File上的session list上可以看到,ERP和File之间建立了大量的session,并且长时间存在,最长的session 闲置时间达到了 16D 01H 18M;最后,综合以上因素,首先加大File备份目录的“同时允许共享的用户数”,其次在File端建立如下批处理定期清理过期和无效的session。

image

image