SQL伺服器突然故障,24小時內無法出貨
今天接了一個臨時的案子,是朋友公司的SQL伺服器突然間不能運作。時間發生在禮拜三(1月11日)下午,但因為禮拜四他們有貨品必須要出貨給客戶,所以很緊急,需要修復SQL伺服器,才能讀取相關資料。
經過遠端檢查發現,原本安裝的作業系統看似沒問題,但SQL伺服器就突然間開了不了,按啟動也沒有反應,顯示錯誤訊息。因為這台伺服器非常的單純,並沒有在上面做任何的文書處理,或者是直接在這邊執行的工作,本身也只是設定自動開機、自動關機,然後每日的定時備份,然後同時將備份檔同步到NAS網路硬碟。
而這一台SQL的主要工作是提供給廠房作業用機台電腦來做一個資料的存取,而工廠有自己串接好的一個工程程式,因此這件事情棘手又很突然,但又必須盡速解決,不然影響出貨茲事體大。
經過當日晚上的系統初步檢查後,判斷此台SQL伺服器已經無法正常開啟,認為如果再繼續處理這台電腦,朝向修復或重灌SQL元件的話,應該會趕不上明天他們工作出貨的時間。
重要的資料庫每日備份與異機備援機制
好在2019年協助建置這台SQL SERVER的時候,就已經有同時安裝2台一模一樣的電腦,也就是2組電腦是同樣的SQL環境跟軟硬體配置,所以靈機一動然後想起來了沒有在用的那台電腦。
沒在用的那台電腦B,雖然跟目前上線的A電腦是一樣的,但畢竟2019年至2023年經過了三年的時間,資料庫內容都是舊的,所以需要經過資料庫還原的一個步驟。前面也有提到,SQL database 有做好每日排程備份等,所以即使SQL SERVER元件故障,至少還可從前一日的資料去做還原。還原後再請工廠老闆以及員工來做資料庫的檢查,以確定資料庫已經還原到1月10號的版本,到目前為止心裡先安心了一下。
SQL還原後帳號無法登入的問題修復
之後經過再一次的檢查與測試後,發現到雖然資料庫的資料已經回來了,但是有些員工的帳號的建立檔與帳號密碼資,以及存取權限設定,是建立在舊的SQL機器上,2019年的這一台版SQL SERVER 帳號資料版本有一些落差,所以必須要修復。因為即使公司人資部門已新增同樣的帳號,但仍無法順利地登錄,因為每個帳號在新舊伺服器上面都有一個獨立的SID,即使是同樣的帳號密碼,SQL SERVER的判斷還是屬於不同的一個人員或者是而不同的SID編號,所以就必須要去做一個修補的動作。
那我這邊有把修補的一個指令放在這邊,提供給大家做參考。
經過上數指令,有驚無險地完成一位人員資料庫的修復部分,當然最好還是原本SQL SERVER仍建在時,除了資料檔之外,要定期匯出使用者帳號資料與權限,而這也當做一次經驗。