日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle浅谈第六回

發(fā)布時間:2025/3/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle浅谈第六回 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

Oracle的實例是由實例和一組數(shù)據(jù)庫文件組成的,實例則是Oracle開辟的內(nèi)存區(qū)和一組后臺進(jìn)程組成的。

體驗過Oracle內(nèi)存區(qū)后,我們來體會一下后臺進(jìn)程,因為Windows環(huán)境中Oracle是多線程形式的,所以我們登錄Linux/Unix環(huán)境,UNIX環(huán)境下是多進(jìn)程的,方便查看。

方框標(biāo)記的部分是剛才熟悉的幾個進(jìn)程,Oracle還有其他很多相關(guān)的進(jìn)程,可以看出Oracle的實例名叫itemtest,具體可以在數(shù)據(jù)庫中查看到,如下:

LOCAL=NO的部分,這表示是非Oracle本身的后臺進(jìn)程,是別的用戶通過監(jiān)聽,連接該數(shù)據(jù)庫進(jìn)行訪問的

LOCAL=NO的這些進(jìn)程如果被殺了,數(shù)據(jù)庫不會崩潰,只是某些應(yīng)用正好連上來操作數(shù)據(jù)庫,被強(qiáng)制提出數(shù)據(jù)庫了,而那些LGWR和DBWR進(jìn)程被殺了,那么數(shù)據(jù)庫機(jī)會立即崩潰,操作一定要小心,這里少了一個進(jìn)程,即ARCH,這是歸檔進(jìn)程,當(dāng)日志循環(huán)寫入過程中會出現(xiàn)下一個日志已經(jīng)被寫過的情況,再繼續(xù)寫將會覆蓋其內(nèi)容,需要將這些即將被覆蓋的內(nèi)容寫出到磁盤里去形成歸檔日志文件,這樣日志記錄就不會丟失,將來數(shù)據(jù)庫就可以從這些日志文件和歸檔文件中進(jìn)行數(shù)據(jù)庫的恢復(fù)處理。不過這個歸檔并非是必要的,因為有的數(shù)據(jù)庫只是用來測試的,對安全性要求不高,此時就可以考慮把歸檔進(jìn)程給關(guān)閉,數(shù)據(jù)庫少做一件事,效率就會提升。

查看歸檔進(jìn)程是否打開:

Database log mode 表示當(dāng)前數(shù)據(jù)庫時非歸檔的。

更改數(shù)據(jù)庫的歸檔模式比較麻煩,需要重啟數(shù)據(jù)庫,將數(shù)據(jù)庫置于mount狀態(tài)后,輸入alter database archivelog(如果是歸檔改為非歸檔,這里是alter database noarchivelog),然后在開啟數(shù)據(jù)庫alter database open,才可以將數(shù)據(jù)庫改為歸檔,具體步驟如下:

現(xiàn)在ARCH進(jìn)程也可以查詢到了,發(fā)現(xiàn)ARCH這個進(jìn)程是允許多進(jìn)程的,

數(shù)據(jù)庫時如何啟動和關(guān)閉的,這可以說是數(shù)據(jù)庫最常見的操作了,下面我們來看一下數(shù)據(jù)庫啟動的具體步驟,首先看體系結(jié)構(gòu)圖的數(shù)據(jù)庫部分

參數(shù)文件和控制文件和數(shù)據(jù)庫的啟動與關(guān)閉時息息相關(guān)的,數(shù)據(jù)庫的啟動可以分為三個階段,分別是nomount、mount和open,我們在啟動的時候直接輸入startup啟動,也可以分成startup nomount、startup mount和alter database open三步分別啟動,下面一次描述三個步驟:

? ? 1. startup nomount階段:

????? ? Oracle必須讀取到數(shù)據(jù)庫的參數(shù)文件(PFILE或者SPFILE),如果讀不到參數(shù)文件,數(shù)據(jù)庫根本無法啟動成功,如果讀取到參數(shù)文件,將會完成一個重要的事,就是根據(jù)參數(shù)上的內(nèi)存分配策略分配相應(yīng)的內(nèi)存區(qū)域,并啟動相應(yīng)的后臺進(jìn)程,換而言之,就是創(chuàng)建了instance實例,

????? ? 為了保證數(shù)據(jù)庫可以動態(tài)的修改參數(shù),從Oracle9i 起,Oracle引進(jìn)了SPFILE參數(shù)來替代之前僅有的單一PFILE的一種情況,具體在數(shù)據(jù)庫開啟后可以執(zhí)行如下命令來了解,如下就表示是SPFILE啟動的。

一般來說,Oracle9i 后的版本數(shù)據(jù)庫是這樣一個情況,首先查找spfile文件,查找不到了在查找INIT.ORA文件,在查不到就報錯了,nomount失敗。

? ? 2. startup mount 階段

????? ? 實例已經(jīng)創(chuàng)建,Oracle繼續(xù)根據(jù)參數(shù)文件上描述的控制文件的名稱和位置,去查找控制文件,一旦找到立即鎖定該控制文件,控制文件里記錄了數(shù)據(jù)庫中數(shù)據(jù)文件、日志文件、檢查點(diǎn)信息等非常重要的信息,所以O(shè)racle成功鎖定控制文件就表示數(shù)據(jù)庫mount成功,為實例和數(shù)據(jù)庫之前橋梁的搭建打下了基礎(chǔ)。

? ? 3. alter database open 階段

????? ? 根據(jù)控制文件記錄的信息,定位到數(shù)據(jù)庫文件、日志文件等,從而正式開通了實例和數(shù)據(jù)庫之間的橋梁。

總結(jié)起來,nomount階段僅需要一個參數(shù)文件就可以啟動成功,mout階段能夠正常讀取到控制文件才能成功,而open階段需要保證所有的數(shù)據(jù)文件和日志文件等需要和控制文件里記錄的名稱和位置一致,能被鎖定訪問的同時還要保證沒有損壞,否則數(shù)據(jù)庫的open階段就不可能成功。

文件的體會:

? ? 沒有參數(shù)文件,實例無法創(chuàng)建,數(shù)據(jù)庫無法nomount成功;沒有控制文件,數(shù)據(jù)庫無法mount;沒有數(shù)據(jù)文件數(shù)據(jù)庫無法打開使用(此外,沒有了數(shù)據(jù)文件,那數(shù)據(jù)沒有地方保存,數(shù)據(jù)庫也就失去意義了);沒有日志和歸檔文件數(shù)據(jù)庫就失去了保護(hù)傘,數(shù)據(jù)庫變得很不安全。因此,所有的這些文件都非常重要。

? ? 下面我們來感受一下Oracle數(shù)據(jù)庫中的這些參數(shù)文件、控制文件、數(shù)據(jù)文件、日志文件、歸檔文件存在數(shù)據(jù)庫主機(jī)的什么位置,又都是通過什么方法查詢到的:

????

?

?

?

?

?

?

?

?

?

?

?

轉(zhuǎn)載于:https://my.oschina.net/hcy8888/blog/902053

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的Oracle浅谈第六回的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。