服務器宕機維護——機房停電篇

服務器宕機後確保事件:

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中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章