我打开网站时出现“服务器应用程序不可用”是怎么回事啊?

我打开网站时出现“服务器应用程序不可用”是怎么回事啊?,第1张

服务器相对其他类型的主机稳定性更高,但其复杂的构造也导致不稳定的影响较多,主要表现在网站打不开或加载速度不一,后台需要重复登录等。服务器设备运行复杂,在没有专业团队帮助的前提下站长最好不要擅自进行修复,但可以从以下几个方面先行判断:

服务器无法正常运行?也许是这3个原因导致的!

一、硬件设备

服务器上的硬件设备是否出现老化、陈旧或损坏的情况,这是出现服务器不稳定常见的原因之一。硬件设备的故障会导致传输速度、响应速度及处理速度等受到阻碍,其结果就是服务器端与网站客户端之间产生障碍,具体表现如网站加载速度时快时慢,响应客户请求慢等。

二、网站程序

现在的页面大多包含会员注册、信息验证或链接下载之类的交互功能,而这些功能一般都是在网站客户端进行。但很多时候在编写网站程序时,没有考虑到程序上的合理性,将所有信息都交互进了服务器中,在累积到了一定程度,服务器的负担过重,就会严重影响正常运行。

三、数据

一般网站在发展过程中,会不断地累积数据,当数据量达到某个程度,即将到达服务器空间容纳的临界点,企业却没有及时升级的话,也会导致因存储空间的不足而影响服务器的正常运行。

当然,这种情况企业本身大多会知晓,服务商也基本会及时通知。

导致服务器无法正常运行的原因还有受到攻击、机房环境、网络环境影响等,这些情况大多询问服务商都能得到解决。在日常运行过程中,最好能做好服务器的维护与备份工作,减少出现故障的几率。(源自:美国主机-BlueHost)

一、2003应用程序池自动死了,不能恢复了,一直出现 Service Unavailable 常见方法如下。

1:没有打SP1补丁的时候会出现这个IIS6.0假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了。(所以现在的IIS假死与这个关系不是很大)

2:从IIS6.0开始CPU资源都在应用池里面限制了,不象以前的IIS.5。所以假死的池的缘故就是池被拉死,你在网站打不开的时候可以看到你的某个应用池是禁用的,上面出现一个红叉。你鼠标右键启动网站又会自动恢复。 这个原因:大概是以下几个因数造成的。

(1):你限制了应用池的资源,限制得太小 比如:50这样或更少更多一点,这个时候如果你这个池下面的网站占用CPU太高,比如超过50% 那么5分钟后他就自动死了,手工默认建立的应用池默认是超过资源不操作。

出现上面这个情况解决方法:1:不限制CPU资源,(这个是不可取的,不限制资源,有的程序有BUG占用资源厉害了的,服务器都会被拉死,你可能都无法操作服务器。)2:在超过资源那里选择关闭,这个关闭默认是失败5次,90秒内恢复,一般默认就可。网站能自动恢复,这个关闭:不是永久关闭,意思是超过资源关闭,然后在某时间内自动恢复池。不操作就是不恢复,这个是很多人的误区。

(2):内存限制 在IIS6.0应用池上面有虚拟内存和最大内存限制,如果你设置了这个。那么网站访问量大了 也会出现假死,所以不建议设置这里。默认就可。

3:就是服务器自身内存太小,网站运行当然需要使用到内存了,当内存不够的时候应用池也会死掉变成禁用。那么只有等内存全部释放出来才能恢复应用池了。出现这个情况:那么你就要考虑加内存或者检查到底是什么程序占用了内存了。比如MSSQL数据库,这个可是吃内存得大户啊,最好别和WEB服务器同时一个服务器上。很多人用1G内存做 2003系统,2003NET结构是很占用内存的,所以做服务器选2003还得把内存加到2G或更高才好。 内存不够上面 2点讲到的,是没办法操作了,也无法自动恢复。

4:就是ACCESS数据库太大或查询太多,这个也会出现把IIS拉死,解决方法;修复ACCESS数据库,或尽量少用ACCESS数据库,升级至sqlserver数据库;或者在技术方面革新,像现在有些网站系统,风讯、动易等cms;pjblog、zblog等博客程序,都支持生成静态功能.

5:不同网站用不同应用池:根据你自己实际情况而定,站点大的最好独立一个应用池,限制他的资源超过了自动回收,看上面(1)讲到的,这样就不影响其他站点。中型站点:多个网站共用一个应用池,比如5个站点用一个池,设置他资源时间等等。这样他们就算超资源了也不影响其他应用池的网站。

6:设置回收时间:很多人以为设置回收池越短越好,其实是错误的,每次回收当然是把内存回收回来了,但加重了一次服务器的负担,当服务器比较繁忙的时候,有可能导致其他应用池死。所以建议设置共1000就行了。其他独立池按照他网站流量而设置 可以设置600 也行,共用的不建议设置太短。

7:网站后台过不了多久自动退出又要重新登陆:这个情况就是你设置回收时间太短了,按照 6点设置吧。 不要设置什么20分、30分这样的,这样不好的。另外一个原因就是和站的响应设置时间有关,设置得稍长些。

8:windows 2003系统iis6访问本机的站点时提示“Service Unavailable”;

查看iis的应用程序池,状况提示为:未指定错误,同时应用程序池自动停止运行;

   迁移MySQL数据库通常只需要几个简单的步骤,但是由于您要转移的数据量可能比较庞大,因此一般耗时也会比较长。

 

     

 

    下面的步骤将指导您如何从旧的服务器上导出MySQL数据库,对它进行安全加固;然后将其复制并导入到新的服务器上,以保证数据的完整。

 

    将MySQL数据库导出至转储文件(dump file)

 

    Oracle提供了一个名为mysqldump的工具,允许您轻松地将数据库结构和其数据导出到一个SQL的转储文件。您可以使用如下的命令:

 

    1.mysqldump -u root -p --opt [database name] >[database name].sql 

 

    不过,请注意如下几点:

 

    我们可以使用--single-transaction的标志,以避免数据库在导出数据的过程中被锁死。这样能够在将数据导出到转储文件的同时,您仍可继续在旧的数据库上更新数据。不过请注意,那些在导出进程已经开始之后被更新的数据,是不会被导入转储文件之中的。

 

    在运行该命令之前,请务必将[database name]替换成您的实际数据库名称。

 

    请输入您自己的用户名和相对应的密码,并确保该用户具有备份数据库所需的权限。

 

    安全加固备份文件

 

    在大多数情况下,数据是一家企业的最重要的资产。因此,我们不希望数据库的各种备份被暴露在不受保护的服务器上,因为这样有可能会造成错误地泄露,甚至会出现被黑客窃取等更为糟糕的状况。

 

    因此,通常您可以尝试的做法是:压缩、加密文件,然后删除原文件。在Linux操作系统上,请使用以下的命令对已压缩文件进行加密:

 

    1.zip --encrypt dump.zip db.sql 

 

    在压缩开始之前,系统将提示您输入密码。

 

    传输备份文件

 

    至此,我们已经获得了一个加密的转储文件。下面让我们通过网络使用SCP命令,将其传输到新的服务器上:

 

    1.scp /path/to/source-file user@host:/path/to/destination-folder/ 

 

    将MySQL转储导入新服务器

 

    通过上面一步,我们已将备份文件传到了新的服务器上,下面让我们来进行解密和提取:

 

    1.unzip -P your-password dump.zip 

 

    为了存储空间和安全方面的原因,一旦文件导入成功,请记得删除其对应的转储文件。

 

    您可以使用以下的命令来导入文件:

 

    1.mysql -u root -p newdatabase </path/to/newdatabase.sql 

 

    在新服务器上验证导入的数据

 

    现在我们在新服务器上已经导入了数据库,那么我们就需要一种方法来验证数据的真实存在,并确保没有任何遗漏。

 

    我建议您同时在旧的和新的数据库上运行如下查询,并将获得的结果进行对比。

 

    该查询会在所有的表里计算行数,以显示出新、旧数据库中的数据量。

 

    1.SELECT   

    

    2.TABLE_NAME,   

    

    3.TABLE_ROWS  

 

    4.FROM   

    `

    5.information_schema`.`tables`  

 

    6.WHERE   

    `

    7.table_schema` = 'YOUR_DB_NAME'; 

 

    此外,我建议您检查各个表中数字列的MIN和MAX记录,以确保数据本身是有效的,而不仅仅是看数据的总量(虽然这是查询所唯一能够读出的值)。另一种可供测试的选择是将数据库从新的服务器导出为SQL转储文件,并将其与旧服务器的SQL转储文件做比较。

 

    此外,在应用程序被迁移之前,我建议您先将一个应用程序的实例重定向到新的数据库上,以确认一切运行正常。

 

    另一种导出和导入的选项

 

    我们之所以把该选项放在最后,是因为我们的确不建议您去使用它。

 

    该方法实现起来非常的容易,因为它仅使用一个命令,便能一次性将转储文件导出、传输、并将其数据导入到新的数据库之中。

 

    而它的不足之处在于,一旦其网络链接断掉,您就需要重新启动它了。

 

    因此,我们认为它并不值得被推荐,尤其是在大型数据库中,可能会非常不适用。

 

    当然,如果您非要尝试一下的话,可以使用如下的命令:

 

    1.mysqldump -u root -pPassword --all-databases | ssh user@new_host.host.com 'cat - | mysql -u root -pPassword' 

 

    重要提示

 

    请确保在新旧两处,安装有相同官方发行版本的MySQL服务器。否则,你需要按照MySQL网站上的升级说明来进行统一(请参见(https://dev.mysql.com/doc/refman/5.7/en/upgrading.html)。

 

    请确保您在旧的服务器上拥有足够的空间来保存转储文件和压缩文件(应该有db_size×2的空间)。

 

    请确保您在新的服务器上拥有足够的空间来保存加密的和解密的转储文件、并能导入数据库(应该有db_size×3的空间)。

 

    如果您曾经考虑过只是将datadir从一个数据库转移到另一个的话,我建议您最好不要这样做。否则,您会搞乱数据库的内部结构,而且会给将来可能的问题埋下隐患。

 

    在新的服务器配置中,请不要忘了配置诸如innodb_log_file_size这样的重要标志。因为如果忘记了根据新服务器的规格而更新配置的话,很可能会导致严重的性能问题。

 

    在许多情况下,一般升级到新的数据库服务器的初衷是为了提高查询性能。而如果此类升级没有达到预期的改善,那么您就应该考虑去优化SQL查询,而不仅仅是升级硬件那么简单了


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/608645.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-12
下一篇2023-07-12

发表评论

登录后才能评论

评论列表(0条)

    保存