真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何維護(hù)oracle的簡(jiǎn)單介紹

Oracle數(shù)據(jù)庫(kù)無響應(yīng)故障處理方式

Oracle數(shù)據(jù)庫(kù)無響應(yīng)故障處理方式

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、達(dá)坂城網(wǎng)絡(luò)推廣、小程序開發(fā)、達(dá)坂城網(wǎng)絡(luò)營(yíng)銷、達(dá)坂城企業(yè)策劃、達(dá)坂城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供達(dá)坂城建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

Oracle數(shù)據(jù)庫(kù)無響應(yīng)故障,簡(jiǎn)單地講就是數(shù)據(jù)庫(kù)實(shí)例不能響應(yīng)客戶端發(fā)起的請(qǐng)求,客戶端提交一個(gè)SQL后,就一直處于等待數(shù)據(jù)庫(kù)實(shí)例返回結(jié)果的狀態(tài)。更嚴(yán)重的現(xiàn)象是客戶端根本不能連接到數(shù)據(jù)庫(kù),發(fā)起一個(gè)連接請(qǐng)求后,一直處于等待狀態(tài)。Oracle數(shù)據(jù)庫(kù)無響應(yīng)故障怎么處理呢?下面跟我一起來學(xué)習(xí)Oracle數(shù)據(jù)庫(kù)無響應(yīng)故障的處理方法吧!

無響應(yīng)的故障現(xiàn)象一般有以下幾種:

1.Oracle的進(jìn)程在等待某個(gè)資源或事件

這種現(xiàn)象一般可以從V$SESSION_WAT、V$LATCH、V$LATCHHOLDER等動(dòng)態(tài)視圖中檢查進(jìn)程正在等待的資源或事件,而被等待的資源或事件,一直都不能被獲取,甚至是很長(zhǎng)時(shí)間都不可獲得。如果這個(gè)正在等待的進(jìn)程持有了其他的資源,則會(huì)引起其他的進(jìn)程等待,這樣就很可能引起實(shí)例中大范圍的會(huì)話發(fā)生等待。由于進(jìn)程在等待資源或事件時(shí),通常都處于SLEEP狀態(tài),消耗的CPU資源非常少(在等待latch時(shí)要稍微多消耗一些CPU資源),所以從OS來看,CPU的消耗并不高,甚至是非常低。

這種因?yàn)榈却鸬膫€(gè)別進(jìn)程Hang,相對(duì)比較容易處理。

2. OracleProcess Spins

所謂Spin,就是指Oracle進(jìn)程中的代碼在執(zhí)行某個(gè)過程時(shí),陷入了循環(huán)。在V$SESSION視圖中,往往可以看到Hang住的會(huì)話,一直處于“ACTIVE”狀態(tài)。對(duì)于這樣的會(huì)話,用“alter system kill session ‘sid,serial#’”命令也不能完全斷開會(huì)話,會(huì)話只能被標(biāo)記為“killed”,會(huì)話會(huì)繼續(xù)消耗大量的CPU。進(jìn)程Spins由于是在做循環(huán),CPU的消耗非常大,從OS上明顯可以看到這樣的進(jìn)程,通常會(huì)消耗整個(gè)CPU的資源。

而對(duì)于這樣的Hang住的會(huì)話,處理起來相對(duì)比較復(fù)雜,并且為了從根本上解決問題,需要超過DBA日常維護(hù)所需要的技能。

從故障范圍來看,無響應(yīng)故障可以分為以下幾種情況:

1. 單個(gè)或部分會(huì)話(進(jìn)程)Hang住

這種情況屬于小范圍的故障,業(yè)務(wù)影響相對(duì)較小,一般來說只會(huì)影響業(yè)務(wù)系統(tǒng)的個(gè)別模塊。在一個(gè)多應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)上面,如果Hang住的會(huì)話比較多,則影響的可能是其中的一個(gè)應(yīng)用系統(tǒng)。這里有一個(gè)例外,如果Hang住的進(jìn)程是系統(tǒng)后臺(tái)進(jìn)程,如pmon、smon等,則影響的范圍就非常大了,最終甚至?xí)绊懻麄€(gè)數(shù)據(jù)庫(kù)及所有應(yīng)用系統(tǒng)。還有值得注意的是,即使是少部分會(huì)話Hang住,也要及時(shí)處理,否則極有可能會(huì)擴(kuò)散到整個(gè)系統(tǒng)。

2. 單個(gè)數(shù)據(jù)庫(kù)實(shí)例Hang住

這種情況造成的影響非常大。在這個(gè)實(shí)例上的所有應(yīng)用系統(tǒng)均受到嚴(yán)重影響,并且在找到根源并最終解決問題之前,數(shù)據(jù)庫(kù)實(shí)例往往須要重啟。

3. OPS或RAC中的多個(gè)實(shí)例或所有實(shí)例都Hang住

在這種情況下,即使是OPS或RAC,都已經(jīng)沒辦法提供高可用特性了。使用這個(gè)數(shù)據(jù)庫(kù)的所有應(yīng)用系統(tǒng)將不能繼續(xù)提供服務(wù),這種情況往往須要重啟。

無響應(yīng)故障成因分析

Oracle數(shù)據(jù)庫(kù)無響應(yīng),一般主要由以下幾種原因引起:

1. 數(shù)據(jù)庫(kù)主機(jī)負(fù)載過高,嚴(yán)重超過主機(jī)承受能力

比如應(yīng)用設(shè)計(jì)不當(dāng),數(shù)據(jù)庫(kù)性能低下,活動(dòng)會(huì)話數(shù)的大量增加,導(dǎo)致數(shù)據(jù)庫(kù)主機(jī)的負(fù)載迅速增加,數(shù)據(jù)庫(kù)不能正常操作,并最終Hang住;主機(jī)物理內(nèi)存嚴(yán)重不足,引起大量的換頁,特別是在SGA中的內(nèi)存被大量換出到虛擬內(nèi)存時(shí),數(shù)據(jù)庫(kù)實(shí)例往往就會(huì)Hang住。

2. 日常維護(hù)不當(dāng)、不正確的操作引起數(shù)據(jù)庫(kù)Hang住

比如歸檔日志的存儲(chǔ)空間滿,導(dǎo)致數(shù)據(jù)庫(kù)不能歸檔,引起數(shù)據(jù)庫(kù)Hang住;在一個(gè)大并發(fā)的繁忙的系

統(tǒng)上,對(duì)DML操作比較多的大表進(jìn)行move、增加外鍵約束等操作也可能使系統(tǒng)在短時(shí)間內(nèi)負(fù)載大幅升高,并引起數(shù)據(jù)庫(kù)系統(tǒng)Hang住;不正確的資源計(jì)劃(Resource Plan)配置,使進(jìn)程得不到足夠的CPU等。

3. Oracle數(shù)據(jù)庫(kù)的Bug

幾乎每個(gè)版本都存在著會(huì)導(dǎo)致數(shù)據(jù)庫(kù)系統(tǒng)Hang住的Bug,這些Bug會(huì)在一些特定的條件下觸發(fā),特別是在RAC數(shù)據(jù)庫(kù)中,引起數(shù)據(jù)庫(kù)Hang住的Bug比較多。

4. 其他方面的一些原因

比如在RAC數(shù)據(jù)庫(kù)中,如果一個(gè)節(jié)點(diǎn)退出或加入到RAC的過程中,當(dāng)進(jìn)行Resource Reconfiguration時(shí),會(huì)使系統(tǒng)凍結(jié)一段時(shí)間,也有可能使系統(tǒng)Hang住。

以上所描述的幾種常見的會(huì)導(dǎo)致Oracle數(shù)據(jù)庫(kù)實(shí)例Hang住的原因中,大部分的情況是可以避免的,只要維護(hù)得當(dāng),一般不會(huì)出現(xiàn)這種故障。對(duì)于Oracle數(shù)據(jù)庫(kù)Bug所導(dǎo)致的數(shù)據(jù)庫(kù)無響應(yīng)故障,由于是在特定的情況下才會(huì)觸發(fā),所以如果能夠盡量對(duì)數(shù)據(jù)庫(kù)打上最新版本的補(bǔ)丁,并且熟悉當(dāng)前版本中會(huì)導(dǎo)致系統(tǒng)Hang住的Bug以及觸發(fā)條件,就能夠最大限度地避免這種故障的發(fā)生,提高系統(tǒng)的可用性。

那么,在數(shù)據(jù)庫(kù)Hang住的情況下,如何去分析并發(fā)現(xiàn)導(dǎo)致問題的根源?一方面,由于系統(tǒng)Hang住會(huì)導(dǎo)致業(yè)務(wù)系統(tǒng)不可用,為了能夠盡快地恢復(fù)業(yè)務(wù),須快速地判斷問題所在,然后Kill掉引起故障的會(huì)話和進(jìn)程,或者數(shù)據(jù)庫(kù)實(shí)例不得不重啟以迅速恢復(fù)業(yè)務(wù);但另一方面,如果只是重啟數(shù)據(jù)庫(kù)或Kill會(huì)話和進(jìn)程來解決問題,在很多情況下是治標(biāo)不治本的辦法,在以后故障隨時(shí)可能會(huì)出現(xiàn)。如何在二者之間進(jìn)行抉擇呢?對(duì)于數(shù)據(jù)庫(kù)Hang故障的處理,首先是盡可能地收集到系統(tǒng)Hang住時(shí)的狀態(tài)數(shù)據(jù),然后盡快地恢復(fù)業(yè)務(wù),恢復(fù)業(yè)務(wù)后分析收集到的數(shù)據(jù),找到數(shù)據(jù)庫(kù)系統(tǒng)Hang住的真正原因,然后再進(jìn)行相應(yīng)的處理。下一節(jié)將詳細(xì)描述數(shù)據(jù)庫(kù)系統(tǒng)Hang住后的處理流程。

無響應(yīng)故障處理流程

對(duì)于Oracle無響應(yīng)故障的處理,我們可以按下圖所示的流程進(jìn)行。

值得注意的是,上圖并不是一個(gè)完整的Oracle數(shù)據(jù)庫(kù)故障處理流程圖,只是處理Oralce數(shù)據(jù)庫(kù)無響應(yīng)這一類特定的故障的流程,只列出了針對(duì)這一特定類型故障處理時(shí)的關(guān)鍵處理點(diǎn)。不過既然是故障,所以這類故障的處理流程與其他故障的處理流程,有著非常相似的地方。

下面是整個(gè)流程的詳細(xì)說明:

1. 在出現(xiàn)數(shù)據(jù)庫(kù)無響應(yīng)故障后,首先確認(rèn)系統(tǒng)的影響范圍,如上節(jié)所描述的',是部分業(yè)務(wù)系統(tǒng)或模塊還是所有的業(yè)務(wù)系統(tǒng)都受影響,是不是整個(gè)實(shí)例或多個(gè)實(shí)例都無響應(yīng)。同時(shí)應(yīng)詢問系統(tǒng)維護(hù)和開發(fā)人員,受影響的系統(tǒng)在出現(xiàn)故障前是否有過變動(dòng),包括主機(jī)硬件、操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)以及應(yīng)用等。有時(shí)一個(gè)細(xì)小的變動(dòng)就可能導(dǎo)致出現(xiàn)數(shù)據(jù)庫(kù)Hang住這樣嚴(yán)重的故障。曾經(jīng)遇到一個(gè)庫(kù),應(yīng)用只是修改了一個(gè)SELECT語句就導(dǎo)致了數(shù)據(jù)庫(kù)Hang住。

2. 為了避免由于網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)監(jiān)聽或客戶端因素影響分析,建議都登錄到主機(jī)上進(jìn)行操作。

3. 如果主機(jī)不能登錄(為了避免干擾流程主線,這里不討論如網(wǎng)絡(luò)問題這樣也會(huì)導(dǎo)致不能連接的故障),嘗試關(guān)閉出現(xiàn)問題的業(yè)務(wù)系統(tǒng),甚至是所有的業(yè)務(wù)系統(tǒng)。如果關(guān)閉了所有的業(yè)務(wù)系統(tǒng)之后,仍然不能連接,則只有考慮重新啟動(dòng)數(shù)據(jù)庫(kù)主機(jī)。在數(shù)據(jù)庫(kù)主機(jī)重新啟動(dòng)后,使用操作系統(tǒng)工具或OSW等長(zhǎng)期監(jiān)控操作系統(tǒng)的資源使用,同時(shí)監(jiān)控Oracle數(shù)據(jù)庫(kù)的性能和等待等。

4. 登錄上主機(jī)后,先用top、topas等命令簡(jiǎn)單觀察一下系統(tǒng)??纯聪到y(tǒng)的CPU使用、物理內(nèi)存和虛擬內(nèi)存的使用、IO使用等情況。

5. 使用SQLPLUS連接數(shù)據(jù)庫(kù),如果不能連接,則只能從操作系統(tǒng)上觀察系統(tǒng)中是否有異常的現(xiàn)象,比如占用CPU過高的進(jìn)程。使用gdb、dbx等debugger工具對(duì)數(shù)據(jù)庫(kù)進(jìn)行system state dump;使用strace、truss等工具檢查異常進(jìn)程的系統(tǒng)調(diào)用;使用pstack、procstack等工具察看異常進(jìn)程的call stack等。

6. 使用SQLPLUS連接上數(shù)據(jù)庫(kù)后,進(jìn)行hanganalyze、system state dump等操作;或檢查等待事件、異常會(huì)話等正在執(zhí)行的SQL等待。

7. 找到故障產(chǎn)生的原因,如果暫時(shí)找不到原因,盡量收集數(shù)據(jù)。

8.確良如果應(yīng)用急須恢復(fù),可通過Kill會(huì)話、重啟數(shù)據(jù)庫(kù)實(shí)例等方式,先恢復(fù)應(yīng)用。

9. 根據(jù)最終診斷結(jié)果,對(duì)數(shù)據(jù)庫(kù)升級(jí)打補(bǔ)丁,或者修改應(yīng)用等方式從根本上解決問題。

怎樣避免數(shù)據(jù)庫(kù)出現(xiàn)無響應(yīng)故障

作為Oracle數(shù)據(jù)庫(kù)DBA,除了處理故障之外,更重要的是如何預(yù)防故障的發(fā)生。根據(jù)前面對(duì)數(shù)據(jù)庫(kù)無響應(yīng)故障的成因分析,在日常的維護(hù)工作中,須做到以下幾點(diǎn):

1. 進(jìn)行正確的維護(hù)操作

很多的數(shù)據(jù)庫(kù)無響應(yīng)故障都是由于不正確的維護(hù)操作引起的。應(yīng)避免在業(yè)務(wù)高峰期做大的維護(hù)操作,比如像move、加主外鍵約束等會(huì)長(zhǎng)時(shí)間鎖表的操作。如果的確需要,盡量使用正確的操作方法。比如用ONLINE方式重建索引;建主鍵、唯一鍵約束時(shí)先建索引,然后在建約束時(shí)指定新建的索引,等等。也就是保證系統(tǒng)的并發(fā)性、可伸縮性,避免系統(tǒng)串行操作的出現(xiàn)。

2. 優(yōu)化應(yīng)用設(shè)計(jì),優(yōu)化數(shù)據(jù)庫(kù)性能

為避免性能問題導(dǎo)致在業(yè)務(wù)高峰期數(shù)據(jù)庫(kù)不能及時(shí)有效處理來自業(yè)務(wù)的請(qǐng)求,甚至于完全Hang住。對(duì)于數(shù)據(jù)庫(kù)中存在串行訪問的部分進(jìn)行優(yōu)化,比如latch、enqueue,還包括不合理的sequence設(shè)計(jì)等。特別是在RAC數(shù)據(jù)庫(kù)中,嚴(yán)重串行訪問等待往往更容易引起嚴(yán)重的性能問題。優(yōu)化應(yīng)用設(shè)計(jì),使數(shù)據(jù)庫(kù)具有更好的可伸縮性和并行處理能力,能夠有效地避免性能問題引起的數(shù)據(jù)庫(kù)Hang住。

3. 利用監(jiān)控系統(tǒng)隨時(shí)監(jiān)控系統(tǒng)負(fù)載

遇到系統(tǒng)負(fù)載過高,內(nèi)存不足,OS中虛擬內(nèi)存換頁很頻繁等情況時(shí),及時(shí)采取措施;監(jiān)控Oracle數(shù)據(jù)庫(kù)的核心進(jìn)程,如pmon、smon等,看是否有異常,如過高的CPU消耗。出現(xiàn)異常應(yīng)立即處理;監(jiān)控歸檔空間和日志切換;監(jiān)控?cái)?shù)據(jù)庫(kù)中的等待事件,比如是否有大量的enqueue、log file switch (archiving needed)、resmgr:become active等待事件等。

4. 為數(shù)據(jù)庫(kù)打上補(bǔ)丁

很多的無響應(yīng)故障是由于Oracle的Bug引起的,數(shù)據(jù)庫(kù)DBA應(yīng)關(guān)注當(dāng)前版本中有哪些Bug會(huì)導(dǎo)致數(shù)據(jù)庫(kù)Hang住,盡量為數(shù)據(jù)庫(kù)打上解決這些Bug的補(bǔ)丁。

;

Oracle如何維護(hù)索引

對(duì)三個(gè)字段建立索引:

create index Stuname on student(name);

create index Stusex on student(sex);

create index Stugrade on student(grade);

注意的問題,考慮是不是要建立唯一索引(unique),如果有學(xué)號(hào)的話,可以考慮建立唯一索引引。

再就是對(duì)經(jīng)常查詢,但又相對(duì)穩(wěn)定的可以建立聚簇索引,提高查詢效率

如何維護(hù)ORACLE數(shù)據(jù)庫(kù)一致性

選擇開始菜單中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打開【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份驗(yàn)證建立連接。

在【對(duì)象資源管理器】窗口中展開服務(wù)器,然后選擇【數(shù)據(jù)庫(kù)】節(jié)點(diǎn)

右鍵單擊【數(shù)據(jù)庫(kù)】節(jié)點(diǎn),從彈出來的快捷菜單中選擇【新建數(shù)據(jù)庫(kù)】命令。


網(wǎng)頁名稱:如何維護(hù)oracle的簡(jiǎn)單介紹
網(wǎng)頁路徑:http://weahome.cn/article/hecopg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部