一烂斋、變更要能回滾屹逛、先在同樣的環(huán)境測(cè)試過(guò)
佛說(shuō):每次創(chuàng)傷、都是一次成熟汛骂,這便是運(yùn)維人員的真實(shí)寫照罕模。
從某種意義上講、運(yùn)維是一門經(jīng)驗(yàn)的學(xué)科帘瞭、是一門試錯(cuò)的學(xué)科淑掌。沒有做過(guò)的東西、總是會(huì)給你不期而遇的痛擊蝶念,請(qǐng)保護(hù)現(xiàn)場(chǎng)抛腕,讓變更有回頭的機(jī)會(huì)。
二媒殉、對(duì)破壞性的操作謹(jǐn)慎小心
什么是破壞性的操作担敌?
比如:對(duì) Oracle 而言:truncate table_name、delete table_name廷蓉、drop table_name柄错,這些語(yǔ)句執(zhí)行起來(lái)輕松簡(jiǎn)單也愜意極了、但記住售貌!即便數(shù)據(jù)可被回滾给猾、代價(jià)也是非常大!
對(duì) Linux 而言:rm -r所有當(dāng)前及其子目錄的所有數(shù)據(jù)都將被刪除颂跨。經(jīng)歷過(guò)這種故障的人敢伸、大多會(huì)給 rm 上個(gè)別名。
alias rm='rm -i'
同理恒削,cp 和 mv 也可以有同樣的選項(xiàng):
alias cp='cp -i' alias mv='mv -i'
三池颈、設(shè)置好命令提示
在操作之前、先理清你所在的是主庫(kù)钓丰、備庫(kù)躯砰?當(dāng)前目錄?哪個(gè) schema携丁?session琢歇?時(shí)間?
比如:對(duì) Oracle 來(lái)講:
[plain] view plaincopy idle> set sqlprompt 'RAC-node1-primary@10g>>' RAC-node1-primary@10g>>
當(dāng)然梦鉴、你也可以在?glogin.sql里面設(shè)置李茫。
對(duì)于 Linux 而言、bash 環(huán)境的提醒可設(shè)置 PS1 來(lái)知道當(dāng)前目錄肥橙、登陸用戶名和主機(jī)信息等魄宏;
對(duì) PS1 更多理解、請(qǐng)見:man PS1
四存筏、備份并驗(yàn)證備份的有效性
人非圣賢宠互、豈能無(wú)過(guò)?是機(jī)器總有計(jì)劃內(nèi)或計(jì)劃外崩潰的一天椭坚。怎么辦名秀?備份!E航Α匕得!
備份的學(xué)問(wèn)很大、按照不同的維度可以分:冷備和熱備巾表;實(shí)時(shí)和非實(shí)時(shí)汁掠;物理和邏輯。OLTP 7*24 在線業(yè)務(wù)集币、DB 就需要有實(shí)時(shí)熱備考阱。這樣就可以了嗎?
如果開發(fā)人員的一個(gè)不帶任何條件的 delete 誤刪所有數(shù)據(jù)鞠苟,此時(shí)你除了實(shí)時(shí)乞榨、還需要有非實(shí)時(shí)的備份秽之、把 DB 從邏輯錯(cuò)誤中恢復(fù)出來(lái)。
備份有了吃既、可以高忱無(wú)憂了嗎考榨?不行!尚須驗(yàn)證備份的有效性鹦倚。一個(gè)總有那么幾次河质、備份無(wú)法保證 100% 恢復(fù),簡(jiǎn)單的驗(yàn)證就是找個(gè)空庫(kù)恢復(fù)出來(lái)震叙。
五掀鹅、對(duì)生產(chǎn)環(huán)境永保敬畏之心
會(huì)計(jì)人員在從業(yè)之前、都有個(gè)職業(yè)操守的訓(xùn)練媒楼。同理乐尊、這也應(yīng)該是運(yùn)維人員進(jìn)入行業(yè)首先需要具備的素養(yǎng)。
比如:
于 Oracle 而言划址、你可以跑一個(gè) RDA 巡檢 DB 的健康狀況扔嵌;于 Linux 而言、是否有 password aging猴鲫、隔離外網(wǎng)等。
六谣殊、交接和休假最容易出故障拂共、變更請(qǐng)謹(jǐn)慎
接手別人的工作要一而再、再而三的確認(rèn)變更方案姻几。請(qǐng)教人并不見得就是能力不行的表現(xiàn)宜狐;
休假前最好各種可以做好的事情,最好能夠準(zhǔn)備一份文檔蛇捌,指明在什么情況下怎么做和聯(lián)系哪些人抚恒;
在別人放假的時(shí)候接手工作,“能拖則拖”络拌,實(shí)在需要執(zhí)行:必須不厭其煩的跟原運(yùn)維者確認(rèn)各個(gè)操作細(xì)節(jié)俭驮。
七、搭建報(bào)警春贸、及時(shí)獲取出錯(cuò)信息混萝;搭建性能監(jiān)控、預(yù)測(cè)趨勢(shì)
運(yùn)維人員賴于生存的工具就是報(bào)警和監(jiān)控萍恕。
報(bào)警可以讓你及時(shí)知道系統(tǒng)出現(xiàn)了什么異常逸嘀、以便及時(shí)跟進(jìn)、把故障扼殺于搖籃允粤;
監(jiān)控可以讓你了解系統(tǒng)的歷史性能信息崭倘、以歷為鑒翼岁、可以知興替嘛、早做優(yōu)化司光。
報(bào)警和優(yōu)化是衣寬帶水的好兄弟琅坡、相鋪相成、互相促進(jìn)飘庄。
八脑蠕、自動(dòng)卻換需謹(jǐn)慎
比如:Oracle 存儲(chǔ)級(jí)的HA方案:Data Guard,主庫(kù)提交了一筆訂單跪削,結(jié)果發(fā)生了 switchover谴仙,這筆訂單沒有同步到備庫(kù),那么賣家損失了一個(gè)銷售單碾盐、對(duì)客戶晃跺、對(duì)公司都是損失。
九毫玖、仔細(xì)一點(diǎn)掀虎,偏執(zhí)一點(diǎn),檢查付枫、檢查烹玉,再檢查
有這么一個(gè)人:
他在做一個(gè)變更的時(shí)候,會(huì)先提前一兩周發(fā)送郵件并電話手機(jī)通知相關(guān)人阐滩;
在測(cè)試機(jī)上寫好腳本二打,召集大家 review 操作步驟和腳本;
測(cè)試完成以后拷貝到生產(chǎn)環(huán)境掂榔;
錄對(duì)應(yīng)機(jī)器继效,“打開,關(guān)閉装获,打開瑞信,關(guān)閉”該腳本;
跟相關(guān)人員再次確認(rèn)執(zhí)行的操作穴豫、順序凡简、時(shí)間點(diǎn),可能的影響和回滾是否都準(zhǔn)備好了精肃;
行前還要退出這個(gè)機(jī)器潘鲫,然后再登錄進(jìn)去,“打開肋杖,關(guān)閉”腳本溉仑;
后才在后臺(tái)運(yùn)行腳本,同時(shí)在另外一個(gè)窗口登錄著状植,隨時(shí)ps和查看結(jié)果輸出浊竟。
期間姿勢(shì)端正怨喘,呼吸急促而均勻,眼神凝重振定。操作的人不覺得累必怜,倒是一邊學(xué)習(xí)的人很累。
十后频、簡(jiǎn)單即是美
這有點(diǎn)禪的意境梳庆、和 GNU/Linux 的思想不謀而合。
我們總是面臨各種誘惑:新的系統(tǒng)架構(gòu)卑惜,新的更智能的命令和工具膏执,最新的硬件平臺(tái),功能更全的HA軟件…你可以在線下安裝露久,測(cè)試更米,怎么做都行。但是如果想要在生產(chǎn)環(huán)境下使用起來(lái)毫痕、請(qǐng)三思U髀汀!
能夠使用系統(tǒng)內(nèi)置命令的話消请,就不用考慮其他要專門下載安裝的軟件了
腳本本身就能完成的功能栏笆,就沒有必要專門找一個(gè)功能豐富的軟件來(lái)做
Linux本身自帶的字符界面比那些復(fù)雜的圖形界面要簡(jiǎn)潔方便……
最后祝大家運(yùn)維工作一帆風(fēng)順,多福多壽臊泰,不出故障蛉加。