1. 程式人生 > >十條遠離故障的運維工作經驗分享

十條遠離故障的運維工作經驗分享

運維故障是DBA和運維人員心中永遠的痛,而避免故障的方法卻有跡可循。下面是本人總結的十條遠離故障的運維工作經驗。

1. 確保變更可以回滾

佛說:“每次創傷都是一次成熟”。這是運維人員的真實寫照。從某種意義上講,運維是一份不斷犯錯、不斷積累經驗的工作。以前沒有經歷的東西,總是不定期的給你痛擊。所以請保護好變更的現場,使得變更有回頭的機會。

2. 小心破壞性的操作

什麼是破壞性的操作?比如:對 Oracle 而言,有truncate table_name,delete table_name,drop table_name。這些語句執行起來輕鬆簡單也愜意極了,但記住:即便資料可被回滾,其代價也是非常大!

對Linux而言,“rm -r” 將刪除當前及其子目錄的所有資料。有過這種教訓的,一般都會給rm起個別名,如 alias rm=’rm -i’。同理,對cp和mv也可以這樣做:
alias cp='cp -i'
alias mv='mv -i'

3. 設定好命令提示

在操作之前,先弄清楚所在的是主庫還是備庫?當前目錄是什麼?哪個schema?session?時間? 比如,對Oracle來講:
idle> set sqlprompt '[email protected]>>'
[email protected]>>

當然,你也可以在glogin.sql裡面對其設定。

對Linux而言,可通過設定PS1來知道當前目錄、登陸使用者名稱和主機資訊等。更多有關的PS1資訊請參見:man PS1

4. 備份並驗證

人非聖賢,豈能無過?是機器總有計劃內或計劃外崩潰的一天。怎麼辦?備份!!!
備份的學問很大,按照不同的維度可以分冷備和熱備、實時和非實時、物理和邏輯。

OLTP 7*24 線上業務,DB 就需要有實時熱備。這樣就可以了嗎?開發人員的一個不帶任何條件的 delete 還是會誤刪所有資料。
所以,此時你除了實時備份還需要有非實時的備份。

備份有了,可以高忱無憂了嗎?不行!尚須驗證備份的有效性。總有那麼幾次備份無法保證100%恢復。簡單的驗證就是找個空庫並恢復出來。

5. 對生產環境永保敬畏之心

會計人員在從業之前,都有個職業操守的訓練。同理這也應該是運維人員進入行業前首先需要具備的素養。比如:於Oracle而言,你可以跑一個RDA巡檢DB的健康狀況。
對Linux而言,是否有password aging,隔離外網等。

6. 交接和休假最容易出故障,變更請謹慎

接手別人的工作要一而再,再而三的確認變更方案。請教人並不見得就是能力不行的表現。休假前最好各種可以做好的事情,最好能夠準備一份文件,指明在什麼情況下怎麼做和聯絡哪些人。在別人放假的時候接手工作,“能拖則拖”,實在需要執行,必須不厭其煩的跟原運維者確認各個操作細節。

7. 搭建報警,及時獲取出錯資訊;搭建效能監控,預測趨勢

運維人員賴於生存的工具就是報警和監控。

報警可以讓你及時知道系統出現了什麼異常,以便及時跟進和把故障扼殺於搖籃。

監控可以讓你瞭解系統的歷史效能資訊,以歷為鑑,可以知興替和早做優化。

報警和優化是衣寬頻水的好兄弟,它們相鋪相成、互相促進。

8. 自動切換需謹慎

例如,Oracle儲存級的HA方案:Data Guard。主庫提交了一筆訂單,結果發生了switchover,這筆訂單沒有同步到備庫。
那麼賣家損失了一個銷售單。這對對客戶和公司都是損失。

9. 仔細一點、偏執一點、檢查、檢查、再檢查

有這麼一個人:

1)做一個變更的時候,會先提前一兩週傳送郵件並電話手機通知相關人;
2)在測試機上寫好指令碼,召集大家review操作步驟和指令碼;
3)測試完成以後拷貝到生產環境;
4)登入對應機器,“開啟、關閉、開啟、關閉”該指令碼。
5)跟相關人員再次確認執行的操作、順序、時間點、可能的影響和回滾是否都準備好了;
6)執行前還要退出這個機器,然後再登入進去,“開啟,關閉”指令碼;
7)最後才在後臺執行指令碼,同時在另外一個視窗登入,隨時ps和檢視結果輸出。

期間姿勢端正,呼吸急促而均勻,眼神凝重。操作的人不覺得累,倒是一邊學習的人很累。

10. 簡單即是美

這有點禪的意境,和GNU/Linux的思想不謀而合。

我們總是面臨各種誘惑:新的系統架構、新的更智慧的命令和工具、最新的硬體平臺、功能更全的HA軟體。。。
你可以線上下安裝、測試;怎麼搞都行。但是如果想要在生產環境下使用起來,請三思!!

能夠使用系統內建命令的話,就不用考慮其他要專門下載安裝的軟體了。
指令碼本身就能完成的功能,就沒有必要專門找一個功能豐富的軟體來做。
linux本身自帶的字元介面比那些複雜的圖形介面要簡潔方便。

……

最後祝大家運維工作一帆風順、多福多壽、不出故障。

本文在[DataHacker]的基礎上做了適當修改