下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
運(yùn)維操作規(guī)范十大原則運(yùn)維操作規(guī)范十大原則運(yùn)維操作規(guī)范十大原則V:1.0精細(xì)整理,僅供參考運(yùn)維操作規(guī)范十大原則日期:20xx年X月運(yùn)維安全:遠(yuǎn)離故障的十大原則故障是運(yùn)維人員永遠(yuǎn)的痛。相信每一個運(yùn)維人員的KPI中都有一項(xiàng):可用性。可用性高就是不出故障,各個公司對可用性和故障評級的標(biāo)準(zhǔn)都不相同,但是避免故障的方法卻是殊途同歸。我們怎么避免故障,沃趣科技簡單列舉了以下幾條,與大家共勉!
1、變更要有回滾,在同樣的環(huán)境測試過
2、對破壞性的操作謹(jǐn)慎小心
3、設(shè)置好命令提示
4、備份并驗(yàn)證備份有效性
5、對生產(chǎn)環(huán)境存有敬畏之心
6、交接和休假最容易出故障,變更請謹(jǐn)慎
7、搭建報警,及時獲得出錯信息。搭建性能監(jiān)控,了解歷史,獲得趨勢,預(yù)測未來
8、自動切換需謹(jǐn)慎
9、仔細(xì)一點(diǎn),偏執(zhí)一點(diǎn),檢查,檢查,再檢查
10、簡單即是美。第1條,變更要有回滾,在同樣的環(huán)境測試過。也是運(yùn)維最繁瑣,最苦逼的地方,所有的變更都必須有回滾的辦法,在同樣的環(huán)境下測試過。沒有做過的東西,總是會在你意想不到的地方給你一次痛擊,在阿里巴巴的這么多年運(yùn)維經(jīng)驗(yàn)告訴我們,所有沒有做過的變更,出錯的概率最大。所以我們需要給變更以回滾的可能,在各個步驟可能出錯的情況下,考慮回滾到最初狀態(tài)。優(yōu)秀的運(yùn)維人員對不考慮回滾的的操作都是敬而遠(yuǎn)之的。從某種意義上來說,運(yùn)維是一門經(jīng)驗(yàn)的學(xué)科,是一門試錯的學(xué)科。第2條,對破壞性的操作謹(jǐn)慎小心。破壞性的操作有哪些列對數(shù)據(jù)庫來說有:DROPTable,Dropdatabase,truncatetable,deletealldata;這些操作做完了以后幾乎無法考慮怎么把數(shù)據(jù)都回滾回去了。就算回滾,代價也是非常大的。你執(zhí)行這樣的語句非常簡單,但是回滾恢復(fù)數(shù)據(jù)缺非常困難。Linux的命令rm可以-r(recursive)遞歸的刪除某一個目錄,-f(force)強(qiáng)制刪除,但是你有沒有刪錯過文件。我們遇到過一個文件名中末尾有空格的情況,而有的同事rm-r習(xí)慣性的會在文件名后面加*,這樣就成了rm-raa*,所有當(dāng)前目錄的數(shù)據(jù)都被刪除掉了!經(jīng)過這次故障以后我們給rm做了別名:aliasrm='rm-i'
這樣在刪除數(shù)據(jù)時,rm命令會提示你,是否確認(rèn)刪除該文件。
同樣的cp和mv也可以有同樣的選項(xiàng):
aliascp='cp-i'
aliasmv='mv-i'第3條,設(shè)置好命令提示。讓你時刻知道你在操作哪個數(shù)據(jù)庫,讓你知道你在哪個目錄下。MySQL字符客戶端允許你設(shè)置提示符,默認(rèn)的提示符就是一個光禿禿的mysql
>,為了讓你清楚的知道你當(dāng)前是以哪個用戶名,哪個IP(可能是localhost,或者具體的物理IP),你當(dāng)前操作的是哪個schema,以及當(dāng)前的時間,你可以設(shè)置數(shù)據(jù)庫的提示符為:prompt=”\\u@\\h:\\d\\r:\\m:\\s>“。它可以直接寫在的[mysql]下,這樣你每次連上MySQL就默認(rèn)顯示如下:root@:woqutech08:24:36>
具體prompt可以設(shè)置哪些提示,你可以參考中的列表
而linux命令提示符也允許你設(shè)置的。有兩個地方可以設(shè)置。第一個:PS1。這個是每次shell提示你輸入命令的信息,默認(rèn)為:$或者#,只會提示你是超級用戶還是普通用戶。有經(jīng)驗(yàn)的運(yùn)維者會設(shè)置exportPS1='\n\e[1;37m[\e[m\e[1;31m\u\e[m\e[1;31m@\e[m\e[1;31m\h\e[m\e[4m`pwd`\e[m\e[1;37m]\e[m\e[1;36m\e[m\n\$'這樣你就可以知道你當(dāng)前的目錄,登錄的用戶名和主機(jī)信息了,示例提示符如下:
[root@woqu-lsv-01/home/mysql]
#
你可以查看獲得具體的PS1設(shè)置顏色,設(shè)置各個提示內(nèi)容的介紹。
第二個提示符就是PROMPT_COMMAND。這個是設(shè)置你連到具體的數(shù)據(jù)庫以后標(biāo)簽頁標(biāo)題上顯示的內(nèi)容,Windows用戶可能會用securtCRT,Mac用戶可能會用iTerm2,開多個標(biāo)簽頁的話,如果每個標(biāo)簽頁的標(biāo)題上內(nèi)容一樣,我們切來切去就有可能在錯誤的標(biāo)簽頁上做操作,設(shè)置了這個以后,這個問題概率就會小很多。比如我們的機(jī)器上設(shè)置為
PROMPT_COMMAND='echo-ne"\033]0;${USER}@${HOSTNAME%%.*}:${PWD}\007"'
對應(yīng)的標(biāo)簽頁如下圖
關(guān)于提示符的設(shè)置,更多請參考:
修改mysql/oracle/bash/vimrc/cmd提示符格式與顏色第4條,備份并驗(yàn)證備份有效性。是人總會出錯,是機(jī)器總可能會有突然崩潰的那一天。怎么辦-我們需要準(zhǔn)備備份。
備份的學(xué)問很大。按照不同的緯度可以分為:冷備份和熱備份;實(shí)時備份和非實(shí)時備份;物理備份和邏輯備份。
互聯(lián)網(wǎng)企業(yè)為了提供7*24小時不間斷的服務(wù),數(shù)據(jù)庫就需要有實(shí)時熱備份。在主庫出現(xiàn)問題的情況下能夠由備庫提供服務(wù)。備庫時候有效,數(shù)據(jù)是否一致,主庫出現(xiàn)問題的時候怎么切換都需要運(yùn)維人員認(rèn)真考慮。
是不是有了這些就夠了列不行,應(yīng)用程序也是人寫的,曾經(jīng)出現(xiàn)過程序一不小心delete語句沒有帶任何條件,導(dǎo)致一個表中所有的數(shù)據(jù)都被刪除的慘狀。所以你除了實(shí)時的備份,還需要有非實(shí)時的備份,在你的數(shù)據(jù)出現(xiàn)邏輯錯誤之后能夠從備份數(shù)據(jù)中恢復(fù)出來?,F(xiàn)在很多人在研究MySQL模仿oracle的flashback功能,利用binlog來恢復(fù)數(shù)據(jù)。但是這樣的話,binlog_format必須設(shè)置為row并且對于DDL操作也無法回滾。它是為快速解決部分?jǐn)?shù)據(jù)被錯誤刪除的解決方案,但是無法代替非實(shí)時備份的作用。
非實(shí)時備份有可以分為在線延時備份和離線備份。在線延時備份是搭建數(shù)據(jù)庫的一定時間延遲的熱備份,比如MySQL就可以搭建一個延遲一天的slave,一直保持著備庫與主庫的延遲在一天??梢岳胮t-slave-delay工具來實(shí)現(xiàn)這個功能。另外,離線備份是目前大家用的比較多的,可以利用mysqldump進(jìn)行邏輯備份或者xtrabackup進(jìn)行物理備份。為了空間的原因和快速恢復(fù)考慮,你還可以利用xtrabackup進(jìn)行增量的物理備份。
備份有了,是否就可以高枕無憂了還是不行。你需要驗(yàn)證備份的有效性。沒有一個備份能夠保證它備份出來的數(shù)據(jù)能夠100%恢復(fù)出正確的數(shù)據(jù),特別是物理備份的概率相對來說,更低,xtrabackup備份一個月總有那么幾次來大姨媽,不能給你很好的服務(wù)。所以,備份并不只是備份,它還包括備份的驗(yàn)證,它如果不能恢復(fù)出正確的數(shù)據(jù),就只是浪費(fèi)空間而已。備份的驗(yàn)證最簡單的就是找一個空閑的庫,來恢復(fù)出來,mysql啟動以后檢查部分?jǐn)?shù)據(jù)。如果不需要這么嚴(yán)謹(jǐn),對于xtrabackup來說,你至少得驗(yàn)證它–apply-log能夠恢復(fù)上去吧同樣,備庫的數(shù)據(jù)一致性也需要經(jīng)常檢查一下,mysql的replication并不保證100%的數(shù)據(jù)一致性,你可以去翻翻mysqlstatement復(fù)制的bug列表,有些數(shù)據(jù)在主備不同的環(huán)境上分別執(zhí)行,數(shù)據(jù)就會不一樣。可以考慮用percona的工具pt-table-checksum來檢查主備不一致,用pt-table-sync來同步主備數(shù)據(jù)。第5條,對生產(chǎn)環(huán)境存有敬畏之心。這應(yīng)該是運(yùn)維者進(jìn)入行業(yè)首先需要具備的素質(zhì)。但是我們還是需要把它拿出來強(qiáng)調(diào)一下。
有機(jī)會的話,你可以梳理一下:你的生產(chǎn)環(huán)境上有哪些賬戶,這些賬戶是否都確實(shí)需要登錄到機(jī)器上來這些賬戶即包括linux用戶還包括數(shù)據(jù)庫賬戶。你的root用戶是否開放給了某些用戶,這些用戶安全嗎你的用戶密碼是否經(jīng)常修改,是否加密不讓具體的操作人員直接看到,密碼強(qiáng)度時候足夠,密碼重試次數(shù)達(dá)到一定次數(shù)是否黑名單;你的生產(chǎn)環(huán)境和線下環(huán)境是否隔離,數(shù)據(jù)庫是否和外網(wǎng)隔離是否一些工作明明能夠在開發(fā)庫和測試庫做,卻被放到生產(chǎn)環(huán)境上去了。是否有專門的人負(fù)責(zé)線上應(yīng)用的發(fā)布,從而避免開發(fā)人員直接接觸生產(chǎn)環(huán)境
這些都是你避免出現(xiàn)csdn密碼泄漏,在業(yè)界的名聲一落千丈的法寶。第6條,交接和休假最容易出故障,變更請謹(jǐn)慎。這個是經(jīng)驗(yàn)之談。我們在總結(jié)故障的情況時,發(fā)現(xiàn)在公司部門有變化時,工作交接(不管是休假,工作職責(zé)變化還是離職),故障的出現(xiàn)頻率會比正常情況下多50%以上。有人說,這是因?yàn)闄C(jī)器或者應(yīng)用是有感情的,舍不得離開的運(yùn)維者。
我們不談感情,簡單的理性分析一下。公司或者部門難免會做一些調(diào)整,變化是世界上唯一不變的事情。而運(yùn)維人員是一線做事情的人,部門調(diào)整或者領(lǐng)導(dǎo)的更換可能導(dǎo)致工作的著重點(diǎn)不同,做事的方式和評測的標(biāo)準(zhǔn)變了,適應(yīng)過程中難免會出現(xiàn)一些考慮不周到的地方,出故障也是情理之中了。
而工作交接,對運(yùn)維人來說,其實(shí)是一個非常費(fèi)時費(fèi)力的事情,你需要把所有平常做的工作都梳理清楚,甚至包括你的一些經(jīng)意不經(jīng)意的操作習(xí)慣,這樣的話,下一個人才可能接手的下來。比如:你可能認(rèn)為備庫正常情況下沒有訪問,于是讓某些并不重要的任務(wù)(一個月一次抽取部分?jǐn)?shù)據(jù)到線下測試)直接連備機(jī)IP進(jìn)行操作。下一個人接手,認(rèn)為備機(jī)就是備機(jī),操作起來不會有任何問題,結(jié)果下一次任務(wù)抽取就是一個故障出來了。再舉一個我們遇到了事例吧:同事A出國休假了,休假期間估計(jì)聯(lián)系不上,他留了文檔,并告誡說某幾個庫和表是比較核心和容易出問題的,沒有特殊情況最好等他回來再做變更。正好,休假期間,開發(fā)人員找到同事B,要求他重置一個字段的某一位(bit),并打包票說這個bit沒有用,同事B拒絕,并背上了不配合的罵名。同事A回來嚇了一身冷汗,原來這個字段已經(jīng)被另外一個離職的開發(fā)使用了。
所以,運(yùn)維部門和運(yùn)維人員對變化需要盡量放平心態(tài);接手別人的工作要一而再,再而三的確認(rèn)變更方案。請教人并不見得就是能力不行的表現(xiàn);休假前最好各種可以做好的事情,最好能夠準(zhǔn)備一份文檔,指明在什么情況下怎么做和聯(lián)系哪些人。在別人放假的時候接手工作,“能拖則拖”,實(shí)在需要執(zhí)行:必須不厭其煩的跟原運(yùn)維者確認(rèn)各個操作細(xì)節(jié)。第7條,搭建報警,及時獲得出錯信息。搭建性能監(jiān)控,了解歷史,獲得趨勢,預(yù)測未來。運(yùn)維的最高境界不是故障來了,泰山崩于前而不驚,蒼老師勾引你而抗日;而是沒有故障,讓故障消失在萌芽之中。請給那些默默無聞,每天想著我們的系統(tǒng)還存在哪些隱患,怎么解決,怎么及早發(fā)現(xiàn)的運(yùn)維人員鼓掌。他們是最可愛的人。而他們賴以生存的工具就是報警和監(jiān)控。Oracle發(fā)展了這么多年,awr和相關(guān)的性能參數(shù)都相對比較全;MySQL現(xiàn)在也已經(jīng)迎頭趕上,配套的工具越來越多。
報警可以讓你及時知道系統(tǒng)出現(xiàn)了什么異常。比如slaveio報警,在數(shù)據(jù)庫replication異常的時候就會提醒你:IO線程出現(xiàn)了問題,可能是網(wǎng)絡(luò)問題,主數(shù)據(jù)庫問題等,slavesql報警會提醒你replication的SQL線程出現(xiàn)了問題,可能是主備不一致,slave被停掉了,存儲過程在備機(jī)有異?;蛘咂渌麊栴}。這樣你收到報警就可以及時跟進(jìn),而不至于主備長時間不一致,主庫壞掉了想要切換到備庫的時候卻不能切換。
性能監(jiān)控可以讓你了解系統(tǒng)的歷史性能信息。分析故障發(fā)生時的各種現(xiàn)象,確認(rèn)故障的真正原因;了解變化趨勢,發(fā)現(xiàn)故障的苗頭,及早優(yōu)化和調(diào)整。比如你如果使用了PCI-E的Flash卡,你可以監(jiān)控logical_written_bytes,logical_read_bytes,physical_written_bytes,physical_read_bytes以便獲得flash卡的每秒的邏輯讀寫和物理讀寫字節(jié)數(shù)。對于MySQL你可以監(jiān)控Com_delete+Com_delete_multi,Com_insert+Com_insert_select,Com_update+Com_update_multi,Com_select來獲得每秒的MySQLDML刪除,插入,更新和查詢的次數(shù)。
報警和性能監(jiān)控其實(shí)不不完全獨(dú)立的,很多性能的監(jiān)控項(xiàng)也可以報警出來。比如linux的iostat中的await_time可以作為性能監(jiān)控采集起來獲得系統(tǒng)IO響應(yīng)時間的變化曲線,當(dāng)該值達(dá)到20以上的時候,也可以報警出來,讓運(yùn)維人員跟進(jìn)是磁盤陣列中壞了一塊,還是異常的數(shù)據(jù)拷貝影響了系統(tǒng)的IO性能等。
nagios和cacti是目前MySQL領(lǐng)域使用最廣泛的報警和性能展示系統(tǒng)。percona最新推出percona-monitor-plugins就是基于他們倆的。第8條:自動切換需謹(jǐn)慎?,F(xiàn)在數(shù)據(jù)庫的HA很多都是進(jìn)行自動切換的,這樣運(yùn)維人員深夜起來手工切換到備庫的機(jī)會就會少很多。切換也會快速很多。但是,它帶來的副作用也不容忽視。
現(xiàn)在業(yè)界使用的HA軟件非常多,heartbeat由于很多SA兼作DBA的運(yùn)維比較熟悉,在MySQL自動切換也是不少的。一般來說,它會通過mysqladminping來探測MySQL是否存活,如果發(fā)現(xiàn)異常,那么他就會切換VIP和MySQL資源到備庫。但是此時備庫的數(shù)據(jù)延遲是否為0,主庫crash之后binlog的數(shù)據(jù)是否全部都同步到備庫上去了,備庫的read_only是否關(guān)閉,這些heartbeat都不管。我們想象一下,主庫上應(yīng)用提交了一筆訂單,結(jié)果發(fā)生了切換,這筆訂單沒有同步到備庫上,賣家也就損失了一個銷售單,對客戶,對公司都是非常大的影響。
當(dāng)然,自動切換也不能全盤否定,它能夠更快速的將應(yīng)用切換到新的熱備份備庫上,應(yīng)用的不可用時間大大縮短。只是我們要好好利用這一把雙刃劍,仔細(xì)評估它的影響,降低或者去除副作用,讓它為我們服務(wù)。第9條,仔細(xì)一點(diǎn),偏執(zhí)一點(diǎn),檢查,檢查,再檢查。之前我跟一個資深的運(yùn)維學(xué)習(xí)線上操作的時候,覺得這家伙有點(diǎn)變態(tài),他在做一個變更的時候,會先提前一兩周發(fā)送郵件并電話手機(jī)的通知相關(guān)人;在測試機(jī)上寫好腳本,召集大家review操作步驟和腳本;測試完成以后拷貝到生產(chǎn)環(huán)境;登錄對應(yīng)機(jī)器,“打開,關(guān)閉,打開,關(guān)閉”該腳本;跟相關(guān)人員再次確認(rèn)執(zhí)行的操作,順序,時間點(diǎn),可能的影響和回滾是否都準(zhǔn)備好了;執(zhí)行前還要退出這個機(jī)器,然后再登錄進(jìn)去,“打開,關(guān)閉”腳本;最后才在后臺運(yùn)行腳本,在另外一個窗口登錄著,隨時ps和查看結(jié)果輸出。期間姿勢端正,呼吸急促而均勻,眼神凝重。操作的人不覺得累,倒是一邊學(xué)習(xí)的人很累。
當(dāng)我做到一定程度,我也開始這樣了。醫(yī)學(xué)上,這種好像叫做強(qiáng)迫癥。唉…,提前通知會讓大家都有準(zhǔn)備,也避免了臨時相關(guān)人員過來說這個操作和其他操作有依賴需要調(diào)整操作時間的問題;召集大家review步驟和腳本是為了讓大家一起來看看整個過程中還有哪些依賴沒有考慮到或者哪些細(xì)節(jié)沒有注意到,三個臭皮匠頂一個諸葛亮在運(yùn)維來說是金科玉律;“打開,關(guān)閉,打開,關(guān)閉”是為了一再確認(rèn)腳本拷貝過來是否正確,目錄時候正確,思考在測試環(huán)境運(yùn)行和在生產(chǎn)環(huán)境運(yùn)行有什么不一樣的;退出再登錄機(jī)器是為了確認(rèn)我登錄的機(jī)器確實(shí)沒有錯;在后臺運(yùn)行是擔(dān)心網(wǎng)絡(luò)突然中斷,我的腳本運(yùn)行到一半怎么辦;調(diào)整呼吸和端正姿勢是為了對這個操作的敬重,對自己工作和運(yùn)維工作的尊重。
以MySQL使用flash卡為例吧。flash算是一個比較新的事務(wù),提供的IO比普通磁盤是幾個數(shù)量級的提升。要想在生產(chǎn)環(huán)境使用,首先我們需要對他進(jìn)行詳盡的評估和破壞性測試,設(shè)置各種參數(shù),考慮他們在各種場景下使用的配置;24小時不間斷的進(jìn)行半個月
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年護(hù)士資格考試醫(yī)患交流溝通技巧全解
- 2026年能源行業(yè)三控一優(yōu)操作規(guī)程測試題
- 數(shù)據(jù)庫設(shè)計(jì)與優(yōu)化詳解指南
- 2026年反洗錢測試題及答案
- CCAA - 2019年05月質(zhì)量管理體系基礎(chǔ)答案及解析 - 詳解版(80題)
- 雨課堂學(xué)堂在線學(xué)堂云《敦煌舞基礎(chǔ)訓(xùn)練(西北民族)》單元測試考核答案
- 2025年漢源縣幼兒園教師招教考試備考題庫帶答案解析(必刷)
- 2024年龍山縣幼兒園教師招教考試備考題庫附答案解析(必刷)
- 2024年西藏藏醫(yī)藥大學(xué)馬克思主義基本原理概論期末考試題含答案解析(必刷)
- 2025年弋陽縣招教考試備考題庫帶答案解析
- GB/T 46886-2025智能檢測裝備通用技術(shù)要求
- 護(hù)理護(hù)理科研與論文寫作
- 2025年健康體檢中心服務(wù)與質(zhì)量管理手冊
- 2025-2030中國駱駝市場前景規(guī)劃與投資運(yùn)作模式分析研究報告
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會成熟人才招聘備考題庫及完整答案詳解一套
- 鋼結(jié)構(gòu)玻璃雨棚安裝施工方案
- 鄂爾多斯輔警考試題型及答案
- 《中華人民共和國危險化學(xué)品安全法》全套解讀
- 房建工程電氣安裝施工方案
- 同等學(xué)力申碩公共管理真題及答案
- 2025初三英語中考英語滿分作文
評論
0/150
提交評論