服务器宕机后确保事件:

1. 开机正常
2. 数据库、tomcat、其他服务正常启动
3. 防火墙开放服务端口
4. 接口正常访问
5. 网站正常登录

一、Linux服务器

1.开机正常(不幸中的万幸)

2.数据库、tomcat、其他服务正常启动

2.1. 启动数据库服务
(1)su - oracle 使用oracle用户登录Linux
(2)lsnrctl status 查看Oracle监听器运行状况
(3)lsnrctl start lsnrctl stop启动/关闭oracle监听服务
(4)sqlplus / as sysdba 使用SQL*Plus工具登录Oracle
(5)startup shutdown 启动/关闭oracle实例
(6)ps -ef|grep oracle 查看数据库进程是否开启
(7)netstat -antup|grep PID 利用(6)得到PID确认进程使用的端口号1521 (7)lsof -i:port端口 端口被哪个进程使用
(8)service iptables status查看防火墙状态确认确认端口是否开放,未运行防火墙则不用设置开放端口。
(8) chkconfig iptables on chkconfig iptables off 启动/关闭防火墙
(8)iptables -A INPUT -p tcp --dport 1521 -j ACCEPT 防火墙开放指定端口命令
(8)iptables -A INPUT -p tcp --dport 1521 -j DROP 防火墙关闭指定端口命令
(8)service iptables save保存设置
(8)service iptables restart重启防火墙
(9)telnet ip地址 port端口在其他服务器cmd使用telnet访问端口确认是否开放
(9)其他服务器创建连接到这数据库服务器。

2.2. 启动Tomcat服务
(1)locate catalina.sh 全局搜索服务文件确定存放路径
(2)cd /severs/apache-tomcat-7.0.92/bin进入tomcat的bin目录下
(3)./startup.sh ./shutdown.sh启动/关闭tomcat服务
(4)ps -ef|grep tomcat 查看tomcat进程是否开启
(5)netstat -antup|grep PID 利用(4)得到PID确认进程使用的端口号8080 (5)lsof -i:port端口 端口被哪个进程使用
(6)service iptables status查看防火墙状态确认确认端口是否开放,未运行防火墙则不用设置开放端口。
(6) chkconfig iptables on chkconfig iptables off 启动/关闭防火墙
(6)iptables -A INPUT -p tcp --dport 1521 -j ACCEPT 防火墙开放指定端口命令
(6)iptables -A INPUT -p tcp --dport 1521 -j DROP 防火墙关闭指定端口命令
(6)service iptables save保存设置
(6)service iptables restart重启防火墙
(7)telnet ip地址 port端口在其他服务器cmd使用telnet访问端口确认是否开放
(7)其他服务器访问Tomcat上的网站。

问题一:命令执行了,进程启动了,但访问服务时挂掉了。
 	1、已知信息:启动时无报错,不能正常访问。
	2、原因:查看服务目录`webapps`,没有发现项目包,显然不是在tomcat服务`bin`目录下启动服务,后续发现是另外写了脚本调用启动tomcat。
	3、解决步骤:
		(1)cd /项目路径
		(2)./start.sh 启动服务
		(3)./stop.sh 关闭服务
	注:apache-tomcat-7.0.92/conf/server.xml 端口一般在该文件中配置

2.3. 启动Redis服务
(1)locate redis 全局搜索服务相关文件确定存放路径
(2)./redis-serverredis前台启动,ctrl+C退出窗口,进程不在。
(2)./redis-server &redis后台启动,ctrl+C退出窗口,进程还在。
(2)./redis-server .../conf/redis.confredis指定配置启动,ctrl+C退出窗口,进程还在。
(3)./redis-cli再输入shutdown关闭关闭redis服务
(4)ps -ef|grep redis 查看tomcat进程是否开启
(5)netstat -antup|grep PID 利用(4)得到PID确认进程使用的端口号6379 (5)lsof -i:port端口 端口被哪个进程使用
(6)service iptables status查看防火墙状态确认确认端口是否开放,未运行防火墙则不用设置开放端口。
(6) chkconfig iptables on chkconfig iptables off 启动/关闭防火墙
(6)iptables -A INPUT -p tcp --dport 1521 -j ACCEPT 防火墙开放指定端口命令
(6)iptables -A INPUT -p tcp --dport 1521 -j DROP 防火墙关闭指定端口命令
(6)service iptables save保存设置
(6)service iptables restart重启防火墙
(7)telnet ip地址 port端口在其他服务器cmd使用telnet访问端口确认是否开放
(7)其他服务器访问Tomcat上的网站,并查看日志看是否有redis异常信息。
注:启动后会打印warning信息,这无伤大雅,正常现象。

问题一:命令执行了,进程启动了,但访问服务时挂掉了。
 	1、已知信息:启动时无报错,却不能正常访问。
	2、原因:使用的配置文件不对。
	3、解决步骤:
		(1)locate redis.conf 全局定位配置文件位置
		(2)./server ../../redis.conf 使用正确配置启动服务

一、Windows服务器

1.开机正常(不幸中的万幸)

2.数据库、tomcat、其他服务正常启动

2.1. 启动数据库服务
(1)启动数据库监听、实例服务:win键 》右键 》计算机管理 》服务和应用程序 》服务
(2)确认oracle数据库服务是否启动:任务栏 》右键 》任务管理器 》服务
(3)验证连接:sql developer客户端 登录 数据库实例
(4)确认数据库服务使用的端口号(1521):第一种:win键+r 》Net Manager。 第二种:查看tnsnames.ora文件。
(5)确认该端口的PID(1848):第一种:netstat -aon|findstr 1521
(5)确认该端口是哪个进程使用:第一种:tasklist|findstr "PID"。第二种:任务管理器 》进程 》有个PID列(如果没有,右键勾选)。
(6)根据PID确认进程使用端口号:netstat -ano (7)检查服务器入站规则:右下角网络 》右键 》打开网络和Internet设置 》Windows防火墙 》高级设置 》入站规则。
(8)新建入站规则:(7)窗体右边 》新建规则 》选“端口” 》选“TCP”、“特定本地端口”、填写端口 》选“允许连接” 》默认勾选 》填写规则名称、描述
(9)telnet ip地址 port端口在其他服务器使用telnet访问端口是否开放
(9)其他服务器创建连接到这数据库服务器。

问题一:数据库监听、实例服务启动后登录oracle实例报错
	1、错误信息:ora-01033:ORACLE initialization or shutdown in progress...
	ORACLE正在初始化或关闭。
	2、原因:由于突然停电宕机,数据库日志文件写入丢失,日志文件损坏。
	3、解决步骤:
		(1)win键+r 》cmd
		(2)set ORACLE_SID=实例名
		(3)sqlplus "/as sysdba"
		(4)shutdown immediate
		(5)startup
			报错:	ORA-00742: 日志读取在线程 1 序列 631225 块 40649 中检测到写入丢失情况
					ORA-00312: 联机日志 1 线程 1: '\oracle\oradata\REDO01.LOG'
		(6)shutdown immediate
		(7)startup mount
		(8)recover database using backup controlfile
			指定日志:...
			这时要手动输入报错日志路径:S:\路径\oracle\oradata\REDO01.LOG
			Enter
		(9) alter database open resetlogs
			显示:数据库已更改。
		完事!

2.2. 启动Tomcat服务
(1)tomcat 全局搜索服务文件确定存放路径
(2)/severs/apache-tomcat-7.0.92/bin进入tomcat的bin目录下
(3)startup.bat shutdown.bat启动/关闭tomcat服务
(4)确认Tomcat服务使用的端口号(8080):apache-tomcat-7.0.92/conf/server.xml 端口一般在该文件中配置。
(5)确认该端口的PID(1848):第一种:netstat -aon|findstr 8080
(5)确认该端口是哪个进程使用:第一种:tasklist|findstr "PID"。第二种:任务管理器 》进程 》有个PID列(如果没有,右键勾选)。
(6)根据PID确认进程使用端口号:netstat -ano
(7)检查服务器入站规则:右下角网络 》右键 》打开网络和Internet设置 》Windows防火墙 》高级设置 》入站规则。
(8)新建入站规则:(7)窗体右边 》新建规则 》选“端口” 》选“TCP”、“特定本地端口”、填写端口 》选“允许连接” 》默认勾选 》填写规则名称、描述
(9)telnet ip地址 port端口在其他服务器使用telnet访问端口是否开放
(9)其他服务器创建连接到这数据库服务器。

问题一:服务器窗口报异常。
 	1、已知信息:连接池异常。
	2、原因:后续发现配置文件application.properties丢失。
	3、解决步骤:
		(1)拷贝一份application.properties放入目录\apache-tomcat-8.5.40\webapps\Project\WEB-INF\classes中。