oracle的物理結(jié)構(gòu)其實(shí)是由各種各樣的文件組成的, 其中與數(shù)據(jù)庫(kù)相關(guān)的有: 數(shù)據(jù)文件(data file):這些文件是數(shù)據(jù)庫(kù)的主要文件;其中包括數(shù)據(jù)表、索引和所有其他的段。 臨時(shí)文件(temp file):這些文件用于完成基于磁盤(pán)的排序和臨時(shí)存儲(chǔ)。 控制文件(control file):這些文件能告訴你數(shù)據(jù)文件、臨時(shí)文件和重做日志文件在哪里,還會(huì)指出與文件狀態(tài)有關(guān)的其他元數(shù)據(jù)。 重做日志文件(redo log file):這些就是事務(wù)日志。 密碼文件(password file):這些文件用于對(duì)通過(guò)網(wǎng)絡(luò)完成管理活動(dòng)的用戶(hù)進(jìn)行認(rèn)證。它允許遠(yuǎn)程SYSDBA 或管理員訪問(wèn)數(shù)據(jù)庫(kù)。 修改跟蹤文件(change tracking file):這個(gè)文件有利于對(duì)Oracle 數(shù)據(jù)建立真正的增量備份。修改跟蹤文件不一定非得放在閃回恢復(fù)區(qū)(Flash Recovery Area),不過(guò)它只與數(shù)據(jù)庫(kù)備份和恢復(fù)有關(guān)。 閃回日志文件(flashback log file):這些文件存儲(chǔ)數(shù)據(jù)庫(kù)塊的“前映像”,以便完成新增加的FLASHBACK DATABASE 命令。 與實(shí)例相關(guān)的文件只有: 參數(shù)文件(parameter file):這些文件告訴Oracle 實(shí)例在哪里可以找到控制文件,并且指定某些初始化參數(shù),這些參數(shù)定義了某種內(nèi)存結(jié)構(gòu)有多大等設(shè)置。它有本地和服務(wù)2種形式 跟蹤文件(trace file):這通常是一個(gè)服務(wù)器進(jìn)程對(duì)某種異常錯(cuò)誤條件做出響應(yīng)時(shí)創(chuàng)建的診斷文件。 警告文件(alert file):與跟蹤文件類(lèi)似,但是包含“期望”事件的有關(guān)信息,并且通過(guò)一個(gè)集中式文件(其中包括多個(gè)數(shù)據(jù)庫(kù)事件)警告DBA。 還有一些特殊的文件: 轉(zhuǎn)儲(chǔ)文件(dump file ,DMP file):這些文件由Export(導(dǎo)出)數(shù)據(jù)庫(kù)實(shí)用程序生成,并由Import(導(dǎo)入)數(shù)據(jù)庫(kù)實(shí)用程序使用。 數(shù)據(jù)泵文件(Data Pump file):這些文件由Oracle 10g 新增的數(shù)據(jù)泵導(dǎo)出(Data Pump Export)進(jìn)程生成,并由數(shù)據(jù)泵導(dǎo)入(Data Pump Import)進(jìn)程使用。外部表也可以創(chuàng)建和使用這種文件格式。 平面文件(flat file):這些無(wú)格式文件可以在文本編輯器中查看。通常會(huì)使用這些文件向數(shù)據(jù)庫(kù)中加載數(shù)據(jù)。
關(guān)于數(shù)據(jù)庫(kù)的各個(gè)文件,具體可以參看:http://hi.baidu.com/feixianxxx/blog/item/952188f9b91eb89858ee9060.html 關(guān)于參數(shù)文件,具體可以參看:http://hi.baidu.com/feixianxxx/blog/item/81420c57daff6b103a293595.html
下面提幾個(gè)點(diǎn): 1.一個(gè)數(shù)據(jù)文件可以存儲(chǔ)表空間內(nèi)各種類(lèi)型的方案對(duì)象。Oracle為表空間內(nèi)的方案對(duì)象分配空間時(shí)可以使用一個(gè)或多個(gè)數(shù)據(jù)文件。也就是說(shuō),方案對(duì)象是可以跨數(shù)據(jù)文件的。
2.用戶(hù)也可以令一個(gè)數(shù)據(jù)文件(datafile)單獨(dú)地脫機(jī)(offline),但是這種操作主要用于數(shù)據(jù)庫(kù)恢復(fù)工作中 3.臨時(shí)數(shù)據(jù)文件與普通數(shù)據(jù)文件類(lèi)似,但有以下區(qū)別: a.臨時(shí)文件總是被設(shè)置為 NOLOGGING 模式。 b.用戶(hù)不能將臨時(shí)文件設(shè)為只讀 c.用戶(hù)不能使用 ALTER DATABASE 語(yǔ)句創(chuàng)建臨時(shí)文件 d.介質(zhì)恢復(fù)(media recovery)不能識(shí)別臨時(shí)文件: BACKUP CONTROLFILE 不會(huì)產(chǎn)生與臨時(shí)文件有關(guān)的信息 CREATE CONTROLFILE 不能設(shè)定與臨時(shí)文件有關(guān)的信息 e.當(dāng)用戶(hù)創(chuàng)建臨時(shí)文件或改變其容量時(shí),Oracle并不保證按照用戶(hù)指定的文件容量為其分配磁盤(pán)空間。在某些文件系統(tǒng)(file systems)中(例如UNIX)磁盤(pán)塊(disk block)并不會(huì)在文件創(chuàng)建或改變?nèi)萘繒r(shí)分配,而是在其被使用之前 才分配。 f.臨時(shí)文件(tempfile)信息可以從 DBA_TEMP_FILES 數(shù)據(jù)字典表及 V$TEMPFILE 動(dòng)態(tài)性能視圖(dynamic performance view)中查詢(xún),但是不存在于 DBA_DATA_FILES 或 V$DATAFILE 視圖中。
4.可以用4 種文件系統(tǒng)機(jī)制存儲(chǔ)數(shù)據(jù)文件里的數(shù)據(jù)。這里的數(shù)據(jù)是指你的數(shù)據(jù)字典、redo 記錄、undo 記錄、表、索引、LOB 等,也就是你自己每天關(guān)心的數(shù)據(jù)。 “Cooked”操作系統(tǒng)(OS)文件系統(tǒng); 原始分區(qū)(raw partitions,也稱(chēng)裸分區(qū)); 自動(dòng)存儲(chǔ)管理(Automatic Storage Management,ASM); 集群文件系統(tǒng);
5.對(duì)臨時(shí)文件并不生成redo 日志,不過(guò)可以生成undo 日志。由于UNDO 總是受redo 的“保護(hù)”,因此,這就會(huì)生成使用臨時(shí)表的redo 日志.
6.控制文件(control file)中主要包含以下內(nèi)容: 數(shù)據(jù)庫(kù)名(database name) 數(shù)據(jù)庫(kù)創(chuàng)建時(shí)的時(shí)間戳(timestamp) 屬于此數(shù)據(jù)庫(kù)的數(shù)據(jù)文件(datafile)及重做日志文件(redo log file)的名稱(chēng)與存儲(chǔ)位置 表空間(tablespace)信息 脫機(jī)(offline)的數(shù)據(jù)文件 日志歷史信息 歸檔日志(archived log)信息 備份集(backup set)與備份塊(backup piece)信息 數(shù)據(jù)文件與重做日志的備份信息 數(shù)據(jù)文件復(fù)制信息 當(dāng)前的日志序列號(hào)(log sequence number) 檢查點(diǎn)(checkpoint)信息
7.對(duì)于控制文件,建議如下: 在每個(gè)數(shù)據(jù)庫(kù)中使用多重控制文件(multiple control file) 將控制文件的副本存儲(chǔ)在不同的物理磁盤(pán)上 使用操作系統(tǒng)的鏡像功能(operating system mirroring) 監(jiān)控備份工作
8.重做日志文件,可用于: 系統(tǒng)崩潰后的實(shí)例恢復(fù) 通過(guò)備份恢復(fù)數(shù)據(jù)文件之后恢復(fù)介質(zhì) 備用(standby)數(shù)據(jù)庫(kù)處理 輸入到流中,這是一個(gè)重做日志挖掘過(guò)程,用于實(shí)現(xiàn)信息共享(這也是一種奇特的復(fù)制)
9.些操作可能會(huì)以盡量少生成redo 的模式完成。例如,可以使用NOLOGGING 屬性創(chuàng)建一個(gè)索引。但是Oracle 完成的所有遞歸SQL 會(huì)寫(xiě)入日志。
10.進(jìn)行日志切換的時(shí)候可能出現(xiàn)暫停,因?yàn)樗_保將被覆蓋的事務(wù)日志的內(nèi)容已經(jīng)被執(zhí)行,即寫(xiě)入磁盤(pán)已完成.也就是說(shuō),如果事務(wù)日志保護(hù)的緩沖區(qū)數(shù)據(jù)在沒(méi)有被或者正在被寫(xiě)入磁盤(pán)的時(shí)候,切換操作是無(wú)法進(jìn)行的。
11.事務(wù)日志容量越小,日志切換發(fā)生的越頻繁,影響效率 12.有什么理由不采用ARCHIVELOG 模式呢?性能不能作為理由;適當(dāng)配置的歸檔只會(huì)增加極少的開(kāi)銷(xiāo)甚至根本不增加開(kāi)銷(xiāo)。由于這一點(diǎn),再加上另外一條:如果一個(gè)系統(tǒng)會(huì)“丟失數(shù)據(jù)”,那它再快也是沒(méi)有用的
13.密碼文件保存了一個(gè)用戶(hù)名和密碼列表,這些用戶(hù)名和密碼分別對(duì)應(yīng)于可以通過(guò)網(wǎng)絡(luò)遠(yuǎn)程認(rèn)證為SYSDBA 的用戶(hù)。Oracle 必須使用這個(gè)文件來(lái)認(rèn)證用戶(hù),而不是數(shù)據(jù)庫(kù)中存儲(chǔ)的正常密碼列表。
14.修改密碼文件狀態(tài):alter system set remote_login_passwordfile=exclusive scope=spfile;(SHARED(多個(gè)數(shù)據(jù)庫(kù)可以使用同樣的密碼文件)和EXCLUSIVE(只有一個(gè)數(shù)據(jù)庫(kù)使用一個(gè)給定的密碼文件)). 但是注意這里的修改不會(huì)動(dòng)態(tài)起效,還是需要重啟實(shí)例的。 對(duì)于新建的密碼文件,只有一個(gè)合法的sysdba用戶(hù) sys。要想把其他具有sysdba的用戶(hù)加入到密碼文件中,需要重新對(duì)用戶(hù)grant sysdba to xxxx;
15.修改跟蹤文件(change tracking file)惟一的目的是跟蹤自上一個(gè)增量備份以來(lái)哪些塊已經(jīng)修改。采用這種方式,恢復(fù)管理器(RecoveryManager,RMAN)工具就能只備份確實(shí)有變化的數(shù)據(jù)庫(kù)塊,而不必讀取整個(gè)數(shù)據(jù)庫(kù)。 alter database enable block change tracking using file '/home/ora10gr1/product/10.1.0/oradata/ora10gr1/ORA10GR1/changed_blocks.bct';
16.閃回日志文件(flashback log file)簡(jiǎn)稱(chēng)為閃回日志(flashback log),這是Oracle 10g 中為支持FLASHBACK DATABASE 命令而引入的。 假如你誤刪了一個(gè)重要的數(shù)據(jù)表,怎么辦? (1) DBA 關(guān)閉數(shù)據(jù)庫(kù)。 (2) DBA 啟動(dòng)并裝載數(shù)據(jù)庫(kù),可以使用SCN、Oracle 時(shí)鐘或時(shí)間戳(墻上時(shí)鐘時(shí)間)發(fā)出閃回?cái)?shù)據(jù)庫(kù)命令,時(shí)間可以精確到一兩秒鐘。 (3) DBA 以RESETLOGS 選項(xiàng)打開(kāi)數(shù)據(jù)庫(kù)。
17.Oracle 10g 中的閃回恢復(fù)區(qū)(Flash Recovery Area)是一個(gè)新位置,包含如下文件: 磁盤(pán)上數(shù)據(jù)文件的副本。 數(shù)據(jù)庫(kù)的增量備份。 重做日志(歸檔重做日志)。 控制文件和控制文件的備份。 閃回日志。
18.Oracle 10g 中至少有兩個(gè)工具使用數(shù)據(jù)泵(data pump)文件格式。外部表(external table)可以加載和卸載數(shù)據(jù)泵格式的數(shù)據(jù)文件。
19.有了SPFILE,可以消除傳統(tǒng)參數(shù)文件存在的兩個(gè)嚴(yán)重問(wèn)題: 可以杜絕參數(shù)文件的繁殖。SPFILE 總是存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器上;必須存在于服務(wù)器主機(jī)本身,不能放在客戶(hù)機(jī)上。對(duì)參數(shù)設(shè)置來(lái)說(shuō),這樣就可以只有一個(gè)“信息來(lái)源”。 無(wú)需在數(shù)據(jù)庫(kù)之外使用文本編輯器手動(dòng)地維護(hù)參數(shù)文件(實(shí)際上,更確切的說(shuō)法是不能手動(dòng)地維護(hù))。利用ALTER SYSTEM 命令,完全可以直接將值寫(xiě)入SPFILE。管理員不必再手動(dòng)地查找和維護(hù)所有參數(shù)文件。
20.刪除spfile上的某個(gè)參數(shù)?alter system reset 參數(shù)名 scope=spfile sid='*';
21.Oracle 數(shù)據(jù)庫(kù)(以及應(yīng)用服務(wù)器和Oracle 應(yīng)用)都是可以充分測(cè)量的。數(shù)據(jù)庫(kù)中這種測(cè)量性反映在以下幾方面: a.V$視圖:大多數(shù)V$視圖都包含“調(diào)試”信息。V$WAITSTAT、V$SESSION_EVENT 還有其他許多V$視圖之所以存在,就是為了讓我們知道內(nèi)核內(nèi)部到底發(fā)生了什么。 b.審計(jì)命令:利用這個(gè)命令,你能指定數(shù)據(jù)庫(kù)要記錄哪些事件以便日后分析。 c.資源管理器(DBMS_RESOURCE_MANAGER):這個(gè)特性允許你對(duì)數(shù)據(jù)庫(kù)中的資源( CPU、I/O 等)實(shí)現(xiàn)微管理。正是因?yàn)閿?shù)據(jù)庫(kù)能訪問(wèn)描述資源使用情況的所有運(yùn)行時(shí)統(tǒng)計(jì)信息,所以才可能有資源管理器。 d.Oracle“事件”:基于Oracle 事件,能讓Oracle 生成所需的跟蹤或診斷信息。 e.DBMS_TRACE:這是PL/SQL 引擎中的一個(gè)工具,它會(huì)全面地記錄存儲(chǔ)過(guò)程的調(diào)用樹(shù)、所產(chǎn)生的異常,以及遇到的錯(cuò)誤。 f.數(shù)據(jù)庫(kù)事件觸發(fā)器:這些觸發(fā)器(如ON SERVERERROR)允許你監(jiān)控和記錄你覺(jué)得“意外”或非正常的情況。例如,可以記錄發(fā)生“臨時(shí)空間用盡”錯(cuò)誤時(shí)正在運(yùn)行的SQL。 g.SQL_TRACE:這個(gè)SQL 跟蹤工具還可以采用一種擴(kuò)展方式使用,即通過(guò)10046 Oracle e事件。
22.不論是使用SQL_TRACE 還是擴(kuò)展的跟蹤工具,Oracle 都會(huì)在數(shù)據(jù)庫(kù)服務(wù)器主機(jī)的以下兩個(gè)位置生成一個(gè)跟蹤文件: 如果使用專(zhuān)用服務(wù)器連接,會(huì)在USER_DUMP_DEST 參數(shù)指定的目錄中生成跟蹤文件。 如果使用共享服務(wù)器連接,則在BACKGROUND_DUMP_DEST 參數(shù)指定的目錄中生成跟蹤文件"
23.警告文件(也稱(chēng)為警告日志(alert log)) 就是數(shù)據(jù)庫(kù)的日記。這是一個(gè)簡(jiǎn)單的文本文件,從數(shù)據(jù)庫(kù)“出生”(創(chuàng)建)那一天起就會(huì)編寫(xiě)該文件,直到數(shù)據(jù)庫(kù)“完結(jié)”(被你刪除)為止。 |
|