一、oracle的體系結(jié)構(gòu)
1、物理結(jié)構(gòu)(由控制文件、數(shù)據(jù)文件、重做日志文件、參數(shù)文件、歸檔文件、口令文件組成)
一個數(shù)據(jù)庫中的數(shù)據(jù)存儲在磁盤上物理文件,被使用時,調(diào)入內(nèi)存。
其中控制文件、數(shù)據(jù)文件、重做日志文件、跟蹤文件及警告日志(trace files,alert files)屬于數(shù)據(jù)庫文件;
參數(shù)文件(parameter file)口令文件(password file)是非數(shù)據(jù)庫文件
1.1數(shù)據(jù)文件:存儲數(shù)據(jù)的文件.數(shù)據(jù)文件典型地代表了根據(jù)他們使用的磁盤空間和數(shù)量所決定的一個Oracle數(shù)據(jù)庫的容積。
由于性能原因,每一種類型的數(shù)據(jù)放在相應(yīng)的一個或一系列文件中,將這些文件放在不同的磁盤中。
types:
.data dictionary .data
.redo data .index
.temporary data 等等
1.2控制文件:包含維護(hù)和驗(yàn)證數(shù)據(jù)庫完整性的必要信息、例如,控制文件用于識別數(shù)據(jù)文件和重做日志文件,一個數(shù)據(jù)庫至少需要一個控制文件.
控制文件內(nèi)容
。數(shù)據(jù)庫名
。表空間信息
。所有數(shù)據(jù)文件的名字和位置
。所有redo日志文件的名字和位置
。當(dāng)前的日志序列號
。檢查點(diǎn)信息
。關(guān)于redo日志和歸檔的當(dāng)前狀態(tài)信息
控制文件的使用過程
控制文件把Oracle引導(dǎo)到數(shù)據(jù)庫文件的其它部分。啟動一個實(shí)例時,Oracle 從參數(shù)文件中讀取控制文件的名字和位置。安裝數(shù)據(jù)庫時,Oracle 打開控制文件。最終打開數(shù)據(jù)庫時,Oracle 從控制文件中讀取數(shù)據(jù)文件的列表并打開其中的每個文件。
1.3重做日志文件:
含對數(shù)據(jù)庫所做的更改記錄,這樣萬一出現(xiàn)故障可以啟用數(shù)據(jù)恢復(fù)。一個數(shù)據(jù)庫至少需要兩個重做日志文件.
1.4 跟蹤文件及警告日志(Trace Files and Alert Files)
在instance 中運(yùn)行的每一個后臺進(jìn)程都有一個跟蹤文件(trace file)與之相連。Trace file 記載后臺進(jìn)程所遇到的重大事件的信息。
警告日志( Alert Log)是一種特殊的跟蹤文件,每個數(shù)據(jù)庫都有一個跟蹤文件,同步記載數(shù)據(jù)庫的消息和錯誤.
1.5參數(shù)文件:包括大量影響Oracle數(shù)據(jù)庫實(shí)例功能的設(shè)定,如以下設(shè)定:
。數(shù)據(jù)庫控制文件的定位
。Oracle用來緩存從磁盤上讀取的數(shù)據(jù)的內(nèi)存數(shù)量
。默認(rèn)的優(yōu)化程序的選擇.
和數(shù)據(jù)庫文件相關(guān),執(zhí)行兩個重要的功能
1〉為數(shù)據(jù)庫指出控制文件
2〉為數(shù)據(jù)庫指出歸檔日志的目標(biāo)
1.6歸檔文件:是重做日志文件的脫機(jī)副本,這些副本可能對于從介質(zhì)失敗中進(jìn)行恢復(fù)很必要。
1.7口令文件:認(rèn)證哪些用戶有權(quán)限啟動和關(guān)閉Oracle例程.
2、邏輯結(jié)構(gòu)(表空間、段、區(qū)、塊)
表空間:是數(shù)據(jù)庫中的基本邏輯結(jié)構(gòu),一系列數(shù)據(jù)文件的集合。
段:是對象在數(shù)據(jù)庫中占用的空間.
區(qū):是為數(shù)據(jù)一次性預(yù)留的一個較大的存儲空間.
塊:ORACLE最基本的存儲單位,在建立數(shù)據(jù)庫的時候指定.
3、內(nèi)存分配(SGA和PGA)
SGA:是用于存儲數(shù)據(jù)庫信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫進(jìn)程所共享。它包含Oracle 服務(wù)器的數(shù)據(jù)和控制信息,它是在Oracle服務(wù)器所駐留的計算機(jī)的實(shí)際內(nèi)存中得以分配,如果實(shí)際內(nèi)存不夠再往虛擬內(nèi)存中寫。
PGA:包含單個服務(wù)器進(jìn)程或單個后臺進(jìn)程的數(shù)據(jù)和控制信息,與幾個進(jìn)程共享的SGA 正相反,PGA 是只被一個進(jìn)程使用的區(qū)域,PGA 在創(chuàng)建進(jìn)程時分配,在終止進(jìn)程時回收.
4、后臺進(jìn)程
包括數(shù)據(jù)寫進(jìn)程(Database Writer,DBWR)、日志寫進(jìn)程(Log Writer,LGWR)、系統(tǒng)監(jiān)控(System Monitor,SMON)、進(jìn)程監(jiān)控(Process Monitor,PMON)、檢查點(diǎn)進(jìn)程(Checkpoint Process,CKPT)、歸檔進(jìn)程、服務(wù)進(jìn)程、用戶進(jìn)程)
數(shù)據(jù)寫進(jìn)程:負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫緩沖區(qū)高速緩存寫入數(shù)據(jù)文件
日志寫進(jìn)程:將重做日志緩沖區(qū)中的更改寫入在線重做日志文件
系統(tǒng)監(jiān)控:檢查數(shù)據(jù)庫的一致性如有必要還會在數(shù)據(jù)庫打開時啟動數(shù)據(jù)庫的恢復(fù)
進(jìn)程監(jiān)控:負(fù)責(zé)在一個Oracle 進(jìn)程失敗時清理資源
檢查點(diǎn)進(jìn)程:負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫中時,更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫狀態(tài)信息。該進(jìn)程在檢查點(diǎn)出現(xiàn)時,對全部數(shù)據(jù)文件的標(biāo)題進(jìn)行修改,指示該檢查點(diǎn)。在通常的情況下,該任務(wù)由LGWR執(zhí)行。然而,如果檢查點(diǎn)明顯地降低系統(tǒng)性能時,可使CKPT進(jìn)程運(yùn)行,將原來由LGWR進(jìn)程執(zhí)行的檢查點(diǎn)的工作分離出來,由CKPT進(jìn)程實(shí)現(xiàn)。對于許多應(yīng)用情況,CKPT進(jìn)程是不必要的。只有當(dāng)數(shù)據(jù)庫有許多數(shù)據(jù)文件,LGWR在檢查點(diǎn)時明顯地降低性能才使CKPT運(yùn)行。CKPT進(jìn)程不將塊寫入磁盤,該工作是由DBWR完成的。 init.ora文件中 CHECKPOINT_PROCESS 參數(shù)控制CKPT進(jìn)程的使能或使不能。缺省時為FALSE,即為使不能。
歸檔進(jìn)程:在每次日志切換時把已滿的日志組進(jìn)行備份或歸檔
服務(wù)進(jìn)程:用戶進(jìn)程服務(wù)。
用戶進(jìn)程:在客戶端,負(fù)責(zé)將用戶的SQL語句傳遞給服務(wù)進(jìn)程,并從服務(wù)器段拿回查詢數(shù)據(jù)。
5、SCN(System ChangeNumber):
系統(tǒng)改變號,一個由系統(tǒng)內(nèi)部維護(hù)的序列號。當(dāng)系統(tǒng)需要更新的時候自動增加,他是系統(tǒng)中維持?jǐn)?shù)據(jù)的一致性和順序恢復(fù)的重要標(biāo)志。
小結(jié):
1.一個表空間只能屬于一個數(shù)據(jù)庫。
2.每個數(shù)據(jù)庫最少有一個控制文件(建議3個,分別放在不同的磁盤上)?! ?.每個數(shù)據(jù)庫最少有一個表空間(SYSTEM表空間)。
4.建立SYSTEM表空間的目的是盡量將目的相同的表存放在一起,以提高使用效率,只應(yīng)存放數(shù)據(jù)字典。
5.每個數(shù)據(jù)庫最少有兩個聯(lián)機(jī)日志組,每組最少一個聯(lián)機(jī)日志文件。
6.一個數(shù)據(jù)文件只能屬于一個表空間。
7.一個數(shù)據(jù)文件一旦被加入到一個表空間中,就不能再從這個表空間中移走,也不能再加入到其他表空間中。
8.建立新的表空間需要建立新的數(shù)據(jù)文件。
9.數(shù)據(jù)文件被ORACLE格式化為ORACLE塊,Oracle9i以前版本中,ORACLE塊的大小是在第一次創(chuàng)建數(shù)據(jù)庫時設(shè)定的。
10.并且以后不能改變,要想改變,只能重建數(shù)據(jù)庫。
11.一個段segment只能屬于一個表空間,但可以屬于多個數(shù)據(jù)文件。
12.一個區(qū)extent只能屬于一個數(shù)據(jù)文件,即區(qū)間(extent)不能跨越數(shù)據(jù)文件。
13.PCTFREE和PCTUSED總和不能大于等于100。
14.單獨(dú)一個事務(wù)不能跨越多個回滾段。
15.索引表不含ROWID值。
16.擁有不同大小的回滾段沒有任何益處。
17.COMMIT后,數(shù)據(jù)不一定立即寫盤(數(shù)據(jù)文件)。
18.一個事務(wù)即使不被提交,也會被寫入到重做日志中。
19.Oracle 8.0.4中,在初始安裝時建立的缺省數(shù)據(jù)庫,實(shí)例名為ORCL 。
20.一個塊的最大長度為16KB(有2K、4K、8K、16K)。 每個數(shù)據(jù)庫最大文件數(shù)(按塊大?。?div style="height:15px;">
2K塊 20000個文件
4K塊 40000個文件
8K塊或以上 65536個文件
21.oracle server可以同時啟動多個數(shù)據(jù)庫 。
22.一套操作系統(tǒng)上可以安裝多個版本的ORACLE數(shù)據(jù)庫系統(tǒng)(UNIX可以,NT不可以)。
23.一套ORACLE數(shù)據(jù)庫系統(tǒng)中可以有多個ORACLE數(shù)據(jù)庫及其相對應(yīng)的實(shí)例 。
24.每個ORACLE數(shù)據(jù)庫擁有一個數(shù)據(jù)庫實(shí)例(INSTANCE)(OPS除外)。25.所以,一套操作系統(tǒng)上同時可以有多個oracle數(shù)據(jù)庫實(shí)例啟動。
二、ORACLE性能調(diào)優(yōu)原則
任何事情都有它的源頭,要解決問題,也得從源頭開始,影響ORACLE性能的源頭非常多,主要包括如下方面:
數(shù)據(jù)庫的硬件配置:CPU、內(nèi)存、網(wǎng)絡(luò)條件
1. CPU:在任何機(jī)器中CPU的數(shù)據(jù)處理能力往往是衡量計算機(jī)性能的一個標(biāo)志,并且ORACLE是一個提供并行能力的數(shù)據(jù)庫系統(tǒng),在CPU方面的要求就更高了,如果運(yùn)行隊列數(shù)目超過了CPU處理的數(shù)目,性能就會下降,我們要解決的問題就是要適當(dāng)增加CPU的數(shù)量了,當(dāng)然我們還可以將需要許多資源的進(jìn)程KILL掉;
2. 內(nèi)存:衡量機(jī)器性能的另外一個指標(biāo)就是內(nèi)存的多少了,在ORACLE中內(nèi)存和我們在建數(shù)據(jù)庫中的交換區(qū)進(jìn)行數(shù)據(jù)的交換,讀數(shù)據(jù)時,磁盤I/O必須等待物理I/O操作完成,在出現(xiàn)ORACLE的內(nèi)存瓶頸時,我們第一個要考慮的是增加內(nèi)存,由于I/O的響應(yīng)時間是影響ORACLE性能的主要參數(shù),我將在這方面進(jìn)行詳細(xì)的講解
3. 網(wǎng)絡(luò)條件:NET*SQL負(fù)責(zé)數(shù)據(jù)在網(wǎng)絡(luò)上的來往,大量的SQL會令網(wǎng)絡(luò)速度變慢。比如10M的網(wǎng)卡和100的網(wǎng)卡就對NET*SQL有非常明顯的影響,還有交換機(jī)、集線器等等網(wǎng)絡(luò)設(shè)備的性能對網(wǎng)絡(luò)的影響很明顯,建議在任何網(wǎng)絡(luò)中不要試圖用3個集線器來將網(wǎng)段互聯(lián)。
OS參數(shù)的設(shè)置
下表給出了OS的參數(shù)設(shè)置及說明,DBA可以根據(jù)實(shí)際需要對這些參數(shù)進(jìn)行設(shè)置
內(nèi)核參數(shù)名
說明
bufpages
對buffer空間不按靜態(tài)分配,采用動態(tài)分配,使bufpages值隨nbuf一起對buffer空間進(jìn)行動態(tài)分配。
create_fastlinks
對HFS文件系統(tǒng)允許快速符號鏈接
dbc_max_pct
加大最大動態(tài)buffer空間所占物理內(nèi)存的百分比,以滿足應(yīng)用系統(tǒng)的讀寫命中率的需要。
dbc_min_pct
設(shè)置最小動態(tài)buffer空間所占物理內(nèi)存的百分比
desfree
提高開始交換操作的最低空閑內(nèi)存下限,保障系統(tǒng)的穩(wěn)定性,防止出現(xiàn)不可預(yù)見的系統(tǒng)崩潰(Crash)。
fs_async
允許進(jìn)行磁盤異步操作,提高CPU和磁盤的利用率
lotsfree
提高系統(tǒng)解除換頁操作的空閑內(nèi)存的上限值,保證應(yīng)用程序有足夠的可用內(nèi)存空間。
maxdsiz
針對系統(tǒng)數(shù)據(jù)量大的特點(diǎn),加大最大數(shù)據(jù)段的大小,保證應(yīng)用的需要。(32位)
maxdsiz_64bit
maximum process data segment size for 64_bit
Maxssiz
加大最大堆棧段的大小。(32_bit)
maxssiz_64bit
加大最大堆棧段的大小。(64_bit)
Maxtsiz
提高最大代碼段大小,滿足應(yīng)用要求
maxtsiz_64bit
原值過大,應(yīng)調(diào)小
Minfree
提高停止交換操作的自由內(nèi)存的上限
Shmem
允許進(jìn)行內(nèi)存共享,以提高內(nèi)存的利用率
Shmmax
設(shè)置最大共享內(nèi)存段的大小,完全滿足目前的需要
Timeslice
由于系統(tǒng)的瓶頸主要反映在磁盤I/O上,因此 降低時間片的大小,一方面可避免因磁盤I/O不暢造成CPU的等待,從而提高了CPU的綜合利用率。另一方面減少了進(jìn)程的阻塞量。
unlockable_mem
提高了不可鎖內(nèi)存的大小,使可用于換頁和交換的內(nèi)存空間擴(kuò)大,用以滿足系統(tǒng)對內(nèi)存管理的要求。
用戶SQL質(zhì)量
以上講的都是硬件方面的東西,在條件有限的條件下,我們可以調(diào)整應(yīng)用程序的SQL質(zhì)量:
1. 不要進(jìn)行全表掃描(Full Table Scan):全表掃描導(dǎo)致大量的I/O
2. 盡量建好和使用好索引:建索引也是有講究的,在建索引時,也不是索引越多越好,當(dāng)一個表的索引達(dá)到4個以上時,ORACLE的性能可能還是改善不了,因?yàn)镺LTP系統(tǒng)每表超過5個索引即會降低性能,而且在一個sql 中, Oracle 從不能使用超過 5個索引;當(dāng)我們用到GROUP BY和ORDER BY時,ORACLE就會自動對數(shù)據(jù)進(jìn)行排序,而ORACLE在INIT.ORA中決定了sort_area_size區(qū)的大小,當(dāng)排序不能在我們給定的排序區(qū)完成時,ORACLE就會在磁盤中進(jìn)行排序,也就是我們講的臨時表空間中排序, 過多的磁盤排序?qū)?free buffer waits 的值變高,而這個區(qū)間并不只是用于排序的,對于開發(fā)人員我提出如下忠告:
1)、select,update,delete 語句中的子查詢應(yīng)當(dāng)有規(guī)律地查找少于20%的表行.如果一個語句查找的行數(shù)超過總行數(shù)的20%,它將不能通過使用索引獲得性能上的提高.
2)、索引可能產(chǎn)生碎片,因?yàn)橛涗洀谋碇袆h除時,相應(yīng)也從表的索引中刪除.表釋放的空間可以再用,而索引釋放的空間卻不能再用.頻繁進(jìn)行刪除操作的被索引的表,應(yīng)當(dāng)階段性地重建索引,以避免在索引中造成空間碎片,影響性能.在許可的條件下,也可以階段性地truncate表,truncate命令刪除表中所有記錄,也刪除索引碎片.
3)、在使用索引時一定要按索引對應(yīng)字段的順序進(jìn)行引用。
4)、用(+)比用NOT IN更有效率。
降低ORACLE的競爭:
先講幾個ORACLE的幾個參數(shù),這幾個參數(shù)關(guān)系到ORACLE的競爭:
1)、freelists 和 freelist 組:他們負(fù)責(zé)ORACLE的處理表和索引的空間管理;
2)、pctfree 及 pctused:該參數(shù)決定了freelists 和 freelist 組的行為,pctfree 和pctused 參數(shù)的唯一目的就是為了控制塊如何在 freelists 中進(jìn)出
設(shè)置好pctfree 及 pctused對塊在freelists的移走和讀取很重要。
其他參數(shù)的設(shè)置
1)、包括SGA區(qū)(系統(tǒng)全局區(qū)):系統(tǒng)全局區(qū)(SGA)是一個分配給Oracle 的包含一個 Oracle 實(shí)例的數(shù)據(jù)庫的控制信息內(nèi)存段。
主要包括數(shù)據(jù)庫高速緩存(the database buffer cache),
重演日志緩存(the redo log buffer),
共享池(the shared pool),
數(shù)據(jù)字典緩存(the data dictionary cache)以及其它各方面的信息
2)、db_block_buffers(數(shù)據(jù)高速緩沖區(qū))訪問過的數(shù)據(jù)都放在這一片內(nèi)存區(qū)域,該參數(shù)越大,Oracle在內(nèi)存中找到相同數(shù)據(jù)的可能性就越大,也即加快了查詢速度。
3)、share_pool_size (SQL共享緩沖池):該參數(shù)是庫高速緩存和數(shù)據(jù)字典的高速緩存。
4)、Log_buffer (重演日志緩沖區(qū))
5)、sort_area_size(排序區(qū))
6)、processes (同時連接的進(jìn)程數(shù))
7)、db_block_size (數(shù)據(jù)庫塊大小):Oracle默認(rèn)塊為2KB,太小了,因?yàn)槿绻覀冇幸粋€8KB的數(shù)據(jù),則2KB塊的數(shù)據(jù)庫要讀4次盤,才能讀完,而8KB塊的數(shù)據(jù)庫只要1次就讀完了,大大減少了I/O操作。數(shù)據(jù)庫安裝完成后,就不能再改變db_block_size的值了,只能重新建立數(shù)據(jù)庫并且建庫時,要選擇手工安裝數(shù)據(jù)庫。
8)、open_links (同時打開的鏈接數(shù))
9)、dml_locks
10)、open_cursors (打開光標(biāo)數(shù))
11)、dbwr_io_slaves (后臺寫進(jìn)程數(shù))
三、oracle的備份與恢復(fù)
Oracle數(shù)據(jù)庫有三種標(biāo)準(zhǔn)的備份方法,它們分別是導(dǎo)出/導(dǎo)入(EXP/IMP)、熱備份和冷備份。導(dǎo)出備件是一種邏輯備份,冷備份和熱備份是物理備份。
導(dǎo)出/導(dǎo)入(Export/Import)
利用Export可將數(shù)據(jù)從數(shù)據(jù)庫中提取出來,利用Import則可崛〕隼吹氖菟突氐絆racle數(shù)據(jù)庫中去。
1、 簡單導(dǎo)出數(shù)據(jù)(Export)和導(dǎo)入數(shù)據(jù)(Import)
Oracle支持三種方式類型的輸出:
(1)、表方式(T方式),將指定表的數(shù)據(jù)導(dǎo)出。
(2)、用戶方式(U方式),將指定用戶的所有對象及數(shù)據(jù)導(dǎo)出。
(3)、全庫方式(Full方式),瘵數(shù)據(jù)庫中的所有對象導(dǎo)出。
數(shù)據(jù)導(dǎo)入(Import)的過程是數(shù)據(jù)導(dǎo)出(Export)的逆過程,分別將數(shù)據(jù)文件導(dǎo)入數(shù)據(jù)庫和將數(shù)據(jù)庫數(shù)據(jù)導(dǎo)出到數(shù)據(jù)文件。
2、 增量導(dǎo)出/導(dǎo)入
增量導(dǎo)出是一種常用的數(shù)據(jù)備份方法,它只能對整個數(shù)據(jù)庫來實(shí)施,并且必須作為SYSTEM來導(dǎo)出。在進(jìn)行此種導(dǎo)出時,系統(tǒng)不要求回答任何問題。導(dǎo)出文件名缺省為export.dmp,如果不希望自己的輸出文件定名為export.dmp,必須在命令行中指出要用的文件名。
增量導(dǎo)出包括三種類型:
(1)、“完全”增量導(dǎo)出(Complete)
即備份三個數(shù)據(jù)庫,比如:
exp system/manager inctype=complete file=040731.dmp
(2)、“增量型”增量導(dǎo)出
備份上一次備份后改變的數(shù)據(jù),比如:
exp system/manager inctype=incremental file=040731.dmp
(3)、“累積型”增量導(dǎo)出
累計型導(dǎo)出方式是導(dǎo)出自上次“完全”導(dǎo)出之后數(shù)據(jù)庫中變化了的信息。比如:
exp system/manager inctype=cumulative file=040731.dmp
數(shù)據(jù)庫管理員可以排定一個備份日程表,用數(shù)據(jù)導(dǎo)出的三個不同方式合理高效的完成。
比如數(shù)據(jù)庫的被封任務(wù)可以做如下安排:
星期一:完全備份(A)
星期二:增量導(dǎo)出(B)
星期三:增量導(dǎo)出(C)
星期四:增量導(dǎo)出(D)
星期五:累計導(dǎo)出(E)
星期六:增量導(dǎo)出(F)
星期日:增量導(dǎo)出(G)
四、常用命令
1.啟動Oracle Server.
Startup[nomount|mount|open][force][pfile=filename]
參數(shù)說明:
nomount:只啟動實(shí)例
mount:啟動實(shí)例,并裝載數(shù)據(jù)庫
open:啟動實(shí)例,裝載并打開數(shù)據(jù)庫。
Force:終止實(shí)例,并重新啟動數(shù)據(jù)庫。(默認(rèn)選項(xiàng))
Pfile:指定非默認(rèn)參數(shù)文件名。
2.停止Oracle Server
Shutdown [normal|transactional|immediate|abort]
參數(shù)說明:
normal:等待用戶斷開已存在連接,系統(tǒng)發(fā)出檢查點(diǎn),然后在同步數(shù)據(jù)文件、控制文
和重做日志文件之后關(guān)閉(默認(rèn)選項(xiàng))
transactional:等待客戶端結(jié)束事務(wù)之后,自動斷開用戶連接,然后再執(zhí)行normal。
Immediate:取消當(dāng)前所有SQL語句,回退所有未完成事務(wù),然后自動斷開,再執(zhí)行normal。
Abort:終止所有SQL語句,立即終止實(shí)例。不會發(fā)出檢查點(diǎn),所以也就不會去同步數(shù)據(jù)文件、控制文件和重做日志文件。
3. 總結(jié)和相關(guān)的一些腳本
A. 修改數(shù)據(jù)文件名、執(zhí)行完全恢復(fù)、執(zhí)行不完全恢復(fù)、改變?nèi)罩静僮髂J綍r系統(tǒng)必須在啟動實(shí)例并安裝數(shù)據(jù)庫的情況下startup mount;)
B. 創(chuàng)建數(shù)據(jù)庫或創(chuàng)建控制文件時系統(tǒng)只處于啟動實(shí)例狀態(tài)(startup nomount;)
C. 顯示SGA尺寸(show sga或select * from v$sga)
D.顯示當(dāng)前正在運(yùn)行的后臺進(jìn)程(select name from v$bgprocess where paddr != ‘00’)
E. 顯示Oracle Server狀態(tài)(select status from v$instance)
F. 顯示初始化參數(shù)信息(select * from v$parameter);
G.顯示物理文件(select * from v$controfile; select * from v$datafile; select * from v$logfile);
H. 部分?jǐn)?shù)據(jù)字典試圖:
all_objects, user_objects, dba_objects, user_source, user_segments,
user_tab_columns, user_constraints, all_users
I.為了客戶應(yīng)用可以訪問Oracle Server,在服務(wù)器端需要配置listener.ora文件,在客戶端需配置tnsnames.ora文件
第三章 控制文件
1.控制文件主要記載的信息:
數(shù)據(jù)庫名稱;數(shù)據(jù)庫文件名稱和位置;重做日志文件名稱和位置;表空間名稱;
當(dāng)前日志序列號; 檢查點(diǎn)信息; 日志歷史信息。
2. 多元化控制文件
1. 關(guān)閉數(shù)據(jù)庫
sqlplus/nolog;
connect system/admin@lgtest as sysdba;
shutdown immediate;
2. 復(fù)制控制文件
copy source controlfile to dest controlfile
例如:copy E:\oracle\oradata\lgtest\CONTROL01.CTL f:\controltest.ctl
3. 修改初始化參數(shù)control_files
control_files= E:\oracle\oradata\lgtest\CONTROL01.CTL, f:\controltest.ctl
4. 啟動數(shù)據(jù)庫
startup pfile= E:\oracle\admin\lgtest\pfile\ init.ora.108200317263
其作用:多元化控制文件后,只要有一個控制文件沒有被損壞,把其它損壞的控制文件從初始化參數(shù)文件中去掉重啟之后系統(tǒng)可以繼續(xù)運(yùn)行。
3. 重建控制文件的方法
1. 以nomount方式啟動實(shí)例
sqlplus/nolog;
connect system/admin@lgtest as sysdba;
shutdown normal;
startup nomount pfile=%racle_home%\database\init.ora;
2. 建立控制文件
create controlfile reuse database lgtest resetlogs
logfile
group 1 ‘E:\oracle\oradata\lgtest\ REDO01.LOG’ size 20M,
group 2 ‘E:\oracle\oradata\lgtest\ REDO02.LOG’ size 20M
datafile
‘E:\oracle\oradata\lgtest\ SYSTEM01.DBF’,
‘E:\oracle\oradata\lgtest\ UNDOTBS01.DBF’
character set ZHS16GBK;
3. 打開數(shù)據(jù)庫
alter database open resetlogs;
4. 增加臨時文件
a lter tablespace temp add tempfile ‘E:\oracle\oradata\lgtest\TEMP01.DBF’ reuse;
起作用:當(dāng)控制文件都被損壞后,只要有全部的數(shù)據(jù)文件和重做日志文件,那么通過重建控制文件可以使系統(tǒng)繼續(xù)運(yùn)行。