新聞中心
在當(dāng)今數(shù)據(jù)庫領(lǐng)域中,Oracle數(shù)據(jù)庫是更具代表性的一種關(guān)系型數(shù)據(jù)庫系統(tǒng),這個(gè)系統(tǒng)有一個(gè)復(fù)雜的全局架構(gòu)設(shè)計(jì)。這篇文章將會(huì)介紹Oracle數(shù)據(jù)庫的全局架構(gòu),包括實(shí)例(Instance)、數(shù)據(jù)庫(Database)、內(nèi)存結(jié)構(gòu)(Memory Structures)、進(jìn)程結(jié)構(gòu)(Process Structures)和物理存儲(chǔ)(Physical Storage)。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、網(wǎng)站空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、從化網(wǎng)站維護(hù)、網(wǎng)站推廣。
實(shí)例(Instance)
在Oracle數(shù)據(jù)庫中,實(shí)例(Instance)是指一個(gè)抽象概念,它代表了一個(gè)正在運(yùn)行的數(shù)據(jù)庫實(shí)例。一個(gè)實(shí)例包含了許多不同的進(jìn)程,這些進(jìn)程共同工作,進(jìn)行數(shù)據(jù)訪問的相關(guān)處理。每個(gè)實(shí)例只能訪問一個(gè)數(shù)據(jù)庫,但是可以在同一臺(tái)計(jì)算機(jī)上運(yùn)行多個(gè)實(shí)例,從而訪問不同的數(shù)據(jù)庫。
當(dāng)一個(gè)實(shí)例被創(chuàng)建時(shí),它會(huì)把一些共享內(nèi)存(Shared Memory)分配給自己,用于存儲(chǔ)數(shù)據(jù)緩存、SQL解析結(jié)果、元數(shù)據(jù)等信息。這些共享內(nèi)存可以被所有進(jìn)程共享,它們存儲(chǔ)的數(shù)據(jù)在整個(gè)實(shí)例中都是可見的。
數(shù)據(jù)庫(Database)
在Oracle數(shù)據(jù)庫中,一個(gè)實(shí)例只能訪問一個(gè)數(shù)據(jù)庫。如果需要訪問其他數(shù)據(jù)庫,需要?jiǎng)?chuàng)建一個(gè)新的實(shí)例。每個(gè)數(shù)據(jù)庫包含了多個(gè)表空間(Tablespace)和對(duì)象(Object),它是Oracle數(shù)據(jù)庫的最小管理單元。
Oracle數(shù)據(jù)庫中的表空間用于存儲(chǔ)對(duì)象,每個(gè)表空間可以包含多個(gè)數(shù)據(jù)文件(Datafiles)。每個(gè)數(shù)據(jù)文件對(duì)應(yīng)一個(gè)操作系統(tǒng)文件(OS File),它們?cè)谖锢砩蠈?duì)應(yīng)著磁盤空間。數(shù)據(jù)文件是數(shù)據(jù)庫物理存儲(chǔ)的基本單位。
內(nèi)存結(jié)構(gòu)(Memory Structures)
Oracle數(shù)據(jù)庫中的內(nèi)存結(jié)構(gòu)主要包括了共享池(Shared Pool)、緩沖池(Buffer Cache)和庫緩存(Library Cache)。
共享池用于存儲(chǔ)常用的SQL語句解析結(jié)果、共享SQL區(qū)的信息以及共享SQL區(qū)用于SQL修改操作等。
緩沖池用于存儲(chǔ)數(shù)據(jù)庫中的數(shù)據(jù)塊,以便快速響應(yīng)用戶的數(shù)據(jù)請(qǐng)求。每個(gè)數(shù)據(jù)塊中存儲(chǔ)的是一個(gè)或多個(gè)記錄。
庫緩存用于存儲(chǔ)元數(shù)據(jù)信息,如表定義、索引定義、視圖定義等。
進(jìn)程結(jié)構(gòu)(Process Structures)
Oracle數(shù)據(jù)庫中的進(jìn)程結(jié)構(gòu)主要包括了后臺(tái)進(jìn)程和前臺(tái)進(jìn)程。后臺(tái)進(jìn)程主要包括了DBWn(Database Writer)、LGWR(Log Writer)、CKPT(Checkpoint)等,它們對(duì)數(shù)據(jù)庫的維護(hù)和性能優(yōu)化起著至關(guān)重要的作用。前臺(tái)進(jìn)程則是用戶進(jìn)程,通過與后臺(tái)進(jìn)程協(xié)作,完成數(shù)據(jù)庫訪問的各種操作。
物理存儲(chǔ)(Physical Storage)
Oracle數(shù)據(jù)庫中,物理存儲(chǔ)主要是通過數(shù)據(jù)文件(Datafiles)實(shí)現(xiàn)的,它們與操作系統(tǒng)文件(OS Files)一一對(duì)應(yīng)。數(shù)據(jù)文件可以位于磁盤設(shè)備中的任何地方,但是為了優(yōu)化性能和安全性,需要將它們集中在一個(gè)文件系統(tǒng)中。
Oracle數(shù)據(jù)庫是非常復(fù)雜的關(guān)系型數(shù)據(jù)庫系統(tǒng),它的全局架構(gòu)設(shè)計(jì)涉及到實(shí)例、數(shù)據(jù)庫、內(nèi)存結(jié)構(gòu)、進(jìn)程結(jié)構(gòu)以及物理存儲(chǔ)等多個(gè)方面。這些方面的相互作用決定了Oracle數(shù)據(jù)庫的表現(xiàn)和性能。對(duì)于Oracle數(shù)據(jù)庫的管理人員和開發(fā)人員而言,理解Oracle數(shù)據(jù)庫的全局架構(gòu)是非常必要的,這將有助于它們更好地進(jìn)行數(shù)據(jù)庫性能調(diào)優(yōu),提高數(shù)據(jù)庫的效率。
相關(guān)問題拓展閱讀:
- Oracle數(shù)據(jù)庫的介紹
- Oracle數(shù)據(jù)庫基本知識(shí)
- oracle數(shù)據(jù)庫主要執(zhí)行在線事務(wù)哪個(gè)結(jié)構(gòu)需要增大
Oracle數(shù)據(jù)庫的介紹
ORACLE數(shù)據(jù)庫系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前更流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫之一。比如SilverStream就是基于數(shù)據(jù)庫的一種中間件。ORACLE數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功隱純能;作為一個(gè)關(guān)系數(shù)據(jù)庫,它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實(shí)現(xiàn)了分布式處理功能。但它灶橋咐的所有知識(shí),只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類型的機(jī)器上使用它。
Oracle數(shù)據(jù)庫最新版本為Oracle Database 12c。Oracle數(shù)據(jù)庫12c 引入了一個(gè)新的多承租方架構(gòu),使用該架構(gòu)可輕松部署和管理消兆數(shù)據(jù)庫云。此外,一些創(chuàng)新特性可更大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個(gè)數(shù)據(jù)庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數(shù)據(jù)和對(duì)數(shù)據(jù)分層。這些獨(dú)一無二的技術(shù)進(jìn)步再加上在可用性、安全性和大數(shù)據(jù)支持方面的主要增強(qiáng),使得Oracle數(shù)據(jù)庫12c 成為私有云和公有云部署的理想平臺(tái)。
Oracle數(shù)據(jù)庫基本知識(shí)
Oracle數(shù)據(jù)庫基本知識(shí)
Oracle Database,又名OracleRDBMS,或簡(jiǎn)稱Oracle。是甲骨文公司的一款笑液關(guān)系數(shù)據(jù)庫管理系統(tǒng)。本文為大家分享的是Oracle數(shù)據(jù)庫的基本知識(shí),希望對(duì)大家有所幫助!
它是在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位的產(chǎn)品??梢哉fOracle數(shù)據(jù)庫系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類大、中、小、微機(jī)環(huán)境。它是一種高效率、可靠性好的適應(yīng)高吞吐量的數(shù)據(jù)庫解決方案。
介紹
ORACLE數(shù)據(jù)庫系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前更流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫之一。比如SilverStream就是基于數(shù)據(jù)庫的一種中間件。ORACLE數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫,它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實(shí)現(xiàn)了分布式處理功能。但它的所有知識(shí),只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類型的機(jī)器上使用它。
Oracle數(shù)據(jù)庫最新版本為OracleDatabase 12c。Oracle數(shù)據(jù)庫12c引入了一個(gè)新的多承租方架構(gòu),使用該架構(gòu)可輕松部署和管理數(shù)據(jù)庫云。此外,一些創(chuàng)新特性可更大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個(gè)數(shù)據(jù)庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數(shù)據(jù)和對(duì)數(shù)據(jù)分層。這些獨(dú)一無二的技術(shù)進(jìn)步再加上在可用性、安全性和大數(shù)據(jù)支持方面的主要增強(qiáng),使得Oracle數(shù)據(jù)庫12c 成為私有云和公有云部署的理想平臺(tái)。
就業(yè)前景
從就業(yè)與擇業(yè)的角度來講,計(jì)算機(jī)相關(guān)專業(yè)的大學(xué)生從事oracle方面的技術(shù)是職業(yè)發(fā)展中的更佳選擇。
其一、就業(yè)面廣:ORACLE幫助拓展技術(shù)人員擇業(yè)的廣度,全球前100強(qiáng)企業(yè)99家都在使用ORACLE相關(guān)技術(shù),中國(guó)機(jī)構(gòu),大中型企事業(yè)單位都能有ORACLE技術(shù)的工程師崗位,大學(xué)生在校期間興趣廣泛,每個(gè)人興趣特長(zhǎng)各異,不論你想進(jìn)入金融行業(yè)還是電信行業(yè)或者機(jī)構(gòu),ORACLE都能夠在你的職業(yè)發(fā)展中給你最強(qiáng)有力的支撐,成為你最貼身的金飯碗。
其二、技術(shù)層次深:如果期望進(jìn)入IT服務(wù)或者產(chǎn)品公司,Oracle技術(shù)能夠幫助提高就業(yè)的深度。Oracle技術(shù)已經(jīng)成為全球每個(gè)IT公司必選的軟件技術(shù)之一,熟練掌握Oracle技術(shù)能夠?yàn)閺臉I(yè)人員帶來技術(shù)應(yīng)用上的優(yōu)勢(shì),同時(shí)為IT技術(shù)的深入應(yīng)用起到非常關(guān)鍵的作用。掌握 Oracle技術(shù),是IT從業(yè)人員了解全面信息化整體解決方案的基礎(chǔ)。
其三、職業(yè)方向多:Oracle數(shù)據(jù)庫管理方向、Oracle開發(fā)及系統(tǒng)架構(gòu)方向、Oracle數(shù)據(jù)建模數(shù)據(jù)倉庫等方向。
Oracle數(shù)據(jù)庫漏洞分析:無需用戶名和密碼進(jìn)入你的數(shù)據(jù)庫
一般性的數(shù)據(jù)庫漏洞,都是在成功連接或登錄數(shù)據(jù)庫后實(shí)現(xiàn)入侵;本文介紹兩個(gè)在2023年暴露的Oracle漏洞,通過這兩種漏洞的結(jié)合,可以在不掌握用戶名/密碼的情況下入侵Oracle,從嫌陪而完成對(duì)數(shù)據(jù)的竊取或者破壞。這兩個(gè)漏洞就是CVE和CVE。
引言
國(guó)內(nèi)外很多重碰者物要的系統(tǒng)都采用Oracle作為數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫;在Oracle中存儲(chǔ)著企業(yè)或大量敏感的信息,在金錢或政治的誘導(dǎo)下,內(nèi)外部黑客會(huì)想法利用管理、網(wǎng)絡(luò)、主機(jī)或數(shù)據(jù)庫的自身漏洞嘗試入侵到數(shù)據(jù)庫中,以達(dá)到自身的目的。
本文的作者通過對(duì)Oracle倆種漏洞的組合研究,設(shè)計(jì)了一套在不掌握用戶名/密碼的方式入侵到Oracle中;這種方法,比傳統(tǒng)的需要登錄到數(shù)據(jù)庫中的入侵方法,具有更大的安全隱患和破壞性。
本文希望通過對(duì)這兩個(gè)漏洞和攻擊方法的介紹,能夠引起相關(guān)人員的重視,完善對(duì)數(shù)據(jù)庫安全的措施。
1、概要介紹
本文提供的方法是基于漏洞CVE和CVE對(duì)oracle數(shù)據(jù)庫的攻擊測(cè)試的方法。
CVE漏洞是Oracle允許攻擊者在不提供用戶名/密碼的’情況下,向遠(yuǎn)程“TNS Listener”組件處理的數(shù)據(jù)投毒的漏洞。攻擊者可利用此漏洞將數(shù)據(jù)庫服務(wù)器的合法“TNS Listener”組件中的數(shù)據(jù)轉(zhuǎn)向到攻擊者控制的系統(tǒng),導(dǎo)致控制遠(yuǎn)程組件的數(shù)據(jù)庫實(shí)例,造成組件和合法數(shù)據(jù)庫之間的中間人攻擊、會(huì)話劫持或拒絕服務(wù)攻擊。
CVE漏洞是Oracle Database 10g/11g身份驗(yàn)證協(xié)議實(shí)現(xiàn)中存在一個(gè)設(shè)計(jì)缺陷,攻擊者無需認(rèn)證即可遠(yuǎn)程獲取數(shù)據(jù)庫用戶密碼哈希相關(guān)數(shù)據(jù),從而可以離線暴力破解用戶密碼,進(jìn)一步控制數(shù)據(jù)庫系統(tǒng)。
我們通過如下的步驟和過程可以實(shí)現(xiàn)對(duì)Oracle的入侵:
(1)利用CVE進(jìn)行TNS劫持,在監(jiān)聽下利用遠(yuǎn)程注冊(cè),注冊(cè)同名數(shù)據(jù)庫實(shí)例;
(2)新登陸的用戶,在TNS的負(fù)載均衡策略下,有可能流量登錄到偽造的監(jiān)聽服務(wù)上;
(3)該監(jiān)聽服務(wù)對(duì)用戶的登陸過程進(jìn)行監(jiān)控,并將相關(guān)數(shù)據(jù)流量轉(zhuǎn)發(fā)到真實(shí)的數(shù)據(jù)庫上;
(4)利用CVE獲得通訊過程中的認(rèn)證相關(guān)信息;
(5)對(duì)認(rèn)證相關(guān)信息進(jìn)行離線的暴力破解,獲得登陸的密碼;
(6)試用破解的用戶名/密碼登陸Oracle,完成對(duì)Oracle中數(shù)據(jù)的訪問;
2、通過CVE進(jìn)行TNS劫持
該漏洞存在于Oracle的所有版本,并且Oracle至今僅是發(fā)布了警告性通知,并未提供解決方案。
要想利用CVE漏洞做TNS劫持,首先需要了解TNS機(jī)制。如下圖所示oracle 通過在本地解析網(wǎng)絡(luò)服務(wù)名到目標(biāo)主機(jī)IP地址,服務(wù)端口號(hào),目標(biāo)數(shù)據(jù)庫名,把這些信息發(fā)送到oracle服務(wù)器端監(jiān)聽程序,最后再由監(jiān)聽程序遞送DBMS。
其中關(guān)鍵點(diǎn)在于監(jiān)聽會(huì)按照目標(biāo)數(shù)據(jù)庫名遞送到名稱正確的數(shù)據(jù)庫。那么如果一個(gè)監(jiān)聽下有2個(gè)同名數(shù)據(jù)庫。監(jiān)聽將自動(dòng)按照負(fù)載均衡把這次訪問發(fā)送到負(fù)載低的數(shù)據(jù)庫上,進(jìn)行連接訪問。數(shù)據(jù)庫注冊(cè)到監(jiān)聽的方法就決定了,能否同時(shí)注冊(cè)同名數(shù)據(jù)庫在同一個(gè)監(jiān)聽下。注冊(cè)方式分為本地注冊(cè)和遠(yuǎn)程注冊(cè),通過修改參數(shù)可以調(diào)整為遠(yuǎn)程注冊(cè)。
下面是一段可用的TNS劫持的過程:
.在劫持機(jī)上創(chuàng)建一個(gè)和目標(biāo)數(shù)據(jù)庫實(shí)例同名的數(shù)據(jù)庫實(shí)例。
.在劫持機(jī)上修改 tnsnames.ora 文件
添加
listener_name=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=目標(biāo)機(jī)器IP)(PORT=目標(biāo)機(jī)器端口)))
.在劫持機(jī)上用SQL*Plus 順序執(zhí)行下面步驟。
.$ sqlplus / as sysdba
. SQL> ALTER SYSTEM SETREMOTE_LISTENER=’LISTENER_NAME’;
. SQL> ALTER SYSTEM REGISTER;
.多個(gè)客戶端,向數(shù)據(jù)庫發(fā)起登錄。會(huì)劫持到一部分客戶端的登錄信息。
最終達(dá)到效果如下圖所示:
按照猜想同一個(gè)監(jiān)聽下有2個(gè)同名實(shí)例??蛻舳嗽L問監(jiān)聽,監(jiān)聽按照客戶端中的數(shù)據(jù)庫名信息分配數(shù)據(jù)庫,由于監(jiān)聽下有2個(gè)同名數(shù)據(jù)庫,客戶端鏈接很可能會(huì)被分配到劫持者的數(shù)據(jù)庫實(shí)例下,再通過配置劫持者的本地監(jiān)聽把客戶端請(qǐng)求指回原數(shù)據(jù)庫。結(jié)構(gòu)圖如下:
測(cè)試客戶端鏈接196次。目標(biāo)數(shù)據(jù)庫實(shí)例獲得113次,劫持?jǐn)?shù)據(jù)庫實(shí)例獲得83次基本滿足負(fù)載均衡的假設(shè)。(注上面實(shí)例是local server 下面實(shí)例是 remote server)
通過以上方式我們可以截獲約一半左右客戶端發(fā)送到服務(wù)器的合法鏈接。其中獲得了服務(wù)器IP、端口號(hào)、數(shù)據(jù)庫位置、實(shí)例名、登錄用戶名等一系列明文信息和4組密文信息(AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA)。
3、通過CVE進(jìn)行密碼破解
CVE受影響的數(shù)據(jù)庫版本有11.2.0.3,11.2.0.2,11.1.0.7,有使用了SHA-1加密算法的10.2.0.5和10.2.0.4,還有使用了SHA-1的10.2.0.3(運(yùn)行在z/OS下)版本。
雖然這個(gè)漏洞在11.2.0.3中已經(jīng)解決,但是僅僅數(shù)據(jù)庫客戶端和服務(wù)器都升級(jí)到11.2.0.3并且sqlnet.ora文件中增加SQLNET.ALLOWED_LOGON_VERSION=12才有效。
正如CVE所描述Oracle為了防止第三方通過網(wǎng)絡(luò)獲取登錄信息包。而對(duì)密碼進(jìn)行了加密處理。本部分只以oracle11.1密碼如何破解為例進(jìn)行說明。
在發(fā)起連接之后(oracle牽手完成),客戶端和服務(wù)器經(jīng)過協(xié)商確定要使用的驗(yàn)證協(xié)議。要完成這個(gè)任務(wù),客戶端首先向數(shù)據(jù)庫發(fā)送一個(gè)包。包中包含客戶端主要信息和所請(qǐng)求的加密方式。數(shù)據(jù)庫確認(rèn)加密方式有效后,發(fā)送一個(gè)確認(rèn)服務(wù)包如下圖所示:
在通過安全網(wǎng)絡(luò)服務(wù)完成任何所要求的協(xié)議之后,數(shù)據(jù)庫用戶被O3logon(oracle驗(yàn)證方式) 進(jìn)行驗(yàn)證,這個(gè)協(xié)議執(zhí)行一個(gè)序列來向數(shù)據(jù)庫證明客戶端擁有密碼。為了避免網(wǎng)絡(luò)第三方截獲到密碼。首先客戶端發(fā)送用戶名到數(shù)據(jù)庫來表明用戶身份。數(shù)據(jù)庫端根據(jù)加密協(xié)議,其中96位的作為數(shù)據(jù)庫端密鑰,20位的作為偏移量,它對(duì)每個(gè)連接都是不同的。一個(gè)典型的數(shù)據(jù)庫端發(fā)給客戶端的密鑰如下:
AUTH_SESSKEY…..COCDD89FIGODKWASDF……………………
客戶端根據(jù)加密算法向服務(wù)器端發(fā)送96位的客戶端密鑰和64位的密碼密鑰。服務(wù)器端計(jì)算客戶端傳入的密碼密鑰。如果計(jì)算后密碼密文和數(shù)據(jù)庫中存儲(chǔ)的16位密碼密文一致則驗(yàn)證通過。
根據(jù)這個(gè)過程可知上面TNS劫持包中取得的加密信息:AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA這四個(gè)值是解密的關(guān)鍵。我們把他們按照SHA1,MD5,AES192進(jìn)行一系列處理。最終通過數(shù)據(jù)字典碰撞得到密碼明文。
下面這段網(wǎng)上公布的一段示例代碼,這段代碼與筆者的思路不完全相同,但也能大概地說明這個(gè)漏洞的攻擊過程:
import hashlib
from Crypto.Cipher import AES
def decrypt(session,salt,password):
pass_hash= hashlib.sha1(password+salt)
key =pass_hash.digest() + ‘\x00\x00\x00\x00’
decryptor= AES.new(key,AES.MODE_CBC)
plain =decryptor.decrypt(session)
returnplain
session_hex =’EA2023CB8B46EC68BDC161F8CA170363C1E6F57F3EBC6435F541A8239B6DBA16EAABAE78767′
salt_hex = ‘A7193E546377EC56639E’
passwords =
for password in passwords:
session_id= decrypt(session_hex.decode(‘hex’),salt_hex.decode(‘hex’),password)
print’Decrypted session_id for password “%s” is %s’ %(password,session_id.encode(‘hex’))
ifsession_id == ‘\x08\x08\x08\x08\x08\x08\x08\x08’:
print’PASSWORD IS “%s”‘ % password
break
4、建議的預(yù)防措施
根據(jù)以上兩段分析,我們可以有如下的預(yù)防措施:
(1)在條件許可的情況下,對(duì)Oracle進(jìn)行補(bǔ)丁升級(jí),對(duì)Oracle打cpuoct補(bǔ)丁;注意對(duì)于cpuoct補(bǔ)丁要求服務(wù)器端和應(yīng)用服務(wù)器端同時(shí)升級(jí),否則應(yīng)用系統(tǒng)將無法訪問Oracle;
(2)若無法對(duì)Oracle升級(jí),要購買或安裝具備虛擬補(bǔ)丁功能的數(shù)據(jù)庫安全產(chǎn)品,防止對(duì)CVE和CVE的利用;
(3)建立足夠強(qiáng)健的口令,不要使用8位以下密碼,或者字典庫中的口令。
oracle數(shù)據(jù)庫主要執(zhí)行在線事務(wù)哪個(gè)結(jié)構(gòu)需要增大
對(duì)于Oracle數(shù)據(jù)庫而言,主要執(zhí)行在線事務(wù)的結(jié)構(gòu)是SGA(System Global Area)結(jié)構(gòu),需要增大的主要是SGA中的Buffer Cache(緩存區(qū))。
原因如下:
1. 在線事務(wù)主要是指對(duì)數(shù)據(jù)庫的增刪改查操作,這些操作都需要頻繁地讀取和寫入數(shù)據(jù)庫中的數(shù)據(jù),而緩存區(qū)是數(shù)據(jù)庫用于存儲(chǔ)數(shù)據(jù)塊的重要組成部分,它可以將磁盤上的數(shù)據(jù)緩存到內(nèi)存中,以提高讀取速度,減少IO操作。
2. 如果緩存區(qū)大小不足,那么數(shù)據(jù)庫中的數(shù)據(jù)就需要頻繁地從磁盤中讀取,這樣會(huì)導(dǎo)致大量的IO操作,從而降低數(shù)據(jù)庫的響應(yīng)速度,影響在線事務(wù)的執(zhí)行效率。
3. 增大緩存區(qū)可以提高緩存命中率,即從緩存區(qū)讀取數(shù)據(jù)的比例,從而減少IO操作,提高數(shù)據(jù)庫的響應(yīng)速度,提高在線事務(wù)的執(zhí)行效率。
需要注意的是,增大緩存區(qū)大小不是一成不變的,需要根據(jù)實(shí)際情況進(jìn)行調(diào)整,考慮到硬件資源限制、業(yè)務(wù)需求和數(shù)據(jù)庫運(yùn)行狀況等因素。
簡(jiǎn)答:為了提高oracle數(shù)據(jù)庫的在線事務(wù)處理能力,需要增加redo log文件的大小。
深入分析:
1. redo log文件主要用于記錄oracle數(shù)據(jù)庫執(zhí)行過程中事務(wù)的日志信息,包括數(shù)據(jù)更新的批量信息等,以實(shí)現(xiàn)事務(wù)的持久性和恢復(fù)能力。
2. 在線事務(wù)產(chǎn)生的日志量較大,如果redo log文件空間不足,會(huì)導(dǎo)致事務(wù)執(zhí)行被阻塞,無法繼續(xù)運(yùn)行,直到redo log文件重新得到空間為止。這勢(shì)必會(huì)對(duì)在線業(yè)務(wù)產(chǎn)生較大影響。
3.為了避免redo log文件空間不足,需要預(yù)先適當(dāng)增加其大小。一般做法是根據(jù)業(yè)務(wù)高峰期預(yù)計(jì)的日志增長(zhǎng)量增加,給予一定的余量,這樣可以滿足大部分正常運(yùn)行情況下的需求。
4.增加redo log文件大小可以通過增加其組數(shù)或每個(gè)組內(nèi)文件大小實(shí)現(xiàn)。增加組數(shù)意味著新建多個(gè)較小文件;增加文件大小意味著直接擴(kuò)展現(xiàn)有文件存儲(chǔ)空間。這兩種方法各有優(yōu)點(diǎn),需要結(jié)合系統(tǒng)實(shí)際情況選擇。
5. redo log文件過大也會(huì)產(chǎn)生一定問題,會(huì)占用過多存儲(chǔ)空間,并增加恢復(fù)時(shí)間。所以在設(shè)置文件大小時(shí)需要權(quán)衡在線事務(wù)的日志量和恢復(fù)效率,選擇一個(gè)比較合理的大小。一般來說,不應(yīng)超過硬盤總量的1/4至1/3之間。
6.除了增加redo log文件大小之外,也可以通過其他方法提高oracle數(shù)據(jù)庫的在線事務(wù)處理能力,如增加undo表空間、適當(dāng)放寬一些參數(shù)限制、使用高性能硬件等。redo log只是其中比較重要的一個(gè)方面。
綜上,為了支持oracle數(shù)據(jù)庫大量的在線事務(wù)并發(fā)執(zhí)行,需要確保redo log文件大小充足,避免其空間不足導(dǎo)致事務(wù)執(zhí)行阻塞的問題。適當(dāng)增加redo log文件大小是提高oracle數(shù)據(jù)庫在線事務(wù)處理能力的關(guān)鍵措施之一。但大小設(shè)置需要綜合考慮相關(guān)因素,避免超出合理范圍。除redo log文件之外,其他環(huán)節(jié)的優(yōu)化同樣重要,要全面考慮,系統(tǒng)提高數(shù)據(jù)庫處理事務(wù)的能力。
給出優(yōu)質(zhì)建議如下:
建議1:重新評(píng)估業(yè)務(wù)高峰期數(shù)據(jù)庫的redo log日志生成量,根據(jù)這一日志增長(zhǎng)預(yù)估值選擇適當(dāng)增加redo log文件大小,至少要提供1-2倍的余量。這可以保證redo log文件基本滿足絕大部分正常業(yè)務(wù)情況下的需求,避免空間頻繁不足。
建議2:增加redo log文件大小時(shí)可同時(shí)適當(dāng)增加文件組數(shù),這樣可以使每個(gè)文件保持在較小范圍內(nèi),利于后續(xù)的文件清理和恢復(fù)操作。也可直接適當(dāng)擴(kuò)展現(xiàn)有文件大小,這可以避免新建組后相應(yīng)參數(shù)調(diào)整帶來的工作量。兩者可結(jié)合實(shí)際選擇。
建議3:定期監(jiān)控redo log文件的空間使用率和日志增長(zhǎng)趨勢(shì),如果發(fā)現(xiàn)已使用空間超過70%-80%,應(yīng)及時(shí)考慮進(jìn)一步添加空間,以預(yù)留充足余量避免日志空間突發(fā)性不足的問題發(fā)生。這需要制定redo log磁盤空間動(dòng)態(tài)監(jiān)控的具體方案。
建議4:如果系統(tǒng)存在較長(zhǎng)時(shí)間未使用的歸檔日志,可以考慮清理部分歸檔日志騰出空間,然后將這部分空間劃給redo log文件使用。這可以有效利用現(xiàn)有存儲(chǔ)空間,避免頻繁新增磁盤,特別是在磁盤空間有限的情況下更為適用。但要確保所清理的歸檔日志不會(huì)再被使用。
建議5:除增加redo log文件大小之外,還應(yīng)該綜合考慮其他方法提高數(shù)據(jù)庫的在線事務(wù)處理能力,如調(diào)整表空間大小、適當(dāng)調(diào)整一些數(shù)據(jù)庫參數(shù)、使用高性能硬件平臺(tái)等。這些措施應(yīng)根據(jù)業(yè)務(wù)實(shí)際需求進(jìn)行評(píng)估和調(diào)整,以期實(shí)現(xiàn)整體的更優(yōu)解決方案。
綜上,定期評(píng)估和監(jiān)控redo log文件使用情況,合理增加其文件大小或組數(shù),是保障其空間充足并提高oracle數(shù)據(jù)庫在線事務(wù)處理能力的關(guān)鍵。但這些措施還需配合其他方法,如日志清理、參數(shù)調(diào)整以及硬件升級(jí)等,進(jìn)行綜合施策,不斷優(yōu)化和提高數(shù)據(jù)庫的在線處理性能,以適應(yīng)業(yè)務(wù)高速發(fā)展的需求。DBA需要對(duì)各方法進(jìn)度進(jìn)行全面分析與評(píng)估,選擇更佳實(shí)施方案。
Oracle數(shù)據(jù)庫主要執(zhí)行在線事務(wù)需要增大的數(shù)據(jù)結(jié)構(gòu)可以是:
1. 數(shù)據(jù)庫緩存區(qū)(Buffer Cache):主要用于存儲(chǔ)熱數(shù)據(jù)和緩存數(shù)據(jù)塊,提高數(shù)據(jù)庫讀寫性能,降低磁盤 I/O 操作次數(shù)。在進(jìn)行在線事務(wù)時(shí),經(jīng)常需要對(duì)數(shù)據(jù)庫進(jìn)行查詢和更改操作,因此,緩存區(qū)的大小直接影響著數(shù)據(jù)庫的性能。
2. 日志緩沖區(qū)(Log Buffer):主要用于記錄數(shù)據(jù)庫狀態(tài)和操作信息,并保證數(shù)據(jù)的一致性。在線事務(wù)中的每一個(gè) SQL 語句都會(huì)被解析、執(zhí)行和保存到日志緩沖區(qū),因此,如果日志緩沖區(qū)太小,在事務(wù)量較大的情況下可能會(huì)導(dǎo)致頻繁刷盤或者數(shù)據(jù)丟失,嚴(yán)重影響數(shù)據(jù)庫的穩(wěn)定性和可靠性。
3. PGA(Program Global Area)堆:主要用于存儲(chǔ)連接時(shí)產(chǎn)生的臨時(shí)變量、排序數(shù)據(jù)、內(nèi)部存儲(chǔ)結(jié)構(gòu)等,可以大大提高 SQL 查詢效率。在執(zhí)行大型的查詢或操作時(shí),需要頻繁使用內(nèi)存來存儲(chǔ)中間結(jié)果,如果 PGA 太小可能導(dǎo)致緩慢的查詢速度甚至是執(zhí)行失敗。
4. 表空間:主要用于存儲(chǔ)數(shù)據(jù)庫中的表、索引、視圖等對(duì)象,如果表空間過小,將會(huì)導(dǎo)致無法寫入數(shù)據(jù),從而影響在線事務(wù)的正常工作。
需要注意的是,每一個(gè)數(shù)據(jù)結(jié)構(gòu)的大小都應(yīng)該根據(jù)實(shí)際業(yè)務(wù)需要進(jìn)行調(diào)整,過大或過小都可能會(huì)對(duì)數(shù)據(jù)庫性能產(chǎn)生較大的影響。
根據(jù)Oracle數(shù)據(jù)庫的架構(gòu),主要執(zhí)行在線事務(wù)的結(jié)構(gòu)是SGA(System Global Area,系統(tǒng)全局區(qū))。SGA是Oracle數(shù)據(jù)庫實(shí)例的重要組成部分,主要用于存儲(chǔ)數(shù)據(jù)庫中的緩存和共享結(jié)構(gòu)。在SGA中,主要承擔(dān)在線事務(wù)處理的是數(shù)據(jù)庫緩存區(qū)域Buffer Cache。因此,如果要增大Oracle數(shù)據(jù)庫主要執(zhí)行在線事務(wù)的結(jié)構(gòu),需要增大Buffer Cache的大小。
Buffer Cache存儲(chǔ)了數(shù)據(jù)庫中最近使用的數(shù)據(jù)塊,它可以減少物理I/O的次數(shù),提高數(shù)據(jù)庫的讀取效率。在線事務(wù)的核心操作就是對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行讀寫,因此Buffer Cache大小的增大可以提高在線事務(wù)的執(zhí)行效率,降低響應(yīng)時(shí)間,提升用戶體驗(yàn)。
需要注意的是,增大Buffer Cache的大小并不是一定能夠提高在線事務(wù)的執(zhí)行效率,因?yàn)檫^大的Buffer Cache會(huì)占用大量的內(nèi)存資源,導(dǎo)致系統(tǒng)出現(xiàn)內(nèi)存不足的情況。因此,需要根據(jù)實(shí)際情況和硬件資源的限制來合理設(shè)置Buffer Cache的大小。此外,在進(jìn)行Buffer Cache大小的設(shè)置時(shí),還需要考慮到其他因素,比如應(yīng)用程序的并發(fā)數(shù)、數(shù)據(jù)庫實(shí)例的大小、操作系統(tǒng)的內(nèi)存管理機(jī)制等等。
Oracle數(shù)據(jù)庫主要執(zhí)行在線事務(wù)時(shí),需要增大的是SGA(System Global Area)中的Buffer Cache緩存池。原因是在線事務(wù)的主要特點(diǎn)是頻繁地進(jìn)行數(shù)據(jù)讀寫操作,而Buffer Cache緩存池是用來緩存頻繁訪問的數(shù)據(jù)塊的,增大Buffer Cache緩存池的大小可以提高數(shù)據(jù)讀寫的效率,減少磁盤I/O操作的次數(shù),從而提高數(shù)據(jù)庫的性能和響應(yīng)速度。
除了Buffer Cache緩存池之外,Oracle數(shù)據(jù)庫執(zhí)行在線事務(wù)還需要增大的結(jié)構(gòu)有Shared Pool共享池和Redo Log Buffer重做日志緩沖區(qū)。Shared Pool共享池主要用于存儲(chǔ)共享的SQL語句、存儲(chǔ)過程和觸發(fā)器等對(duì)象,而Redo Log Buffer重做日志緩沖區(qū)則用于緩存事務(wù)執(zhí)行過程中所產(chǎn)生的重做日志信息,以保證數(shù)據(jù)的完整性和一致性。
需要注意的是,增大SGA中的緩存池大小并不是無限制的,需要根據(jù)實(shí)際情況進(jìn)行調(diào)整,避免過度分配內(nèi)存導(dǎo)致系統(tǒng)出現(xiàn)內(nèi)存不足的情況。此外,還需要根據(jù)實(shí)際應(yīng)用負(fù)載和硬件配置等因素來綜合考慮增大哪些結(jié)構(gòu)的大小,以達(dá)到更優(yōu)的性能表現(xiàn)。
關(guān)于oracle數(shù)據(jù)庫整體架構(gòu)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
新聞名稱:Oracle數(shù)據(jù)庫:全局架構(gòu)概覽(oracle數(shù)據(jù)庫整體架構(gòu))
URL網(wǎng)址:http://www.5511xx.com/article/djcchej.html


咨詢
建站咨詢
