oracle基本組件概覽_第1頁(yè)
oracle基本組件概覽_第2頁(yè)
oracle基本組件概覽_第3頁(yè)
oracle基本組件概覽_第4頁(yè)
oracle基本組件概覽_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基本組件概覽 Oracle 體系結(jié)構(gòu)包括很多基本組件,將詳細(xì)介紹這些組件。 Oracle 服務(wù)器:Oracle 服務(wù)器中包含多種文件結(jié)構(gòu)、進(jìn)程結(jié)構(gòu)和內(nèi)存結(jié)構(gòu);但是,處理 SQL 語(yǔ)句時(shí),并非所有這些結(jié)構(gòu)都會(huì)用到。某些結(jié)構(gòu)用于提高數(shù)據(jù)庫(kù)的性能,確保該數(shù)據(jù)庫(kù)在遇到軟件或硬件錯(cuò)誤時(shí)可以恢復(fù),或者執(zhí)行維護(hù)該數(shù)據(jù)庫(kù)所需的其它任務(wù)。Oracle 服務(wù)器包括一個(gè) Oracle 例程和一個(gè) Oracle 數(shù)據(jù)庫(kù)。 數(shù)據(jù)庫(kù)服務(wù)器是信息管理的關(guān)鍵。一般來(lái)說(shuō),服務(wù)器必須可靠地管理多用戶(hù)環(huán)境中的大量數(shù)據(jù),以便多個(gè)用戶(hù)能夠同時(shí)訪(fǎng)問(wèn)同一數(shù)據(jù)。所有這一切都必須在保證高性能的同時(shí)進(jìn)行。數(shù)據(jù)庫(kù)服務(wù)器還必須防止未經(jīng)授權(quán)的訪(fǎng)問(wèn),并為故障恢復(fù)提供有效的解決方案。Oracle 例程:Oracle 例程是后臺(tái)進(jìn)程和內(nèi)存結(jié)構(gòu)的組合。只有啟動(dòng)例程后,才能訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。每次啟動(dòng)例程時(shí),會(huì)分配系統(tǒng)全局區(qū) (SGA) 并啟動(dòng) Oracle 后臺(tái)進(jìn)程。后臺(tái)進(jìn)程代表調(diào)用進(jìn)程執(zhí)行各種功能。它們把為每個(gè)用戶(hù)運(yùn)行的多個(gè) Oracle 程序所處理的功能統(tǒng)一起來(lái)。后臺(tái)進(jìn)程執(zhí)行輸入/輸出 (I/O),并監(jiān)視其它 Oracle 進(jìn)程來(lái)提高并行性,從而使性能和可靠性更加優(yōu)越。 Oracle 例程由系統(tǒng)全局區(qū) (SGA) 內(nèi)存結(jié)構(gòu)和用于管理數(shù)據(jù)庫(kù)的后臺(tái)進(jìn)程組成。例程是通過(guò)使用特定于每個(gè)操作系統(tǒng)的方法來(lái)標(biāo)識(shí)的。例程一次只能打開(kāi)和使用一個(gè)數(shù)據(jù)庫(kù)。建立連接和創(chuàng)建會(huì)話(huà)用戶(hù)只有在連接到例程后,才能向 Oracle 數(shù)據(jù)庫(kù)提交 SQL 語(yǔ)句。 用戶(hù)啟動(dòng) SQL*Plus 之類(lèi)的工具,或者運(yùn)行使用 Oracle Forms 之類(lèi)的工具開(kāi)發(fā)的應(yīng)用程序。該應(yīng)用程序或工具將作為用戶(hù)進(jìn)程來(lái)執(zhí)行。 在最基本的配置中,用戶(hù)登錄到 Oracle 服務(wù)器時(shí),運(yùn)行 Oracle 服務(wù)器的計(jì)算機(jī)上就會(huì)創(chuàng)建一個(gè)進(jìn)程。這個(gè)進(jìn)程稱(chēng)為服務(wù)器進(jìn)程。服務(wù)器進(jìn)程代表客戶(hù)機(jī)上運(yùn)行的用戶(hù)進(jìn)程與 Oracle 例程進(jìn)行通信。服務(wù)器進(jìn)程代表用戶(hù)執(zhí)行 SQL 語(yǔ)句。 連接:連接是用戶(hù)進(jìn)程和 Oracle 服務(wù)器之間的通信路徑。數(shù)據(jù)庫(kù)用戶(hù)可以采用以下三種方式之一連接到 Oracle 服務(wù)器: 用戶(hù)登錄到運(yùn)行 Oracle 例程的操作系統(tǒng)上,然后啟動(dòng)訪(fǎng)問(wèn)該系統(tǒng)中的數(shù)據(jù)庫(kù)的應(yīng)用程序或工具。通信路徑是使用主機(jī)操作系統(tǒng)上的進(jìn)程間通信機(jī)制建立的。 用戶(hù)在本地計(jì)算機(jī)上啟動(dòng)應(yīng)用程序或工具,然后通過(guò)網(wǎng)絡(luò)連接到運(yùn)行 Oracle 例程的計(jì)算機(jī)。在這個(gè)稱(chēng)為客戶(hù)機(jī)/服務(wù)器的配置中,用戶(hù)和 Oracle 服務(wù)器使用網(wǎng)絡(luò)軟件進(jìn)行通信。 在三層連接中,用戶(hù)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)與應(yīng)用程序服務(wù)器或網(wǎng)絡(luò)服務(wù)器進(jìn)行通信,這些服務(wù)器又通過(guò)網(wǎng)絡(luò)與運(yùn)行 Oracle 例程的計(jì)算機(jī)連接。例如,用戶(hù)在網(wǎng)絡(luò)中的一臺(tái)計(jì)算機(jī)上運(yùn)行瀏覽器來(lái)使用位于 NT 服務(wù)器上的應(yīng)用程序,該 NT 服務(wù)器又從 UNIX 主機(jī)上運(yùn)行的 Oracle 數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。 會(huì)話(huà):會(huì)話(huà)是用戶(hù)與 Oracle 服務(wù)器的一種特定連接。會(huì)話(huà)在 Oracle 服務(wù)器驗(yàn)證用戶(hù)后啟動(dòng),當(dāng)用戶(hù)退出或出現(xiàn)異常終止時(shí)會(huì)話(huà)結(jié)束。對(duì)某個(gè)具體的數(shù)據(jù)庫(kù)用戶(hù)來(lái)說(shuō),如果該用戶(hù)從很多工具、應(yīng)用程序或者終端同時(shí)登錄,則可能有很多并發(fā)會(huì)話(huà)。除了一些專(zhuān)用的數(shù)據(jù)庫(kù)管理工具以外,啟動(dòng)數(shù)據(jù)庫(kù)會(huì)話(huà)還要求 Oracle 服務(wù)器可供使用。 注:在此處所講的連接類(lèi)型中,用戶(hù)進(jìn)程和服務(wù)器進(jìn)程之間存在一對(duì)一的通信關(guān)系,這稱(chēng)作專(zhuān)用服務(wù)器連接。使用共享服務(wù)器 (Shared Server) 配置時(shí),多個(gè)用戶(hù)進(jìn)程可以共享服務(wù)器進(jìn)程。Oracle 數(shù)據(jù)庫(kù):Oracle 數(shù)據(jù)庫(kù)包含操作系統(tǒng)文件(也稱(chēng)為數(shù)據(jù)庫(kù)文件),這些文件為數(shù)據(jù)庫(kù)信息提供了實(shí)際的物理存儲(chǔ)。數(shù)據(jù)庫(kù)文件用于確保數(shù)據(jù)一致性并能在例程失敗時(shí)得以恢復(fù)。 數(shù)據(jù)庫(kù)的一般用途是存儲(chǔ)和檢索相關(guān)信息。Oracle 數(shù)據(jù)庫(kù)具有邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)是數(shù)據(jù)庫(kù)中操作系統(tǒng)文件的集合。Oracle 數(shù)據(jù)庫(kù)包含以下三類(lèi)文件: 數(shù)據(jù)文件,包含數(shù)據(jù)庫(kù)中的實(shí)際數(shù)據(jù) 重做日志文件,包含數(shù)據(jù)庫(kù)的更改記錄,可以在出現(xiàn)故障時(shí)恢復(fù)數(shù)據(jù) 控制文件,包含維護(hù)和驗(yàn)證數(shù)據(jù)庫(kù)完整性所需的信息 其它關(guān)鍵文件:非數(shù)據(jù)庫(kù)文件用于配置例程、驗(yàn)證特權(quán)用戶(hù)以及在磁盤(pán)出現(xiàn)故障時(shí) 恢復(fù)數(shù)據(jù)庫(kù)。 Oracle 服務(wù)器還使用一些其它文件,這些文件并不是數(shù)據(jù)庫(kù)的一部分: 參數(shù)文件,用來(lái)定義 Oracle 例程的特性。例如,它包含調(diào)整 SGA 中一些內(nèi)存結(jié)構(gòu)大小的參數(shù)。 口令文件 驗(yàn)證哪些用戶(hù)有權(quán)啟動(dòng)和關(guān)閉 Oracle 例程。 歸檔的重做日志文件 是重做日志文件的脫機(jī)副本,當(dāng)必須從介質(zhì)失敗中進(jìn)行恢復(fù)時(shí)可能會(huì)需要這些副本。用戶(hù)進(jìn)程和服務(wù)器進(jìn)程:執(zhí)行 SQL 語(yǔ)句時(shí),用戶(hù)進(jìn)程和服務(wù)器進(jìn)程是其中涉及的主要進(jìn)程;但是,其它進(jìn)程也會(huì)有助于服務(wù)器完成 SQL 語(yǔ)句的處理。 其它進(jìn)程:還有很多供其它選件使用的其它進(jìn)程,例如,高級(jí)排隊(duì) (Advanced Queuing)、實(shí)時(shí)應(yīng)用集群 (Real Application Clusters)、共享服務(wù)器 (Shared Server) 和 高級(jí)復(fù)制 (Advanced Replication) 等。物理結(jié)構(gòu) Oracle 數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)包括以下三種文件類(lèi)型:控制文件、數(shù)據(jù)文件和重做日志文件。 內(nèi)存結(jié)構(gòu)Oracle 的內(nèi)存結(jié)構(gòu)由兩個(gè)內(nèi)存區(qū)組成,分別是: 系統(tǒng)全局區(qū) (SGA) :在例程啟動(dòng)時(shí)分配,是 Oracle 例程的基本組件 程序全局區(qū) (PGA) :在服務(wù)器進(jìn)程啟動(dòng)時(shí)分配 系統(tǒng)全局區(qū) (SGA)SGA包括以下幾種內(nèi)存結(jié)構(gòu): 共享池 數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存 重做日志緩沖區(qū) 其它結(jié)構(gòu)(例如鎖定和栓鎖管理以及統(tǒng)計(jì)數(shù)據(jù)) 在SGA中還可配置其它兩種內(nèi)存結(jié)構(gòu): 大型共享池 Java 池SGA 也稱(chēng)作共享全局區(qū),用于存儲(chǔ)數(shù)據(jù)庫(kù)進(jìn)程共享的數(shù)據(jù)庫(kù)信息。它包含有關(guān) Oracle 服務(wù)器的數(shù)據(jù)和控制信息,在 Oracle 服務(wù)器所在計(jì)算機(jī)的虛擬內(nèi)存中分配。要查看 SGA 內(nèi)存的分配情況,可以使用下面的語(yǔ)句: SQL SHOW SGA:動(dòng)態(tài) SGA:從 Oracle9i 開(kāi)始,動(dòng)態(tài) SGA 實(shí)施了一種體系結(jié)構(gòu),可以對(duì) SGA 配置進(jìn)行更改,而不必關(guān)閉例程。這樣,在不關(guān)閉例程的情況下,就可以更改數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存和共享池的大小。因此,開(kāi)始時(shí)可將數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存和共享池配置為一個(gè)較小的值,然后根據(jù)它們各自的工作量增減,但最大值不能超過(guò)由 SGA_MAX_SIZE 指定的值。 調(diào)整 SGA 的大小: SGA 的大小由幾個(gè)初始化參數(shù)決定。對(duì) SGA 的大小影響最大的參數(shù)有: DB_CACHE_SIZE:標(biāo)準(zhǔn)塊的高速緩存大小。對(duì)于 UNIX,缺省值是 48 MB,對(duì)于 NT, 缺省值是 52 MB LOG_BUFFER:為重做日志緩沖區(qū)分配的字節(jié)數(shù) SHARED_POOL_SIZE:專(zhuān)用于共享 SQL 和 PL/SQL 的內(nèi)存區(qū)的大小(以字節(jié)為單位)。缺省值是 16 MB。如果是 64 位,則缺省值是 64 MB LARGE_POOL_SIZE:大型共享池的大小。缺省值是零(如果未將 init.ora 參數(shù) PARALLEL_AUTOMATIC_TUNING 設(shè)置為 TRUE,則自動(dòng)計(jì)算缺省值。) JAVA_POOL_SIZE:Java 池的大小。缺省值是 24 MB 因此,SGA 的大小不能超過(guò) SGA_MAX_SIZE - DB_CACHE_SIZE - LOG_BUFFER SHARED_POOL_SIZE - LARGE_POOL_SIZE - JAVA_POOL_SIZE。 分配單位: 粒組是一個(gè)連續(xù)虛擬內(nèi)存分配單位。粒組的大小取決于估算的 SGA 的總大小,這個(gè)總大小是根據(jù)參數(shù) SGA_MAX_SIZE 的值計(jì)算的。 如果估算的 SGA 的大小小于 128 MB,那么粒組大小是 4 MB 否則為 16 MB組件(數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存和共享池)能夠以粒組為單位進(jìn)行增減。對(duì)于擁有粒組的每個(gè)組件而言,分配給該組件的粒組數(shù)、對(duì)該組件執(zhí)行但暫時(shí)掛起的任何操作(例如,通過(guò) ALTER SYSTEM 分配粒組、通過(guò) ALTER SYSTEM 釋放粒組,相應(yīng)的自身優(yōu)化),以及以粒組為單位的目標(biāo)大小都將由 V$BUFFER_POOL 視圖來(lái)跟蹤和顯示。啟動(dòng)例程時(shí),Oracle 服務(wù)器將分配粒組條目,每個(gè)粒組使用一個(gè)條目來(lái)支持 SGA_MAX_SIZE 字節(jié)的地址空間。繼續(xù)啟動(dòng)時(shí),每個(gè)組件將根據(jù)需要獲取足夠的粒組。SGA 的最低配置是三個(gè)粒組(一個(gè)粒組用于固定的 SGA(包括重做緩沖區(qū));一個(gè)粒組用于數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存;另一個(gè)粒組用于共享池)。共享池用于存儲(chǔ):最近執(zhí)行的 SQL 語(yǔ)句 最近使用的數(shù)據(jù)定義 它包括以下兩個(gè)與性能相關(guān)的關(guān)鍵內(nèi)存結(jié)構(gòu): 庫(kù)高速緩存 數(shù)據(jù)字典高速緩存 其大小由 SHARED_POOL_SIZE 參數(shù)確定共享池環(huán)境既包含固定結(jié)構(gòu),也包含可變結(jié)構(gòu)。固定結(jié)構(gòu)的大小相對(duì)保持不變,而可變結(jié)構(gòu)的大小會(huì)根據(jù)用戶(hù)和程序的需求增減。固定結(jié)構(gòu)和可變結(jié)構(gòu)的實(shí)際大小由一個(gè)初始化參數(shù)和 Oracle 內(nèi)部算法來(lái)確定。 調(diào)整共享池大小: 由于共享池用于可以全局共享的對(duì)象,如可重復(fù)使用的 SQL 執(zhí)行計(jì)劃、PL/SQL 程序包、過(guò)程、函數(shù)和游標(biāo)信息,所以必須對(duì)它的大小進(jìn)行調(diào)整,以滿(mǎn)足固定區(qū)和可變區(qū)的需要。分配給共享池的內(nèi)存由 SHARED_POOL_SIZE 初始化參數(shù)確定。使用 ALTER SYSTEM SET,便可以動(dòng)態(tài)地重新調(diào)整它的大小。經(jīng)過(guò)性能分析后,就可以調(diào)整它的大小,但 SGA 的總大小不能超過(guò) SGA_MAX_SIZE。 庫(kù)高速緩存 庫(kù)高速緩存的大小視所定義的共享池大小而定。內(nèi)存分配是在對(duì)語(yǔ)句進(jìn)行語(yǔ)法分析或調(diào)用程序單元時(shí)進(jìn)行。如果共享池的大小太小,就會(huì)將語(yǔ)句連續(xù)重新載入庫(kù)高速緩存,從而使性能受到影響。庫(kù)高速緩存由算法 LRU 來(lái)管理。高速緩存填滿(mǎn)時(shí),將從庫(kù)高速緩存中刪除最近很少使用的執(zhí)行路徑和語(yǔ)法分析樹(shù),以便為新條目騰出空間。如果某些 SQL 或 PL/SQL 語(yǔ)句未再次使用,它們最終會(huì)被刪除。 庫(kù)高速緩存包括以下兩個(gè)結(jié)構(gòu): 共享 SQL:共享 SQL 為針對(duì)數(shù)據(jù)庫(kù)運(yùn)行的 SQL 語(yǔ)句存儲(chǔ)并共享執(zhí)行計(jì)劃和語(yǔ)法分析樹(shù)。下次運(yùn)行同一 SQL 語(yǔ)句時(shí),這個(gè)語(yǔ)句就能利用共享 SQL 提供的語(yǔ)法分析信息來(lái)加快其執(zhí)行速度。要確保 SQL 語(yǔ)句隨時(shí)可以使用共享 SQL 區(qū),文本、方案和綁定變量必須完全相同。 共享 PL/SQL:共享 PL/SQL 區(qū)存儲(chǔ)并共享最近執(zhí)行的 PL/SQL 語(yǔ)句。經(jīng)過(guò)語(yǔ)法分析和編譯的程序單元和過(guò)程(函數(shù)、程序包和觸發(fā)器)都存儲(chǔ)在這個(gè)區(qū)中。 數(shù)據(jù)字典高速緩存 數(shù)據(jù)字典高速緩存也稱(chēng)作字典高速緩存或行高速緩存。將數(shù)據(jù)字典信息同時(shí)高速緩存到數(shù)據(jù)庫(kù)緩沖區(qū)和共享池內(nèi)存中,可以提高性能。有關(guān)數(shù)據(jù)庫(kù)(用戶(hù)帳戶(hù)數(shù)據(jù)、數(shù)據(jù)文件名、段名、區(qū)的位置、表的說(shuō)明和用戶(hù)權(quán)限)的信息都存儲(chǔ)在數(shù)據(jù)字典表中。當(dāng)服務(wù)器需要用到這類(lèi)信息時(shí),將會(huì)讀取數(shù)據(jù)字典表,返回的數(shù)據(jù)將存儲(chǔ)在數(shù)據(jù)字典高速緩存中。 調(diào)整數(shù)據(jù)字典的大小: 數(shù)據(jù)字典的整體大小取決于共享池的大小,并由數(shù)據(jù)庫(kù)進(jìn)行內(nèi)部管理。如果數(shù)據(jù)字典高速緩存太小,那么數(shù)據(jù)庫(kù)必須對(duì)數(shù)據(jù)字典表進(jìn)行反復(fù)地查詢(xún),才能獲得服務(wù)器所需要的信息。這些查詢(xún)稱(chēng)作遞歸調(diào)用,它在速度上要慢于對(duì)數(shù)據(jù)字典高速緩存所進(jìn)行的直接查詢(xún),因?yàn)橹苯硬樵?xún)不使用 SQL。處理查詢(xún)時(shí),Oracle 服務(wù)器進(jìn)程在數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中查找任何所需的塊。如果未在數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中找到這個(gè)塊,服務(wù)器進(jìn)程就從數(shù)據(jù)文件讀取這個(gè)塊,并在數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中放置一個(gè)副本。由于對(duì)同一個(gè)塊的后續(xù)請(qǐng)求可以在內(nèi)存中找到這個(gè)塊,因此這些請(qǐng)求可能不需要進(jìn)行物理讀取。Oracle 服務(wù)器使用 LRU 算法來(lái)釋放近期未被訪(fǎng)問(wèn)的緩沖區(qū),以便在數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中為新塊騰出空間。數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存 存儲(chǔ)已從數(shù)據(jù)文件中檢索到的數(shù)據(jù)塊的副本 能夠大幅提高獲取和更新數(shù)據(jù)時(shí)的性能 通過(guò) LRU 算法管理 主塊的大小由 DB_BLOCK_SIZE 確定 處理查詢(xún)時(shí),Oracle 服務(wù)器進(jìn)程在數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中查找任何所需的塊。如果未在數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中找到這個(gè)塊,服務(wù)器進(jìn)程就從數(shù)據(jù)文件讀取這個(gè)塊,并在數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中放置一個(gè)副本。由于對(duì)同一個(gè)塊的后續(xù)請(qǐng)求可以在內(nèi)存中找到這個(gè)塊,因此這些請(qǐng)求可能不需要進(jìn)行物理讀取。Oracle 服務(wù)器使用 LRU 算法來(lái)釋放近期未被訪(fǎng)問(wèn)的緩沖區(qū),以便在數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中為新塊騰出空間。調(diào)整數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存的大?。?數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中每個(gè)緩沖區(qū)的大小等于一個(gè) Oracle 塊的大小,它由DB_BLOCK_SIZE 參數(shù)來(lái)指定。數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存由獨(dú)立的子高速緩存組成,子高速緩存用于緩沖區(qū)池和多個(gè)塊大小。參數(shù) DB_BLOCK_SIZE 確定主塊的大小,主塊的大小用于 SYSTEM 表空間。 以下三個(gè)參數(shù)定義了數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存的大?。?DB_CACHE_SIZE:只調(diào)整缺省緩沖區(qū)高速緩存的大小,這個(gè)參數(shù)始終存在且不能設(shè)置為零 DB_KEEP_CACHE_SIZE:調(diào)整保留緩沖區(qū)高速緩存的大小,用于保留內(nèi)存中很可能會(huì)重新使用的塊 DB_RECYCLE_CACHE_SIZE:調(diào)整循環(huán)緩沖區(qū)高速緩存的大小,用于刪除內(nèi)存中重新使用的可能性很小的塊緩沖區(qū)高速緩存咨詢(xún)功能: 緩沖區(qū)高速緩存咨詢(xún)功能可以啟用和禁用統(tǒng)計(jì)信息的收集,這些統(tǒng)計(jì)信息用于預(yù)測(cè)不同高速緩存大小的行為。這些統(tǒng)計(jì)信息所提供的信息可以幫助您針對(duì)具體的工作量,調(diào)整數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存的大小,以達(dá)到最佳性能。緩沖區(qū)高速緩存咨詢(xún)信息通過(guò) V$DB_CACHE_ADVICE 視圖收集和顯示。 可以通過(guò)初始化參數(shù) DB_CACHE_ADVICE 啟用緩沖區(qū)高速緩存咨詢(xún)功能。這個(gè)參數(shù)是一個(gè)動(dòng)態(tài)參數(shù),可以使用 ALTER SYSTEM 來(lái)更改??晒┦褂玫娜齻€(gè)值是 OFF、ON 和 READY。 DB_CACHE_ADVICE 參數(shù)值: OFF:咨詢(xún)功能關(guān)閉,并且沒(méi)有為咨詢(xún)功能分配內(nèi)存 ON:咨詢(xún)功能打開(kāi),并產(chǎn)生 CPU 和內(nèi)存開(kāi)銷(xiāo) 如果參數(shù)處于 OFF 狀態(tài),在嘗試將它設(shè)置為 ON 狀態(tài)時(shí)會(huì)產(chǎn)生 ORA-4031 錯(cuò)誤:當(dāng)參數(shù)切換到 ON 時(shí),無(wú)法從共享池分配內(nèi)存。如果參數(shù)處于 READY 狀態(tài),則能正確地設(shè)置為 ON,因?yàn)榇藭r(shí)已為咨詢(xún)功能分配內(nèi)存。 READY:咨詢(xún)功能關(guān)閉,但已經(jīng)為咨詢(xún)功能分配內(nèi)存。在實(shí)際打開(kāi)咨詢(xún)功能前分配內(nèi)存可以避免產(chǎn)生 ORA-4031 錯(cuò)誤。如果將參數(shù)從 OFF 狀態(tài)直接切換到 ON,可能會(huì)產(chǎn)生 ORA-4031 錯(cuò)誤。 重做日志緩沖區(qū) 記錄對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)塊所做的全部更改 主要用于恢復(fù) 其中記錄的更改稱(chēng)作重做條目 重做條目包含用于重新構(gòu)造或重做更改的信息 大小由 LOG_BUFFER 定義重做日志緩沖區(qū)是一個(gè)循環(huán)緩沖區(qū),它包含對(duì)數(shù)據(jù)文件塊所做的各種更改。此信息存儲(chǔ)在重做條目中。重做條目包含將數(shù)據(jù)恢復(fù)到使用 INSERT、UPDATE、DELETE、 CREATE、ALTER、或 DROP 操作進(jìn)行更改前的狀態(tài)所需要的信息。 調(diào)整重做日志緩沖區(qū)的大?。?重做日志緩沖區(qū)的大小由初始化參數(shù) LOG_BUFFER 定義。 大型共享池SGA 中的可選內(nèi)存區(qū) 分擔(dān)了共享池的一部分工作 用于:共享服務(wù)器的會(huì)話(huà)內(nèi)存 (UGA) I/O 服務(wù)器進(jìn)程 備份和恢復(fù)操作或 RMAN 并行執(zhí)行消息緩沖區(qū) 將 PARALLEL_AUTOMATIC_TUNING 設(shè)置為 TRUE不使用 LRU 列表 大小由 LARGE_POOL_SIZE 確定通過(guò)從大型共享池為共享服務(wù)器、Oracle XA 或并行查詢(xún)緩沖區(qū)分配會(huì)話(huà)內(nèi)存,Oracle 可將共享池主要用于高速緩存共享的 SQL 語(yǔ)句。這樣,便減輕了共享池中各區(qū)的工作負(fù)擔(dān)。共享池?zé)o需再提供內(nèi)存以高速緩存 SQL 語(yǔ)法分析樹(shù),來(lái)支持共享服務(wù)器會(huì)話(huà)信息、I/O 以及備份和恢復(fù)進(jìn)程。由于增減共享 SQL 高速緩存的開(kāi)銷(xiāo)降低,性能得以提高。 備份和恢復(fù): 如果設(shè)置了 BACKUP_DISK_IO= n 和 BACKUP_TAPE_IO_SLAVE = TRUE 參數(shù),則恢復(fù)管理器 (RMAN) 將使用大型共享池。如果大型共享池已經(jīng)配置,但不夠大,則在大型共享池中分配內(nèi)存就會(huì)失敗。RMAN 將錯(cuò)誤消息寫(xiě)入警報(bào)日志文件,而且不使用 I/O 操作進(jìn)行備份或恢復(fù)操作。 并行執(zhí)行: 如果將 PARALLEL_AUTOMATIC_TUNING 設(shè)置為 TRUE,將使用大型共享池。否則,將把這些緩沖區(qū)分配至共享池。 調(diào)整大型共享池的大?。?大型共享池的大小由 LARGE_POOL_SIZE 參數(shù)定義,單位是字節(jié)。該參數(shù)不是動(dòng)態(tài)參數(shù)。 大型共享池和 LRU 列表: 大型共享池并不包含 LRU 列表。它與使用 LRU 列表的共享池中的保留空間不同。Java 池存儲(chǔ)Java命令的服務(wù)分析要求 在安裝并使用Java時(shí)是必需的 大小由JAVA_POOL_SIZE參數(shù)確定Java 池是一個(gè)可選設(shè)置,但如果安裝并使用 Java,則需要使用 Java 池。Java 池大小可以使用 JAVA_POOL_SIZE 參數(shù)設(shè)置,單位為字節(jié)。在 Oracle9i,Java 池的缺省大小是 24 MB。 程序全局區(qū) (PGA)程序全局區(qū)或進(jìn)程全局區(qū) (PGA) 是內(nèi)存區(qū),它包含有關(guān)單個(gè)服務(wù)器進(jìn)程或單個(gè)后臺(tái)進(jìn)程的數(shù)據(jù)和控制信息。PGA 在創(chuàng)建進(jìn)程時(shí)分配,并在終止進(jìn)程時(shí)回收。與由若干個(gè)進(jìn)程共享的 SGA 相比,PGA 是僅供一個(gè)進(jìn)程使用的區(qū)。 PGA 的內(nèi)容: PGA 內(nèi)存的內(nèi)容會(huì)因不同情況而變化,這取決于例程是在專(zhuān)用服務(wù)器配置還是在共享服務(wù)器配置下運(yùn)行。一般來(lái)講,PGA 內(nèi)存包括下列組件: 專(zhuān)用 SQL 區(qū):包含綁定信息和運(yùn)行時(shí)內(nèi)存結(jié)構(gòu)之類(lèi)的數(shù)據(jù)。發(fā)出 SQL 語(yǔ)句的每個(gè)會(huì)話(huà)均擁有一個(gè)專(zhuān)用 SQL 區(qū)。提交同一 SQL 語(yǔ)句的每個(gè)用戶(hù)都擁有自己的使用單個(gè)共享 SQL 區(qū)的專(zhuān)用 SQL 區(qū)。因此,許多專(zhuān)用 SQL 區(qū)都與同一個(gè)共享 SQL 區(qū)相關(guān)聯(lián)。一個(gè)游標(biāo)的專(zhuān)用 SQL 區(qū)可以分成以下兩個(gè)區(qū): 永久區(qū):包含綁定信息,并且只在關(guān)閉游標(biāo)時(shí)釋放 運(yùn)行時(shí)區(qū):在執(zhí)行請(qǐng)求時(shí)的第一步創(chuàng)建。對(duì)于 INSERT、UPDATE 和 DELETE 命令,該區(qū)在執(zhí)行語(yǔ)句后釋放,對(duì)于查詢(xún)操作,該區(qū)只在提取所有行或取消查詢(xún)后釋放。 專(zhuān)用 SQL 區(qū)的位置取決于為會(huì)話(huà)建立的連接類(lèi)型。在專(zhuān)用服務(wù)器環(huán)境中,專(zhuān)用 SQL 區(qū)位于各自服務(wù)器進(jìn)程的 PGA 中。在共享服務(wù)器環(huán)境中,專(zhuān)用 SQL 區(qū)位于 SGA 中。 管理專(zhuān)用 SQL 區(qū)是用戶(hù)進(jìn)程的職責(zé)。用戶(hù)進(jìn)程可以分配的專(zhuān)用 SQL 區(qū)的數(shù)目始終由初始化參數(shù) OPEN_CURSORS 來(lái)限制。該參數(shù)的缺省值是 50。 會(huì)話(huà)內(nèi)存:包含為保留會(huì)話(huà)變量以及與該會(huì)話(huà)相關(guān)的其它信息而分配的內(nèi)存。對(duì)于共享服務(wù)器環(huán)境,該會(huì)話(huà)是共享的而不是專(zhuān)用的。 SQL 工作區(qū):用于大量占用內(nèi)存的操作,如排序、散列聯(lián)接、位圖合并和位圖創(chuàng)建。工作區(qū)的大小可進(jìn)行控制和調(diào)整。 自 Oracle9i 起,工作區(qū)的大小可以進(jìn)行自動(dòng)的全局管理。要實(shí)現(xiàn)這種功能,可將 WORKAREA_SIZE_POLICY 參數(shù)設(shè)置成缺省情況下的 AUTO,同時(shí)設(shè)置 PGA_AGGREGATE_TARGET 初始化參數(shù)。DBA 可以對(duì) PGA_AGGREGATE_TARGET 參數(shù)進(jìn)行設(shè)置,以指定該例程可以使用的 PGA 內(nèi)存的目標(biāo)聚集數(shù)目。此參數(shù)只是 一個(gè)指標(biāo),可以由 DBA 在例程一級(jí)動(dòng)態(tài)修改。設(shè)置值的單位可以是字節(jié)數(shù)、千字 節(jié)數(shù)、兆字節(jié)數(shù)或吉字節(jié)數(shù)。設(shè)置完這些參數(shù)后,工作區(qū)的大小即可自動(dòng)調(diào)整,這 些會(huì)話(huà)將忽略所有的 *_AREA_SIZE 參數(shù)。 專(zhuān)用服務(wù)器和共享服務(wù)器之間的內(nèi)存分配差異: PGA 內(nèi)存的內(nèi)容會(huì)因不同情況而變化,這取決于例程是在專(zhuān)用服務(wù)器配置下還是在共享服務(wù)器配置下運(yùn)行。一般來(lái)講,PGA 內(nèi)存包括下列組件: 進(jìn)程結(jié)構(gòu) Oracle 利用了以下幾種進(jìn)程的優(yōu)勢(shì): 用戶(hù)進(jìn)程:在數(shù)據(jù)庫(kù)用戶(hù)請(qǐng)求連接到 Oracle 服務(wù)器時(shí) 啟動(dòng) 請(qǐng)求與 Oracle 服務(wù)器交互的程序 必須先建立連接 不與 Oracle 服務(wù)器直接交互 需要從數(shù)據(jù)庫(kù)請(qǐng)求信息的數(shù)據(jù)庫(kù)用戶(hù)必須先建立與 Oracle 服務(wù)器的連接。連接由 SQL*Plus 這類(lèi)的數(shù)據(jù)庫(kù)接口工具請(qǐng)求,并開(kāi)始用戶(hù)進(jìn)程。用戶(hù)進(jìn)程并不與 Oracle 服務(wù)器直接進(jìn)行交互操作,而是通過(guò)用戶(hù)程序接口 (UPI) 生成各種調(diào)用。用戶(hù)程序接口則可以創(chuàng)建會(huì)話(huà)并啟動(dòng)服務(wù)器進(jìn)程。 服務(wù)器進(jìn)程:與 Oracle 例程相連接,在用戶(hù)建立會(huì)話(huà) 時(shí)啟動(dòng) 直接與 Oracle 服務(wù)器交互的程序 執(zhí)行生成的調(diào)用并返回相關(guān)結(jié)果 可以是專(zhuān)用服務(wù)器或共享服務(wù)器 用戶(hù)建立連接后,服務(wù)器進(jìn)程便會(huì)啟動(dòng),以處理用戶(hù)進(jìn)程的請(qǐng)求。服務(wù)器進(jìn)程可以是專(zhuān)用服務(wù)器進(jìn)程或共享服務(wù)器進(jìn)程。在專(zhuān)用服務(wù)器環(huán)境中,服務(wù)器進(jìn)程只處理一個(gè)用戶(hù)進(jìn)程的請(qǐng)求。用戶(hù)進(jìn)程斷開(kāi)連接后,服務(wù)器進(jìn)程就會(huì)終止。在共享服務(wù)器環(huán)境中,服務(wù)器進(jìn)程將處理多個(gè)用戶(hù)進(jìn)程的請(qǐng)求。服務(wù)器進(jìn)程可以通過(guò) Oracle 程序接口 (OPI) 與 Oracle 服務(wù)器進(jìn)行通信。 后臺(tái)進(jìn)程:在 Oracle 例程啟動(dòng)時(shí)啟動(dòng) 維護(hù)并加強(qiáng)物理結(jié)構(gòu)與內(nèi)存結(jié)構(gòu)之間的關(guān)系 必備的后臺(tái)進(jìn)程:DBWnPMONCKPT LGWRSMON 可選的后臺(tái)進(jìn)程:ARCnLMDn RECO CJQ0LMON Snnn DnnnPnnn LCKnQMNn Oracle 體系結(jié)構(gòu)有五個(gè)必備的后臺(tái)進(jìn)程,本課將詳細(xì)介紹這些進(jìn)程。除了必備的后臺(tái)進(jìn)程列表以外,Oracle 體系結(jié)構(gòu)中還有很多可選的后臺(tái)進(jìn)程。如果選擇使用這些可選的后臺(tái)進(jìn)程,它們便會(huì)啟動(dòng)。除了 ARCn 后臺(tái)進(jìn)程之外,這些可選的進(jìn)程不在本課所涉及的范圍之內(nèi)。下面列出了一些可選的后臺(tái)進(jìn)程: RECO:恢復(fù)程序 QMNn:高級(jí)排隊(duì) ARCn:歸檔程序 LCKn: RAC 鎖管理器 例程鎖 LMON:RAC DLM 監(jiān)控程序 全局鎖 LMDn:RAC DLM 監(jiān)控程序 遠(yuǎn)程鎖 CJQ0:協(xié)調(diào)程序作業(yè)隊(duì)列后臺(tái)進(jìn)程 Dnnn:調(diào)度程序 Snnn:共享服務(wù)器 Pnnn:并行查詢(xún)從屬 數(shù)據(jù)庫(kù)寫(xiě)入程序 (DBWn)服務(wù)器進(jìn)程在數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中記錄對(duì)還原塊和數(shù)據(jù)塊所做的更改。DBWn 將數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中的灰數(shù)據(jù)緩沖區(qū)寫(xiě)入數(shù)據(jù)文件。這可確保數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中有足夠數(shù)量的空閑緩沖區(qū)(即當(dāng)服務(wù)器進(jìn)程需要讀取數(shù)據(jù)文件中的塊時(shí)可以覆蓋的緩沖區(qū))可用。由于服務(wù)器進(jìn)程只在數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中進(jìn)行更改,因此提高了數(shù)據(jù)庫(kù)的性能。 DBWn 延遲寫(xiě)入數(shù)據(jù)文件,直到發(fā)生下列事件之一: 增量或正常檢查點(diǎn)灰數(shù)據(jù)緩沖區(qū)的數(shù)量達(dá)到閾值進(jìn)程掃描指定數(shù)量的塊而無(wú)法找到任何空閑緩沖區(qū)時(shí)出現(xiàn)超時(shí)實(shí)時(shí)應(yīng)用集群 (Real Application Clusters, RAC) 環(huán)境中出現(xiàn) ping 請(qǐng)求使一般表空間或臨時(shí)表空間處于脫機(jī)狀態(tài)使表空間處于只讀模式刪除或截?cái)啾?執(zhí)行 ALTER TABLESPACE 表空間名 BEGIN BACKUP 操作 日志寫(xiě)入器 (LGWR)LGWR 在下列情況下執(zhí)行從重做日志緩沖區(qū)到重做日志文件的連續(xù)寫(xiě)入: 當(dāng)提交事務(wù)時(shí)當(dāng)重做日志緩沖區(qū)的三分之一填滿(mǎn)時(shí)當(dāng)重做日志緩沖區(qū)中記錄了超過(guò) 1 MB 的更改時(shí)在 DBWn 將數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中修改的塊寫(xiě)入數(shù)據(jù)文件以前每隔三秒 因?yàn)榛謴?fù)操作需要重做,所以 LGWR 只在重做寫(xiě)入磁盤(pán)后確認(rèn)提交操作。LGWR 還可以調(diào)用 DBWn 來(lái)寫(xiě)入數(shù)據(jù)文件。系統(tǒng)監(jiān)控程序 (SMON)如果 Oracle 例程失敗,那么 SGA 中尚未寫(xiě)入磁盤(pán)的所有信息都會(huì)丟失。例如,操作系統(tǒng)的失敗導(dǎo)致例程失敗。例程丟失后,后臺(tái)進(jìn)程 SMON 在數(shù)據(jù)庫(kù)重新打開(kāi)時(shí)自動(dòng)執(zhí)行例程 恢復(fù)。恢復(fù)例程需要執(zhí)行以下步驟: 1.前滾以恢復(fù)尚未記入數(shù)據(jù)文件但已經(jīng)記入聯(lián)機(jī)重做日志中的數(shù)據(jù)。由于例程失敗時(shí) SGA 的丟失,所以尚未將這些數(shù)據(jù)寫(xiě)入磁盤(pán)。在該進(jìn)程中,SMON 讀取重做日志文件并將重做日志中記錄的更改應(yīng)用到數(shù)據(jù)塊中。由于提交的所有事務(wù)處理都已寫(xiě)入重做日志,因此該進(jìn)程完全恢復(fù)了這些事務(wù)處理。2.打開(kāi)數(shù)據(jù)庫(kù)以便用戶(hù)可以登錄。未被未恢復(fù)事務(wù)處理鎖定的任何數(shù)據(jù)都立即可用。3.回退未提交的事務(wù)處理。它們由 SMON 回退,或在訪(fǎng)問(wèn)鎖定的數(shù)據(jù)時(shí)由單個(gè)服務(wù)器進(jìn)程回退。 SMON 也執(zhí)行一些空間維護(hù)功能: 它聯(lián)合或合并數(shù)據(jù)文件中空閑空間的鄰近區(qū)域。它回收臨時(shí)段,將它們作為數(shù)據(jù)文件中的空閑空間返回。 過(guò)程監(jiān)視器 (PMON)進(jìn)程失敗后,后臺(tái)進(jìn)程 PMON 通過(guò)下面的方法進(jìn)行清理: 回退用戶(hù)的當(dāng)前事務(wù)處理釋放當(dāng)前保留的所有表鎖或行鎖釋放用戶(hù)當(dāng)前保留的其它資源重新啟動(dòng)已失效的調(diào)度程序 檢查點(diǎn) (CKPT)每隔三秒,CKPT 進(jìn)程就會(huì)向控制文件存儲(chǔ)數(shù)據(jù),以標(biāo)識(shí)重做日志文件中恢復(fù)操作的起始位置,該操作稱(chēng)作檢查點(diǎn)。檢查點(diǎn)的用途是確保數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中在時(shí)間點(diǎn)之間發(fā)生修改的所有緩沖區(qū)內(nèi)容都已寫(xiě)入數(shù)據(jù)文件。這個(gè)時(shí)間點(diǎn)(稱(chēng)作檢查點(diǎn)位置)是例程失敗時(shí)開(kāi)始恢復(fù)數(shù)據(jù)庫(kù)的位置。DBWn 應(yīng)將數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存中在該時(shí)間點(diǎn)之前發(fā)生修改的所有緩沖區(qū)內(nèi)容寫(xiě)入數(shù)據(jù)文件。對(duì)于 Oracle9i 之前的版本,這項(xiàng)操作在重做日志的結(jié)尾處執(zhí)行。切換日志時(shí),CKPT 還將這個(gè)檢查點(diǎn)的信息寫(xiě)入數(shù)據(jù)文件的頭部。 啟動(dòng)檢查點(diǎn)的原因如下: 確保定期向磁盤(pán)寫(xiě)入內(nèi)存中發(fā)生修改的數(shù)據(jù)塊,以便在系統(tǒng)或數(shù)據(jù)庫(kù)失敗時(shí)不會(huì)丟失數(shù)據(jù)縮短例程恢復(fù)所需的時(shí)間。只需處理最后一個(gè)檢查點(diǎn)后面的重做日志條目以啟動(dòng)恢復(fù)操作確保提交的所有數(shù)據(jù)在關(guān)閉期間均已寫(xiě)入數(shù)據(jù)文件 由 CKPT 寫(xiě)入的檢查點(diǎn)信息包括檢查點(diǎn)位置、系統(tǒng)更改號(hào)、重做日志中恢復(fù)操作的起始位置以及有關(guān)日志的信息等等。 注:CKPT 并不將數(shù)據(jù)塊寫(xiě)入磁盤(pán),或?qū)⒅刈鰤K寫(xiě)入聯(lián)機(jī)重做日志。 歸檔程序 (ARCn)所有其它后臺(tái)進(jìn)程都是可選的,這將取決于數(shù)據(jù)庫(kù)的配置;但是,其中的 ARCn 進(jìn)程對(duì)于丟失磁盤(pán)數(shù)據(jù)后的數(shù)據(jù)庫(kù)恢復(fù)起著至關(guān)重要的作用。當(dāng)聯(lián)機(jī)重做日志文件填滿(mǎn)時(shí),Oracle 服務(wù)器開(kāi)始寫(xiě)入下一個(gè)聯(lián)機(jī)重做日志文件。從一個(gè)重做日志到另一個(gè)重做日志的切換過(guò)程稱(chēng)為日志切換。ARCn 進(jìn)程在每次日志切換時(shí)備份或歸檔已滿(mǎn)的日志組。在日志能夠重新使用之前,它自動(dòng)將聯(lián)機(jī)重做日志歸檔,從而保留對(duì)數(shù)據(jù)庫(kù)所做的全部更改。這樣,即使磁盤(pán)驅(qū)動(dòng)器損壞,DBA 也能夠?qū)?shù)據(jù)庫(kù)恢復(fù)到出現(xiàn)故障前的狀態(tài)。 歸檔重做日志文件:DBA 必須做出的一個(gè)重要決策是配置數(shù)據(jù)庫(kù)以 ARCHIVELOG 模式還是以 NOARCHIVELOG 模式操作。 NOARCHIVELOG 模式:在 NOARCHIVELOG 模式下,每次發(fā)生日志切換時(shí),就會(huì)覆蓋聯(lián)機(jī)重做日志文件。只有重做日志組的檢查點(diǎn)完成后,LGWR 才會(huì)覆蓋該日志組。這就確保發(fā)生例程崩潰時(shí)提交的數(shù)據(jù)能夠得以恢復(fù)。在例程崩潰的過(guò)程中,只會(huì)丟失 SGA 中的數(shù)據(jù)。磁盤(pán)數(shù)據(jù)不會(huì)丟失,而只會(huì)丟失內(nèi)存中的數(shù)據(jù)。例如,當(dāng)操作系統(tǒng)的崩潰引起例程崩潰時(shí)。 ARCHIVELOG 模式:如果將數(shù)據(jù)庫(kù)配置為以 A

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論