Oracle 11g R2網(wǎng)絡(luò)偵聽(tīng)器實(shí)驗(yàn)
單實(shí)例環(huán)境(不是RAC),偵聽(tīng)器和實(shí)例必須要在同一臺(tái)機(jī)器上,。兩臺(tái)機(jī)器通信必須使用一個(gè)網(wǎng)絡(luò)協(xié)議才能進(jìn)行通信,假如瀏覽網(wǎng)頁(yè)需要使用http協(xié)議,,遠(yuǎn)程連接需要使用RDP/ssh/telnet等等,。 有一臺(tái)oracle服務(wù)器,有個(gè)客戶(hù)端要連接到oracle服務(wù)器上,,兩臺(tái)機(jī)器通信就要使用oracleNET協(xié)議,,和以上的協(xié)議是一樣的。有協(xié)議就要有相應(yīng)的端口,,所以oracleNET有個(gè)默認(rèn)的偵聽(tīng)端口1521. 其實(shí)配置oracle網(wǎng)絡(luò)就是配置oracle偵聽(tīng)器,,偵聽(tīng)器很重要,如果沒(méi)有配置偵聽(tīng)器,,客戶(hù)端是無(wú)法連接到oracle服務(wù)器上面的,。其實(shí)即使是在本地連接oracle服務(wù)器,偵聽(tīng)器也是必須要運(yùn)行的,。客戶(hù)端遠(yuǎn)程連接到oracle服務(wù)器時(shí)使用oracleNet協(xié)議,,是封裝了tcp/ip 協(xié)議。如果是直接在本地連接數(shù)據(jù)庫(kù)用的是IPC,。IPC是指<進(jìn)程間的通信>,。 偵聽(tīng)器是用來(lái)接收外面的請(qǐng)求,在將外面的請(qǐng)求通過(guò)服務(wù)器進(jìn)程交給實(shí)例,,所以實(shí)例必須要向偵聽(tīng)器注冊(cè),。如果監(jiān)聽(tīng)器不知道有相應(yīng)的實(shí)例肯定是不行的--即讓偵聽(tīng)器知道有 實(shí)例可以連接。oracle默認(rèn)偵聽(tīng)器的端口是1521,。
偵聽(tīng)器的配置文件存放在:$ORACLE_HOME/network/admin/中的instener.ora是偵聽(tīng)器的配置文件 如果listerner的端口使用默認(rèn)的1521的話(huà),,可以沒(méi)有listener.ora,但是建議最好不要?jiǎng)h除這個(gè)文件,。 1.1. 創(chuàng)建偵聽(tīng)器可以通過(guò)修改listener.ora來(lái)配置偵聽(tīng)器以外,,還可以使用其他工具來(lái)配置偵聽(tīng)器 1. netca 2. netmgr 使用netca添加偵聽(tīng)器的方法
查看默認(rèn)偵聽(tīng)器的狀態(tài)
查看LISTENER1的狀態(tài)
現(xiàn)在偵聽(tīng)器已經(jīng)配置好了,如何通過(guò)遠(yuǎn)程客戶(hù)端連接到oracle服務(wù)器呢,? 1.2. 遠(yuǎn)程客戶(hù)端連接方式遠(yuǎn)程客戶(hù)端連接oracle服務(wù)器可以使用以下兩個(gè)方式: 1.easy connect: conn user/password@ip:port/orcl as sysdba 2.tnsnames: conn user/password@XX 使用easy connect方式遠(yuǎn)程連接oracle服務(wù)器 客戶(hù)端是win7系統(tǒng),,需要安裝oracle客戶(hù)端程序
刪除listener.ora文件中的標(biāo)識(shí)的行
停止偵聽(tīng)器服務(wù) [oracle@orclsrv admin]$ lsnrctl stop 啟動(dòng)偵聽(tīng)器服務(wù) [oracle@orclsrv admin]$ lsnrctl start 再去連接實(shí)例時(shí),就無(wú)法連接,,提示沒(méi)有listener.
將偵聽(tīng)器還原到?jīng)]有刪除之前的狀態(tài),,然后重啟服務(wù)lsnrctl stop/start
使用netmgr工具
刪除listener1偵聽(tīng)器,單擊左側(cè)“X”按鈕
可以使用easy connect和tnsnames的方式連接
Tnsnames連接方法:<推薦的客戶(hù)端連接方式> conn user/password@XX Tnsnames涉及到一個(gè)文件:tnsnames.ora是一個(gè)客戶(hù)端的工具,,將tnsnames.ora拷貝到oracle客戶(hù)端安裝目錄中,。
使用記事本打開(kāi)tnsnames.ora文件,,原始內(nèi)容如下
對(duì)原始內(nèi)容中如圖所示部分復(fù)制并粘貼到tnsnames.ora中的空白位置,進(jìn)行修改
修改為
然后保存退出,。 連接實(shí)例
使用netmgr添加監(jiān)聽(tīng)器
使用listener1偵聽(tīng)器連接實(shí)例,,結(jié)果是無(wú)法連接到實(shí)例,因?yàn)閷?shí)例orcl并沒(méi)有在listener1偵聽(tīng)器上注冊(cè),。默認(rèn)情況下orcl實(shí)例注冊(cè)到了默認(rèn)的偵聽(tīng)器1521上面,所以目前只能使用1521來(lái)連接,。
實(shí)例注冊(cè)到偵聽(tīng)器的方法有: 2 靜態(tài)注冊(cè):在listener.ora文件中手工指定 2 動(dòng)態(tài)注冊(cè):pmon進(jìn)程每隔一分鐘將服務(wù)名和實(shí)例名注冊(cè)到偵聽(tīng)器上面 將實(shí)例注冊(cè)到偵聽(tīng)器的方法
使用alter system register可以將實(shí)例注冊(cè)到偵聽(tīng)器上,。這個(gè)命令將實(shí)例注冊(cè)到哪個(gè)偵聽(tīng)器上了呢?這條命令將實(shí)例注冊(cè)到了默認(rèn)的偵聽(tīng)器上面了,。
ORCL是tnsnames中的解析名:即使用ORCL就能夠解析出(ADDRESS = (PROTOCOL = TCP)(HOST = orclsrv)(PORT = 1521))這個(gè)地址,。 SQL>alter system set local_listener="(ADDRESS = (PROTOCOL = TCP)(HOST = orclsrv)(PORT = 1521))";與alter system set local_listener=ORCL是等價(jià)的。
將實(shí)例注冊(cè)到listener1上面 SQL>alter system set local_listener="(ADDRESS = (PROTOCOL = TCP)(HOST = orclsrv)(PORT = 1522))";
此時(shí)使用默認(rèn)的偵聽(tīng)器就無(wú)法連接到實(shí)例了,。
修改tnsnames.ora中的文件
SQL>alter system set local_listener=LISTENER2;
系統(tǒng)已更改,。 查看實(shí)例注冊(cè)到了哪個(gè)偵聽(tīng)器上面:show parameter local;
1.3. 管理控制文件oracle數(shù)據(jù)庫(kù)控制文件是非常重要的文件,,它是數(shù)據(jù)庫(kù)創(chuàng)建的時(shí)候自動(dòng)生成的二進(jìn)制文件,,其中記錄了數(shù)據(jù)庫(kù)的狀態(tài)信息,主要包括以下內(nèi)容 ? 數(shù)據(jù)庫(kù)的名稱(chēng),,一個(gè)控制文件只能屬于一個(gè)數(shù)據(jù)庫(kù) ? 數(shù)據(jù)庫(kù)創(chuàng)建時(shí)間 ? 數(shù)據(jù)文件的名稱(chēng),、位置、聯(lián)機(jī),、脫機(jī)狀態(tài)信息 ? 重做日志文件的名稱(chēng),、位置及歸檔信息 ? 所有表空間信息 ? 當(dāng)前日志序列號(hào) ? 最近檢查點(diǎn)信息 控制文件在數(shù)據(jù)庫(kù)啟動(dòng)的Mount階段被讀取,在數(shù)據(jù)庫(kù)啟動(dòng)時(shí)首先使用默認(rèn)規(guī)則找到并打開(kāi)參數(shù)文件,,在參數(shù)文件中含有控制文件的位置信息,,打開(kāi)控制文件后,會(huì)通過(guò)控制文件中記錄的各種數(shù)據(jù)庫(kù)文件的位置打開(kāi)數(shù)據(jù)庫(kù),,從而啟動(dòng)數(shù)據(jù)庫(kù)到可用狀態(tài),。當(dāng)成功啟動(dòng)數(shù)據(jù)庫(kù)后,在數(shù)據(jù)庫(kù)的運(yùn)行過(guò)程中,,數(shù)據(jù)庫(kù)服務(wù)器可以不斷的修改控制文件中的內(nèi)容,,所以在數(shù)據(jù)庫(kù)被打開(kāi)的階段,控制文件必須是可讀寫(xiě)的,。但是其他任何用戶(hù)都無(wú)法修改控制文件,,只有數(shù)據(jù)庫(kù)的實(shí)例才可以修改控制文件中的信息。 查看控制文件信息,,可以從V$controlfile視圖中查看控制文件信息,,控制文件名稱(chēng) 除了從V$controlfile視圖查看控制文件信息外,還可以從V$parameter視圖中查看
如何查看控制文件中所存的內(nèi)容信息 可以使用V$controlfile_record_section
查看V$controlfile_record_section中type,record_size,records_total,records_used
從截圖當(dāng)中可可以看到控制文件中存放了創(chuàng)建數(shù)據(jù)庫(kù)的信息,、重做日志信息,、數(shù)據(jù)文件及歸檔日志文件記錄等信息。這些有價(jià)值的信息用于數(shù)據(jù)維護(hù)和管理,,很多數(shù)據(jù)字典視圖是從控制文件中獲得的信息。 1.3.1. 存儲(chǔ)多重控制文件由于控制文件非常重要,,所以要求控制文件不能只有一個(gè),,通常數(shù)據(jù)庫(kù)中控制文件要多于3個(gè),,并且存放在不同的磁盤(pán)上,這種使用控制文件的方法也稱(chēng)為控制文件的多路復(fù)用,。實(shí)現(xiàn)多重的一個(gè)方法就是通過(guò)復(fù)制控制文件到多個(gè)位置并修改初始化參數(shù)文件中的CONTROL_FILES參數(shù),,使之包含所有控制文件名稱(chēng)。需要注意,,當(dāng)存在多個(gè)控制文件時(shí),,oracle會(huì)同時(shí)更新所有的控制文件,,但是僅對(duì)CONTROL_FILES中所列舉的第一個(gè)控制文件進(jìn)行讀取操作,。 舉例說(shuō)明實(shí)現(xiàn)多路復(fù)用控制文件的方法: 數(shù)據(jù)庫(kù)狀態(tài)為打開(kāi)狀態(tài),修改SPFILE中的CONTROL_FILES參數(shù)
關(guān)閉數(shù)據(jù)庫(kù) 使用操作系統(tǒng)命令將文件復(fù)制到新的位置
重新啟動(dòng)實(shí)例
1.3.2. 備份控制文件備份控制文件 為了確保數(shù)據(jù)庫(kù)的安全,,在數(shù)據(jù)文件或日志文件位置信息發(fā)生變化時(shí),,例如新增數(shù)據(jù)文件到表空間時(shí),對(duì)控制文件進(jìn)行備份,。有兩種備份方式:備份為二進(jìn)制文件和備份為腳本文件 舉例說(shuō)明備份為二進(jìn)制文件的方法: 備份控制文件之前先查看當(dāng)前系統(tǒng)中存在幾個(gè)控制文件
備份控制文件
修改系統(tǒng)參數(shù)文件
關(guān)閉數(shù)據(jù)庫(kù)之后啟動(dòng)數(shù)據(jù)庫(kù)之后報(bào)ORA-00214錯(cuò)誤,,原因是控制文件版本不一致導(dǎo)致的,control01.ctl控制文件版本是817,control02.ctl的版本是806.
使用control01.ctl覆蓋control03.ctl,,使得控制文件版本保持一致即可,。
關(guān)閉數(shù)據(jù)庫(kù)
在重新啟動(dòng)數(shù)據(jù)庫(kù)就可以了
1.3.3. 恢復(fù)控制文件假設(shè)CONTROLD_FILES所指定的控制文件已經(jīng)損壞,但在數(shù)據(jù)字典中還能訪(fǎng)問(wèn)控制文件,,則可以采用下面的步驟進(jìn)行恢復(fù): 關(guān)閉數(shù)據(jù)庫(kù)實(shí)例
刪除控制文件
啟動(dòng)數(shù)據(jù)庫(kù)
此時(shí)數(shù)據(jù)庫(kù)的狀態(tài)是
用操作系統(tǒng)將完好的控制文件覆蓋掉損壞的控制文件
關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)
重新啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例
1.4. 管理重做日志文件重做日志也稱(chēng)聯(lián)機(jī)重做日志,。引入重做日志的目的是數(shù)據(jù)恢復(fù)。在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,用戶(hù)更改的數(shù)據(jù)會(huì)暫時(shí)存放在數(shù)據(jù)庫(kù)的高速緩沖區(qū)中,。為了提高寫(xiě)數(shù)據(jù)的速度,,并不是一旦有數(shù)據(jù)變化,就把變化的數(shù)據(jù)寫(xiě)到數(shù)據(jù)文件中,。頻繁的讀寫(xiě)磁盤(pán)文件會(huì)使數(shù)據(jù)庫(kù)系統(tǒng)效率降低,,所以要等到數(shù)據(jù)庫(kù)高速緩沖區(qū)中的數(shù)據(jù)達(dá)到一定的量或者滿(mǎn)足一定的條件時(shí),DBWR進(jìn)程才會(huì)將變化了的數(shù)據(jù)寫(xiě)到數(shù)據(jù)文件中,。這種情況下如果在DBWR把變化了的更改寫(xiě)到數(shù)據(jù)文件之前發(fā)生了宕機(jī),,那么數(shù)據(jù)高速緩沖區(qū)中的數(shù)據(jù)就會(huì)全部丟失。如果在數(shù)據(jù)庫(kù)重新啟動(dòng)后無(wú)法恢復(fù)這部分用戶(hù)更改的數(shù)據(jù),,顯然是不可以的,。 重做日志就是把變化了數(shù)據(jù)首先保存起來(lái),其中LGWR進(jìn)程負(fù)責(zé)把用戶(hù)更改的數(shù)據(jù)寫(xiě)到重做日志文件中,,這樣數(shù)據(jù)庫(kù)啟動(dòng)時(shí),數(shù)據(jù)庫(kù)系統(tǒng)從重做日志文件中讀取這些變化了的數(shù)據(jù),,將用戶(hù)更改的數(shù)據(jù)提交到數(shù)據(jù)庫(kù)中,,寫(xiě)入數(shù)據(jù)文件。 為提高磁盤(pán)效率和防止重做日志文件的損壞,,oracle使用特殊的重做日志文件結(jié)構(gòu),,是由3個(gè)重做日志組,每組包含兩個(gè)重做日志組成員,,當(dāng)?shù)谝粋€(gè)日志組寫(xiě)滿(mǎn)后,,就會(huì)停止寫(xiě)入,向第二個(gè)日志組寫(xiě)入,第二個(gè)日志組寫(xiě)滿(mǎn)后,向第二個(gè)日志組寫(xiě)入,,第三個(gè)日志組寫(xiě)滿(mǎn)后向第一個(gè)日志組寫(xiě)入,,oracle使用這種循環(huán)方式使用重做日志組。 oracle規(guī)定每個(gè)數(shù)據(jù)庫(kù)至少有兩個(gè)日志組,,每組至少包含一個(gè)或多個(gè)日志成員。oracle循環(huán)的使用重做日志組,當(dāng)一個(gè)重做日志組寫(xiě)滿(mǎn)后進(jìn)行日志切換,,切換到它可以找到的其他重做日志組。使用新的重做日志組之前,,DBWR進(jìn)程需要將所有的數(shù)據(jù)更改寫(xiě)入到數(shù)據(jù)文件中,。如果數(shù)據(jù)庫(kù)處于歸檔模式下,當(dāng)發(fā)生日志切換時(shí),,歸檔進(jìn)程(ARCH)會(huì)把當(dāng)前已滿(mǎn)的重做日志文件中的數(shù)據(jù)復(fù)制到歸檔日志中,。 設(shè)計(jì)成多個(gè)日志成員的目的是在日志組內(nèi)某個(gè)日志文件損壞后及時(shí)提供備份,所以同一組的日志成員一般內(nèi)容信息相同,但是存放位置不同,。 1.4.1. 讀取重做日志文件信息數(shù)據(jù)字典視圖V$log記錄當(dāng)前數(shù)據(jù)庫(kù)的日志組序號(hào),,日志序列號(hào),每個(gè)日志文件大小,,每個(gè)日志組的成員數(shù)量,,以及日志組的當(dāng)前狀態(tài)。 使用V$LOG查看重做日志信息 輸出結(jié)果有三個(gè)日志組,,每個(gè)日志組分別有一個(gè)日志文件,。日志組2為當(dāng)前正在使用的重做日志組,稱(chēng)為當(dāng)前日組,,當(dāng)前日志文件還沒(méi)有歸檔,,其他非活動(dòng)重做日志文件已經(jīng)歸檔。 數(shù)據(jù)字典V$LOGFILE記錄了當(dāng)前日志組號(hào),,該日志組的狀態(tài),、類(lèi)型和日志組成員信息。 使用V$LOGFILE查看重做日志組信息 其中,,status參數(shù)的含義如下: oracle的日志組有四種狀態(tài):unused, current ,active ,inactive; unused:表明該日志組從來(lái)沒(méi)有被使用過(guò),,我們可以看到重建的日志組就是這個(gè)狀態(tài)。 current:是oracle當(dāng)前正在使用的日志組,,即后臺(tái)進(jìn)程LGWR正在寫(xiě)的日志組,。 inactive:處于這個(gè)狀態(tài)的日志組,表明記錄在這個(gè)日志組的事務(wù)提交所造成的數(shù)據(jù)塊的改變,,已經(jīng)完全從database buffer cache寫(xiě)入到data file中了.
1.4.2. 重做日志組及其成員管理創(chuàng)建重做日志組: 一個(gè)oracle數(shù)據(jù)庫(kù)日志組太少,,可能導(dǎo)致日志文件切換頻繁,影響系統(tǒng)性能,,所以有時(shí)需要增加新的日志組,。如果日志組內(nèi)只有一個(gè)日志成員,為避免損壞則需要增加新的日志成員,。 使用v$log查看重做日志信息
使用v$logfile查看重做日志組信息
創(chuàng)建重做日志組的方法: 刪除重做日志組
添加刪除重做日志文件
會(huì)發(fā)現(xiàn)新添加的日志文件redo33.log是無(wú)效狀態(tài),,三個(gè)日志組的日志成員還沒(méi)有寫(xiě)滿(mǎn),所以redo33.log是無(wú)效狀態(tài),,只要做兩次強(qiáng)制日志切換就可以發(fā)現(xiàn)是ONLINE狀態(tài)了
刪除重做日志文件
到操作系統(tǒng)日志文件存放目錄上查看是否還存在redo33.log
查看重做日志信息,,group 3是當(dāng)前日志組
刪除日志組3中的日志文件redo33.log,會(huì)發(fā)現(xiàn)當(dāng)前日志組中的日志文件是沒(méi)有辦法刪除的
強(qiáng)制切換日志后,,就可以刪除新添加的日志文件了,。
刪除重做日志文件的限制條件如下 ? 不能刪除當(dāng)前組的成員,若要?jiǎng)h除則先執(zhí)行強(qiáng)制性切換重做日志的命令:alter system switch logfile ? 活動(dòng)日志成員不可以刪除 ? 沒(méi)有歸檔的日志成員不可刪除 ? 當(dāng)前日志組中只有一個(gè)成員是也不能刪除 1.4.3. 日志組切換和檢查點(diǎn)事件日志切換就是停止寫(xiě)當(dāng)前日志組,,轉(zhuǎn)向另一個(gè)新的日志組,。系統(tǒng)可以自動(dòng)切換,,也可以手動(dòng)切換。當(dāng)發(fā)生日志切換時(shí),,系統(tǒng)會(huì)在后臺(tái)完成檢查點(diǎn)操作,,以減少實(shí)例的恢復(fù)時(shí)間。 檢查點(diǎn)是一個(gè)事件,,用于減少實(shí)例恢復(fù)的時(shí)間,。當(dāng)檢查點(diǎn)發(fā)生時(shí),它會(huì)出發(fā)DBWR進(jìn)程,,把數(shù)據(jù)高速緩沖區(qū)中變化了的數(shù)據(jù)寫(xiě)入數(shù)據(jù)文件,,同時(shí)檢查點(diǎn)進(jìn)程更新控制文件和數(shù)據(jù)文件頭部,保證數(shù)據(jù)的一致性,。檢查點(diǎn)其實(shí)是一個(gè)后臺(tái)進(jìn)程,,用來(lái)保證所有修改過(guò)的數(shù)據(jù)庫(kù)緩沖區(qū)的數(shù)據(jù)寫(xiě)入數(shù)據(jù)文件。 檢查點(diǎn)事件越頻繁,,則一旦數(shù)據(jù)庫(kù)發(fā)生故障,,需要數(shù)據(jù)恢復(fù)的重做日志中的數(shù)據(jù)就越少(因?yàn)樵诨謴?fù)時(shí),就不必檢查恢復(fù)檢查點(diǎn)之前的重做日志中的數(shù)據(jù)),,所以就減少實(shí)例的恢復(fù)時(shí)間,。 強(qiáng)制日志切換并強(qiáng)制產(chǎn)生檢查點(diǎn)事件。 強(qiáng)制日志切換
強(qiáng)制產(chǎn)生檢查點(diǎn)事件
1.5. 管理歸檔日志文件oracle數(shù)據(jù)庫(kù)有兩種運(yùn)行方式:歸檔(ARCHIVELOG)方式和非歸檔(NO ARCHIVELOG)方式,。在非歸檔模式下,日志切換時(shí)直接覆蓋以前的重做日志文件,,不產(chǎn)生歸檔日志,。數(shù)據(jù)庫(kù)在歸檔方式下運(yùn)行,在日志切換后,,ARCH進(jìn)程會(huì)對(duì)已寫(xiě)滿(mǎn)的重做日志文件進(jìn)行存檔,,默認(rèn)情況下,oracle采用非歸檔模式下運(yùn)行,,主要因?yàn)闅w檔方式會(huì)給系統(tǒng)帶來(lái)一定的性能問(wèn)題,。只有當(dāng)數(shù)據(jù)庫(kù)運(yùn)行在歸檔方式時(shí),ARCH進(jìn)程才存在,。ARCH進(jìn)程是oracle的可選后臺(tái)進(jìn)程,,將日志存檔,以便保存對(duì)數(shù)據(jù)庫(kù)的所有更改,。這樣即使在數(shù)據(jù)文件磁盤(pán)損壞的情況系下,,數(shù)據(jù)庫(kù)管理員也能將數(shù)據(jù)庫(kù)恢復(fù)到故障發(fā)生時(shí)的狀態(tài)。
1.5.1. 配置數(shù)據(jù)庫(kù)歸檔日志配置數(shù)據(jù)庫(kù)歸檔日志的方式包括以下3個(gè)步驟: 查詢(xún)數(shù)據(jù)庫(kù)的歸檔方式,,確定當(dāng)前不處于歸檔方式 以sys用戶(hù)作為SYSDBA連接目標(biāo)數(shù)據(jù)庫(kù),,然后執(zhí)行ARCHIVE LOG LIST命令查看數(shù)據(jù)庫(kù)歸檔模式:
關(guān)閉數(shù)據(jù)庫(kù)并啟動(dòng)數(shù)據(jù)庫(kù)到mount狀態(tài)
使用ALTER DATABASE ARCHIVELOG命令將數(shù)據(jù)庫(kù)設(shè)置為歸檔模式,并驗(yàn)證數(shù)據(jù)庫(kù)的歸檔模式是否改變
1.5.2. 獲取歸檔日志信息數(shù)據(jù)字典視圖可幫助用戶(hù)獲取數(shù)據(jù)庫(kù)配置信息。用戶(hù)通過(guò)使用V$ARCHIVE_DEST和V$ARCHIVE_LOG視圖獲取歸檔日志信息 V$ARCHIVE_DEST:顯示當(dāng)前所有歸檔日志存儲(chǔ)位置及其狀態(tài) V$ARCHIVE_LOG:顯示歷史歸檔日志信息 如何查看所有有效的歸檔日志文件存儲(chǔ)目錄
獲取已歸檔的日志文件的信息,,歸檔進(jìn)程會(huì)在每次日志切換后將聯(lián)機(jī)重做日志文件復(fù)制到一個(gè)歸檔日志文件,,從而生成一串連續(xù)的且能用于恢復(fù)一個(gè)備份的日志文件。這些日志文件的名稱(chēng)和位置由若干初始化參數(shù)控制,。
1.6. 數(shù)據(jù)字典數(shù)據(jù)字典是oracle存儲(chǔ)關(guān)鍵信息的表和視圖的集合,。oracle進(jìn)程會(huì)在sys模式中維護(hù)這些表和視圖,也就是說(shuō)數(shù)據(jù)字典的所有者為sys用戶(hù),,數(shù)據(jù)存放在system表空間中,,數(shù)據(jù)字典描述了實(shí)際數(shù)據(jù)是如何組織的,如一個(gè)表的創(chuàng)建者者信息,,創(chuàng)建時(shí)間信息,,所屬的表空間信息,用戶(hù)訪(fǎng)問(wèn)權(quán)限等等,。對(duì)數(shù)據(jù)字典可以向處理其他數(shù)據(jù)庫(kù)和表或試圖一樣進(jìn)行查詢(xún),,但不能進(jìn)行任何修改。 oracle數(shù)據(jù)字典通常是在創(chuàng)建和安裝數(shù)據(jù)庫(kù)時(shí)被創(chuàng)建的,。oracle數(shù)據(jù)字典是oracle數(shù)據(jù)庫(kù)系統(tǒng)工作的基礎(chǔ),。沒(méi)有數(shù)據(jù)字典的支持,oracle數(shù)據(jù)庫(kù)系統(tǒng)就不能進(jìn)行任何工作,。 數(shù)據(jù)字典的構(gòu)成:數(shù)據(jù)字典分為數(shù)據(jù)字典表和數(shù)據(jù)字典視圖,。數(shù)據(jù)字典中的表不可以直接被訪(fǎng)問(wèn),但是可以訪(fǎng)問(wèn)數(shù)據(jù)字典中的視圖,。數(shù)據(jù)字典視圖分為兩類(lèi):靜態(tài)數(shù)據(jù)字典視圖和動(dòng)態(tài)數(shù)據(jù)字典視圖,。數(shù)據(jù)字典視圖分為兩類(lèi):靜態(tài)數(shù)據(jù)字典視圖和動(dòng)態(tài)數(shù)據(jù)字典視圖; 數(shù)據(jù)字典表:數(shù)據(jù)字典表中的數(shù)據(jù)是oracle系統(tǒng)存放的系統(tǒng)數(shù)據(jù),,而普通表存放的是用戶(hù)的數(shù)據(jù),,為了方便的區(qū)別這些表,這些表的名稱(chēng)都是用“$”結(jié)尾,,這些表屬于SYS用戶(hù),。 為了方便用戶(hù)對(duì)數(shù)據(jù)字典表的查詢(xún),oracle對(duì)這些數(shù)據(jù)字典分別建立了用戶(hù)視圖,,這樣既容易記住,,還隱藏了數(shù)據(jù)字典表之間的關(guān)系。 1.6.1. 靜態(tài)數(shù)據(jù)字典視圖靜態(tài)數(shù)據(jù)字典中的視圖分為3類(lèi):他們分別有3個(gè)前綴構(gòu)成:USER_*,、ALL_*,、DBA_* USER_*:該視圖存儲(chǔ)了當(dāng)前用戶(hù)的所擁有的對(duì)象的信息(即所有在該用戶(hù)模式下的對(duì)象) ALL_*:該視圖存儲(chǔ)了當(dāng)前用戶(hù)的能夠訪(fǎng)問(wèn)的對(duì)象的信息(與USER_*相比,ALL_*并不需要擁有該對(duì)象,,只需要具有訪(fǎng)問(wèn)該對(duì)象的權(quán)限即可),; DBA_*:該視圖存儲(chǔ)了數(shù)據(jù)庫(kù)中所有對(duì)象的信息(前提是當(dāng)前用戶(hù)具有訪(fǎng)問(wèn)權(quán)限,,一般來(lái)說(shuō)必須具有管理員權(quán)限) 列舉常用的數(shù)據(jù)字典視圖 user_tables:主要描述當(dāng)前用戶(hù)所擁有的所有表的信息,主要包括表名,,表空間等信息,,使用SCOTT用戶(hù)連接數(shù)據(jù)庫(kù)實(shí)例,查看SCOTT用戶(hù)下的所有表的信息,。
查看SCOTT用戶(hù)擁有哪些索引
查看SCOTT用戶(hù)所擁有的數(shù)據(jù)庫(kù)對(duì)象
查看SCOTT用戶(hù)能夠訪(fǎng)問(wèn)的所有表,,過(guò)程,函數(shù)等信息
查詢(xún)結(jié)果截圖
查看數(shù)據(jù)字典:如果需要了解每個(gè)視圖更多的信息,,可以通過(guò)DICTIONARY命令來(lái)查看所有的視圖和其他描述,,該表只有兩個(gè)字段,表名和描述
1.6.2. 動(dòng)態(tài)數(shù)據(jù)字典視圖及使用除了靜態(tài)數(shù)據(jù)字典中有3類(lèi)視圖,,其他的字典視圖中主要是V$視圖,,之所以這樣命名是因?yàn)檫@些視圖會(huì)不斷的進(jìn)行更新,可以以反映出當(dāng)前實(shí)例和數(shù)據(jù)庫(kù)的運(yùn)行狀況,。動(dòng)態(tài)性能表用于記錄當(dāng)前數(shù)據(jù)庫(kù)的活動(dòng),,只存在于數(shù)據(jù)庫(kù)運(yùn)行期間,實(shí)際的信息都取自?xún)?nèi)存和控制文件,。DBA可以使用動(dòng)態(tài)視圖來(lái)監(jiān)視和維護(hù)數(shù)據(jù)庫(kù),。 舉例說(shuō)明動(dòng)態(tài)數(shù)據(jù)字典的使用
從結(jié)果中可以看出,當(dāng)前數(shù)據(jù)庫(kù)正在使用的日志組是GROUP 3,,數(shù)據(jù)庫(kù)運(yùn)行在非歸檔模式下,,該日志組有一個(gè)日志成員,存儲(chǔ)目錄為/u01/app/oracle/oradata/orcl/,日志文件名為redo03.log , |
|