日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
Oracle8.0.6數據庫詳解與應用指導(oracle8.0.6數據庫)

Oracle 8.0.6數據庫詳解與應用指導

在都江堰等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網站制作、網站建設 網站設計制作按需網站策劃,公司網站建設,企業(yè)網站建設,高端網站設計,成都營銷網站建設,成都外貿網站制作,都江堰網站建設費用合理。

Oracle 8.0.6是一個歷史悠久的數據庫版本,于1999年發(fā)布。雖然現在已經被后續(xù)版本所替代,但是了解其特點和使用方法仍具有重要的意義。在本篇文章中,我們將對Oracle 8.0.6數據庫進行詳細的介紹和應用指導。

一、概述

Oracle 8.0.6是Oracle公司的數據庫管理系統(tǒng)(DBMS),提供了一系列的功能和工具,用于存儲和管理大量數據,并提供高效的數據查詢和處理方法。該版本引入了許多新特性,如分區(qū)表、動態(tài)SQL、外部表等技術,這些技術在數據庫的性能和擴展方面都有很大的幫助。

二、功能特點

1. 分區(qū)表

Oracle 8.0.6引入了分區(qū)表的概念,使得大型數據庫的管理變得更加容易。分區(qū)表將表數據分解成更小的部分,每個部分可以單獨管理和查詢,以提高查詢性能和優(yōu)化維護。分區(qū)表可以按照時間、地理位置或其他分區(qū)鍵來分割數據,同時還可以支持多級分區(qū)表。

2. 動態(tài)SQL

動態(tài)SQL是一種靈活的查詢技術,使用該技術可以根據不同的查詢條件生成不同的SQL語句,并在查詢時進行執(zhí)行。Oracle 8.0.6支持通過PL/SQL語言實現動態(tài)SQL。動態(tài)SQL在開發(fā)中扮演了一個非常重要的角色,可以增加代碼的可讀性和可維護性。同時,在查詢大量數據時,還可以提高查詢性能。

3. 外部表

外部表是一種新的表類型,它允許在Oracle數據庫中生成數據的虛擬視圖,并打開存儲在外部文件或數據庫中的數據。通過外部表,可以很方便地在Oracle數據庫中訪問非Oracle數據,如CSV文件、TXT文件等。這種技術優(yōu)化了數據交換和數據集成的過程并增強了數據的可用性。

三、應用指導

1. 安裝和初始化數據庫

在安裝Oracle 8.0.6之前,需要先檢查系統(tǒng)的要求,確認該操作系統(tǒng)、磁盤空間和內存是足夠的。安裝過程可以參考Oracle 8.0.6安裝指南完成。在完成安裝后,需要初始化數據庫,以創(chuàng)建必要的系統(tǒng)表和配置參數。這個過程可以通過運行ORADIM命令完成。

2. 創(chuàng)建數據庫對象

創(chuàng)建數據庫對象是Oracle的核心工作之一。Oracle 8.0.6數據庫中,支持創(chuàng)建表、視圖、索引、序列、包等多種類型的對象。在創(chuàng)建對象前,需要先設計好對象的結構和依賴關系,設計非常重要,可以保證數據庫的高效性和安全性。

3. 數據庫管理

數據庫管理是保證Oracle數據庫正常運行和維護的關鍵。在Oracle 8.0.6中,可以使用SQL*PLUS和Enterprise Manager等工具進行數據庫的管理和監(jiān)控。通過這些工具,可以執(zhí)行SQL查詢、備份和恢復、性能優(yōu)化等操作,以保證數據庫穩(wěn)定性和安全性。

4. 開發(fā)應用程序

使用Oracle 8.0.6開發(fā)應用程序可以采用PL/SQL或其他編程語言訪問數據庫。在使用PL/SQL編程時,需要掌握語法規(guī)則和編程技巧。同時,在選擇其他編程語言時,需要學習如何使用相應的數據庫驅動程序或API進行數據連接和操作。

四、后續(xù)發(fā)展

Oracle 8.0.6自發(fā)布以來,經過長期的發(fā)展過程,已經被后續(xù)版本所替代。Oracle 9i、10g、11g、12c等多個版本不斷引入新的技術和特性,以滿足不同場景下的需求。同時,隨著云計算和大數據時代的到來,數據庫技術也在不斷發(fā)展和創(chuàng)新。因此,了解Oracle數據庫的發(fā)展和新技術具有重要的意義。

通過對Oracle 8.0.6的介紹和應用指導,我們可以了解Oracle數據庫的基本概念和核心技術。Oracle作為一種重要的數據庫管理系統(tǒng),在信息時代中扮演著至關重要的角色。我們應該掌握數據庫的基礎知識,了解其應用方法和最新發(fā)展,以更好地利用數據庫技術。

相關問題拓展閱讀:

  • 創(chuàng)建一個序列,之一次從5循環(huán)到10,以后再從0開始循環(huán)。如果數據的控制文件損壞了,需要如何解決故障。
  • Oracle數據庫基本知識

創(chuàng)建一個序列,之一次從5循環(huán)到10,以后再從0開始循環(huán)。如果數據的控制文件損壞了,需要如何解決故障。

1、 ORACLE 實例――包括內存結構與后臺進程 2、 ORACLE 數據庫――物理操作系統(tǒng)文件的 3、 了解內存結構的組成 4、 了解后臺進程的作用

1、 Oracle 實例――包括內存結構與后臺進程

2、 Oracle 數據庫――物理操作系統(tǒng)文件的

3、 了解內存結構的組成

4、 了解后臺進程的作用

5、 了解數據庫的物理文件

6、 解釋各種邏輯結構

一、Oracle實例

1、Oracle 實例

System Global Area(SGA) 和 Background Process 稱為數據庫的實例。

2、Oracle 數據庫

一系列物理文件的(數據文件,控制文件,聯機日志,參數文件等)

3、系統(tǒng)全局共享區(qū)System Global Area(SGA)

System Global Area 是一塊巨大的共享內存區(qū)域,他被看做是Oracle 數據庫的一個大緩沖池,這里的數據可以被Oracle的各個進程共用。其大小可以通過如下語句查看:

SQL> select * from v$sga;

NAME VALUE

—-

Fixed Size 39816

Variable Size

Database Buffers 1.049E+09

Redo Buffers

更詳細的信息可以參考V$sgastat、V$buffer_pool

主要包括以下幾個部分:

a、 共享池(Shared pool)

共享池是SGA中最關鍵的內存片段,特別是在性能和可伸縮性上。一個太小的共享池會扼殺性能,使系統(tǒng)停止,太大的共享池也會有同樣的效果,將會消耗大量的CPU來管理這個共享池。不正確的使用共享池只會帶來災難。共享池主要又可以分為以下兩個部分:

SQL語句緩沖(Library Cache)

當一個用戶提轎唯交一個SQL語句,Oracle會將這句SQL進行分析(parse),這個過程類似于編譯,會耗費相對較多的時間。在分析完這個SQL,Oracle會把他的分析結果給保存在Shared pool的Library Cache中,當數據庫第二次執(zhí)行該SQL時,Oracle自動跳過這個分析過程,從而減少了系統(tǒng)運行的時間。這也是為什么之一次運行的SQL 比第二次運行的SQL要慢一點的原因。

下面舉例說明parse的時間

SQL> select count(*) fromscpass ;

COUNT(*)

243

Elapsed: 00:00:00.08

這是在Share_pool 和Data buffer 都沒有數據緩沖區(qū)的情況下所用的時間

SQL> alter system flush SHARED_POOL;

System altered.

清空Share_pool,保留Data buffer

SQL> select count(*) from scpass ;

COUNT(*)

243

Elapsed: 00:00:00.02

SQL> select count(*) from scpass ;

COUNT(*)

243

Elapsed: 00:00:00.00

從兩句SQL 的時間差上可以看出該SQL 的Parse 時間約為00:00:00.02

對于保存在共享池中的SQL語句,可以從V$Sqltext、v$Sqlarea中查詢到,對于編程者來說,要盡量提高語句的重用率,減少語句的分析時間。一個設計的差的應用程序可以毀掉整個頌此數據庫的Share pool,提高SQL語句的重用率必須先養(yǎng)成良好的變成習慣,盡量使用Bind變量。

數據字典緩沖區(qū)(Data Dictionary Cache)

顯而易見,數據字典緩沖區(qū)是Oracle特地為數據字典準備的一塊緩沖池,供Oracle內部使用,沒有什么可以閉櫻培說的。

b、塊緩沖區(qū)高速緩存(Database Buffer Cache)

這些緩沖是對應所有數據文件中的一些被使用到的數據塊。讓他們能夠在內存中進行操作。在這個級別里沒有系統(tǒng)文件,,戶數據文件,臨時數據文件,回滾段文件之分。也就是任何文件的數據塊都有可能被緩沖。數據庫的任何修改都在該緩沖里完成,并由DBWR進程將修改后的數據寫入磁盤。

這個緩沖區(qū)的塊基本上在兩個不同的列表中管理。一個是塊的“臟”表(Dirty List),需要用數據庫塊的

書寫器(DBWR)來寫入,另外一個是不臟的塊的列表(Free List),一般的情況下,是使用最近最少使用 (Least Recently Used,LRU)算法來管理。塊緩沖區(qū)高速緩存又可以細分為以下三個部分(Default pool,Keep pool,Recycle pool)。如果不是人為設置初始化參數(Init.ora),Oracle將默認為Default pool。由于操作系統(tǒng)尋址能力的限制,不通過特殊設置,在32位的系統(tǒng)上,塊緩沖區(qū)高速緩存更大可以達到1.7G,在64位系統(tǒng)上,塊緩沖區(qū)高速緩存更大可以達到10G。

c、重做日志緩沖區(qū)(Redo log buffer)

重做日志文件的緩沖區(qū),對數據庫的任何修改都按順序被記錄在該緩沖,然后由LGWR進程將它寫入磁盤。這些修改信息可能是DML語句,如(Insert,Update,Delete),或DDL語句,如(Create,Alter,Drop等)。 重做日志緩沖區(qū)的存在是因為內存到內存的操作比較內存到硬盤的速度快很多,所以重作日志緩沖區(qū)可以加快數據庫的操作速度,但是考慮的數據庫的一致性與可恢復性,數據在重做日志緩沖區(qū)中的滯留時間不會很長。所以重作日志緩沖區(qū)一般都很小,大于3M之后的重作日志緩沖區(qū)已經沒有太大的實際意義。

d、Java程序緩沖區(qū)(Java Pool)

Java 的程序區(qū),Oracle 8I 以后,Oracle 在內核中加入了對Java的支持。該程序緩沖區(qū)就是為Java 程序保留的。如果不用Java程序沒有必要改變該緩沖區(qū)的默認大小。

e、大池(Large Pool)

大池的得名不是因為大,而是因為它用來分配大塊的內存,處理比共享池更大的內存,在8.0開始引入。

下面對象使用大池:

MTS――在SGA的Large Pool中分配UGA

語句的并行查詢(Parallel Executeion of Statements)――允許進程間消息緩沖區(qū)的分配,用來協(xié)調 并行查詢服務器

備份(Backup)――用于RMAN磁盤I/O緩存

4、后臺進程(Background process)

后臺進程是Oracle的程序,用來管理數據庫的讀寫,恢復和監(jiān)視等工作。Server Process主要是通過他和user process進行聯系和溝通,并由他和user process進行數據的交換。在Unix機器上,Oracle后臺進程相對于操作系統(tǒng)進程,也就是說,一個Oracle后臺進程將啟動一個操作系統(tǒng)進程;在Windows機器上, Oracle后臺進程相對于操作系統(tǒng)線程,打開任務管理器,我們只能看到一個Oracle.EXE的進程,但是通過另外的工具,就可以看到包含在這里進程中的線程。

在Unix上可以通過如下方法查看后臺進程:

ps ?ef | grep ora_

# ps -ef | grep ora_ | grep XCLUAT

OracleSep 02 2:02 ora_dbwr_SID

OracleSep 02 0:03 ora_ckpt_SID

OracleSep 02 2:42 ora_on_SID

OracleSep 02 3:25 ora_lgwr_SID

OracleSep 02 0:01 ora_pmon_SID

a、Oracle系統(tǒng)有5 個基本進程他們是

DBWR(數據文件寫入進程)

LGWR(日志文件寫入進程)

ON(系統(tǒng)監(jiān)護進程)

PMON(用戶進程監(jiān)護進程)

CKPT(檢查點進程,同步數據文件, 日志文件,控制文件)

b、DBWR

將修改過的數據緩沖區(qū)的數據寫入對應數據文件

維護系統(tǒng)內的空緩沖區(qū)

這里指出幾個容易錯誤的概念:

當一個更新提交后,DBWR把數據寫到磁盤并返回給用戶提交完成.

DBWR會觸發(fā)CKPT 后臺進程

DBWR不會觸發(fā)LGWR 進程

上面的概念都是錯誤的.

DBWR是一個很底層的工作進程,他批量的把緩沖區(qū)的數據寫入磁盤。和任何前臺用戶的進程幾乎沒有什么關系,也不受他們的控制。至于DBWR會不會觸發(fā)LGWR和CKPT進程,我們將在下面幾節(jié)里討論。

DBWR工作的主要條件如下

DBWR 超時

系統(tǒng)中沒有多的空緩沖區(qū)用來存放數據

CKPT 進程觸發(fā)DBWR 等

c、LGWR

將重做日志緩沖區(qū)的數據寫入重做日志文件,LGWR是一個必須和前臺用戶進程通信的進程。當數據被修改的時候,系統(tǒng)會產生一個重做日志并記錄在重做日志緩沖區(qū)內。這個重做日志可以類似的認為是以下的一個結構:

SCN=

數據塊ID

對象ID=0801

數據行=02

修改后的數據=0011

提交的時候,LGWR必須將被修改的數據的重做日志緩沖區(qū)內數據寫入日志數據文件,然后再通知前臺進程提交成功,并由前臺進程通知用戶。從這點可以看出LGWR承擔了維護系統(tǒng)數據完整性的任務。

LGWR 工作的主要條件如下

用戶提交

有1/3 重做日志緩沖區(qū)未被寫入磁盤

有大于1M 重做日志緩沖區(qū)未被寫入磁盤

超時

DBWR需要寫入的數據的SCN號大于LGWR 記錄的SCN號,DBWR 觸發(fā)LGWR寫入

d、ON

工作主要包含

清除臨時空間

在系統(tǒng)啟動時,完成系統(tǒng)實例恢復

聚結空閑空間

從不可用的文件中恢復事務的活動

OPS中失敗節(jié)點的實例恢復

清除OBJ$表

縮減回滾段

使回滾段脫機

e、PMON

主要用于清除失效的用戶進程,釋放用戶進程所用的資源。如PMON將回滾未提交的工作,釋放鎖,釋放分配給失敗進程的SGA資源。

f、CKPT

同步數據文件,日志文件和控制文件,由于DBWR/LGWR的工作原理,造成了數據文件,日志文件,控制文件的不一至,這就需要CKPT進程來同步。CKPT會更新數據文件/控制文件的頭信息。

CKPT工作的主要條件如下

在日志切換的時候

數據庫用immediate ,transaction , normal 選項shutdown 數據庫的時候

根據初始話文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的設置的數值來確定

用戶觸發(fā)

以下進程的啟動需要手工配置

g、ARCH

當數據庫以歸檔方式運行的時候,Oracle會啟動ARCH進程,當重做日志文件被寫滿時,日志文件進行切換,舊的重做日志文件就被ARCH進程復制到一個/多個特定的目錄/遠程機器。這些被復制的重做日志文件被叫做歸檔日志文件。

h、RECO

負責解決分布事物中的故障。Oracle可以連接遠程的多個數據庫,當由于網絡問題,有些事物處于懸而未決的狀態(tài)。RECO進程試圖建立與遠程服務器的通信,當故障消除后,RECO進程自動解決所有懸而未決的會話。

i、服務進程Server Process

服務進程的分類

專用服務進程(Dedicated Server Process)

一個服務進程對應一個用戶進程

共享服務進程(MultiTreaded Server Process)

一個服務進程對應多個用戶進程,輪流為用戶進程服務。

PGA & UGA

PGA = Process Global Area

UGA = User Global Area

他保存了用戶的變量、權限、堆棧、排序空間等用戶信息,對于專用服務器進程,UGA在PGA中分配。對于多線程進程,UGA在Large pool中分配。

j、用戶進程User Process

在客戶端,將用戶的SQL 語句傳遞給服務進程

5、一個貫穿數據庫全局的概念—-系統(tǒng)改變號SCN(System Change Number)

系統(tǒng)改變號,一個由系統(tǒng)內部維護的序列號。當系統(tǒng)需要更新的時候自動增加,他是系統(tǒng)中維持數據的一致性和順序恢復的重要標志。

a. 查詢語句不會使SCN增加,就算是同時發(fā)生的更新,數據庫內部對應的SCN也是不同的。這樣一來就保證了數據恢復時候的順序。

b. 維持數據的一致性,當一

二、Oracle 數據庫

Oracle數據庫的組成――物理操作系統(tǒng)文件的。主要包括以下幾種。

1、控制文件(參數文件init.ora記錄了控制文件的位置)

控制文件包括如下主要信息

數據庫的名字,檢查點信息,數據庫創(chuàng)建的時間戳

所有的數據文件,聯機日志文件,歸檔日志文件信息

備份信息等

有了這些信息,Oracle就知道那些文件是數據文件,現在的重做日志文件是哪些,這些都是系統(tǒng)啟動和運行的基本條件,所以他是Oracle運行的根本。如果沒有控制文件系統(tǒng)是不可能啟動的??刂莆募欠浅V匾?,一般采用多個鏡相復制來保護控制文件,或采用RAID來保護控制文件??刂莆募膩G失,將使數據庫的恢復變的很復雜。

控制文件信息可以從V$Controlfile中查詢獲得

2、數據文件(數據文件的詳細信息記載在控制文件中)

可以通過如下方式查看數據文件

SQL> select name from v$datafile;

NAME

—–

/u05/dbf/PROD/system_01.dbf

/u06/dbf/PROD/temp_01.dbf

/u04/dbf/PROD/users_01.dbf

/u09/dbf/PROD/rbs_01.dbf

/u06/dbf/PROD/applsys_indx_01.dbf

/u05/dbf/PROD/applsys_data_01.dbf

從以上可以看出,數據文件大致可以分為以下幾類:

i. 系統(tǒng)數據文件(system_01.dbf)

存放系統(tǒng)表和數據字典,一般不放用戶的數據,但是用戶腳本,如過程,函數,包等卻是保存在數據字典中的。

名詞解釋:數據字典 數據字典是一些系統(tǒng)表或視圖,他存放系統(tǒng)的信息,他包括數據庫版本,數據文件信息,表與索引等段信息,系統(tǒng)的運行狀態(tài)等各種和系統(tǒng)有關的信息和用戶腳本信息。數據庫管理員可以通過對數據字典的查詢,就可以了解到Oracle的運行狀態(tài)。

ii. 回滾段文件(rbs_01.dbf)

如果數據庫進行對數據的修改,那么就必須使用回滾段,回滾段是用來臨時存放修改前的數據(Before Image)?;貪L段通常都放在一個單獨的表空間上(回滾表空間),避免表空間碎片化,這個表空間包含的數據文件就是回滾數據文件。

iii. 臨時數據文件(temp_01.dbf)

主要存放用戶的排序等臨時數據,與回滾段相似,臨時段也容易引起表空間碎片化,而且沒有辦法在一個永久表空間上開辟臨時段,所以就必須有一個臨時表空間,它所包含的數據文件就是臨時數據文件,主要用于不能在內存上進行的排序操作。我們必須為用戶指定一個臨時表空間。

iv. 用戶數據文件(/applsys_data_01.dbf ,applsys_indx_01.dbf)

存放用戶數據,這里列舉了兩類常見的用戶型數據,一般數據和索引數據,一般來說,如果條件許可的話,可以考慮放在不同的磁盤上。

3、重做日志文件(聯機重做日志)

用戶對數據庫進行的任何操作都會記錄在重做日志文件。在了解重做日志之前必須了解重做日志的兩個概念,重做日志組和重做日志組成員(Member),一個數據庫中至少要有兩個日志組文件,一組寫完后再寫另一組,即輪流寫。每個日志組中至少有一個日志成員,一個日志組中的多個日志成員是鏡相關系,有利于日志文件的保護,因為日志文件的損壞,特別是當前聯機日志的損壞,對數據庫的影響是巨大的。

聯機日志組的交換過程叫做切換,需要特別注意的是,日志切換在一個優(yōu)化效果不好的數據庫中會引起臨時的“掛起”。掛起大致有兩種情況:

在歸檔情況下,需要歸檔的日志來不及歸檔,而聯機日志又需要被重新利用

檢查點事件還沒有完成(日志切換引起檢查點),而聯機日志需要被重新利用

解決這種問題的常用手段是:

i.增加日志組

ii.增大日志文件成員大小

通過v$log可以查看日志組,v$logfile可以查看具體的成員文件。

4、歸檔日志文件

Oracle可以運行在兩種模式之中,歸檔模式和不歸檔模式。如果不用歸檔模式,當然,你就不會有歸檔日志,但是,你的系統(tǒng)將不會是一個實用系統(tǒng),特別是不能用于生產系統(tǒng),因為你可能會丟失數據。但是在歸檔模式中,為了保存用戶的所有修改,在重做日志文件切換后和被覆蓋之間系統(tǒng)將他們另外保存成一組連續(xù)的文件系列,該文件系列就是歸檔日志文件。

有人或許會說,歸檔日志文件占領我大量的硬盤空間,其實,具體想一想,你是愿意浪費一點磁盤空間來保護你的數據,還是愿意丟失你的數據呢?顯而義見,我們需要保證我們的數據的安全性。其實,歸檔并不是一直占領你的磁盤空間,你可以把她備份到磁帶上,或則刪除上一次完整備份前的所有日志文件。

5、初始化參數文件

initSID.ora或init.ora文件,因為版本的不一樣,其位置也可能會不一樣。在8i中,通常位于$Oracle_HOME/admin//Pfile下,初始化文件記載了許多數據庫的啟動參數,如內存,控制文件,進程數等,在數據庫啟動的時候加載(Nomount時加載),初始化文件記錄了很多重要參數,對數據庫的性能影響很大,如果不是很了解,不要輕易亂改寫,否則會引起數據庫性能下降。

6、其他文件

i . 密碼文件

用于Oracle 的具有sysdba權限用戶的認證.

ii. 日志文件

報警日志文件(alert.log或alrt.ora)

記錄數據庫啟動,關閉和一些重要的出錯信息。數據庫管理員應該經常檢查這個文件,并對出現的問題作出即使的反應。你可以通過以下SQL 找到他的路徑select value from v$PARAMETER where name =”background_dump_dest”;

后臺或用戶跟蹤文件

系統(tǒng)進程或用戶進程出錯前寫入的信息,一般不可能讀懂,可以通過Oracle的TKPROF工具轉化為可以讀懂的格式。對于系統(tǒng)進程產生的跟蹤文件與報警日志文件的路徑一樣,用戶跟蹤文件的路徑,你可以通過以下SQL找到他的路徑select value from v$PARAMETER where name =”user_dump_dest”;

三、Oracle邏輯結構

1、 表空間(tablespace)

表空間是數據庫中的基本邏輯結構,一系列數據文件的。一個表空間可以包含多個數據文件,但是一個數據文件只能屬于一個表空間。

2、 段(Segment)

段是對象在數據庫中占用的空間,雖然段和數據庫對象是一一對應的,但段是從數據庫存儲的角度來看的。一個段只能屬于一個表空間,當然一個表空間可以有多個段。

表空間和數據文件是物理存儲上的一對多的關系,表空間和段是邏輯存儲上的一對多的關系,段不直接和數據文件。一個段可以屬于多個數據文件,關于段可以指定擴展到哪個數據文件上面。

段基本可以分為以下四種

數據段(Data Segment)

索引段(Index Segment)

回滾段(Rollback Segment)

臨時段(Temporary Segment)

3、區(qū)間(Extent)

關于Extent的翻譯有多種解釋,有的譯作擴展,有的譯作盤區(qū),我這里通常譯為區(qū)間。在一個段中可以存在多個區(qū)間,區(qū)間是為數據一次性預留的一個較大的存儲空間,直到那個區(qū)間被用滿,數據庫會繼續(xù)申請一個新的預留存儲空間,即新的區(qū)間,一直到段的更大區(qū)間數(Max Extent)或沒有可用的磁盤空間可以申請。 在Oracle8i以上版本,理論上一個段可以無窮個區(qū)間,但是多個區(qū)間對Oracle卻是有性能影響的,Oracle建議把數據分布在盡量少的區(qū)間上,以減少Oracle的管理與磁頭的移動。

4、Oracle數據塊(Block)

Oracle最基本的存儲單位,他是OS數據塊的整數倍。Oracle的操作都是以塊為基本單位,一個區(qū)間可以包含多個塊(如果區(qū)間大小不是塊大小的整數倍,Oracle實際也擴展到塊的整數倍)。

5、基本表空間介紹

a. 系統(tǒng)表空間

主要存放數據字典和內部系統(tǒng)表基表

查看數據數據字典的SQL

select * from dict

查看內部系統(tǒng)表的SQL

select * from v$fixed_view_definition

DBA對系統(tǒng)的系統(tǒng)表中的數據字典必須有一個很深刻的了解,他們必須準備一些基礎的SQL語句,通過這些SQL可以立即了解系統(tǒng)的狀況和數據庫的狀態(tài),這些基本的SQL包括

系統(tǒng)的剩余空間

系統(tǒng)的SGA

狀態(tài)系統(tǒng)的等待

用戶的權限

當前的用戶鎖

緩沖區(qū)的使用狀況等

在成為DBA 的道路上我們不建議你過分的依賴于OEM/Quest 等優(yōu)秀的數據庫管理工具,因為他們不利于你對數據數據字典的理解,SQL語句可以完成幾乎全部的數據庫管理工作。

大量的讀少量的寫是該表空間的一個顯著的特點。

b. 臨時表空間.

臨時表空間顧名思義是用來存放臨時數據的,例如排序操作的臨時空間,他的空間會在下次系統(tǒng)啟動的時候全部被釋放。

c. 回滾段表空間

i. 回滾段在系統(tǒng)中的作用

當數據庫進行更新插入刪除等操作的時候,新的數據被更新到原來的數據文件,而舊的數據(Before Image)就被放到回滾段中,如果數據需要回滾,那么可以從回滾段將數據再復制到數據文件中。來完成數據的回滾。在系統(tǒng)恢復的時候, 回滾段可以用來回滾沒有被commit 的數據,解決系統(tǒng)的一至性。

回滾段在什么情況下都是大量的寫,一般是少量讀,因此建議把回滾段單獨出來放在一個單獨的設備(如單獨的磁盤或RAID),以減少磁盤的IO爭用。

ii. 回滾段的工作方式

一個回滾表空間可以被劃分成多個回滾段.

一個回滾段可以保存多個會話的數據.

回滾段是一個圓形的數據模型

假設回滾段由4 個區(qū)間組成,他們的使用順序就是區(qū)間1à區(qū)間2à區(qū)間3à區(qū)間4à區(qū)間1。也就是說,區(qū)間是可以循環(huán)使用的,當區(qū)間4到區(qū)間1的時候,區(qū)間1里面的會話還沒有結束, 區(qū)間4用完后就不能再用區(qū)間1,這時系統(tǒng)必須分配區(qū)間5,來繼續(xù)為其他會話服務服務。

我們分析一個Update 語句的完成

①. 用戶提交一個Update 語句

②. Server Process 檢查內存緩沖.

如果沒有該數據塊的緩沖,則從磁盤讀入

i. 如果沒有內存的有效空間,DBWR被啟動將未寫入磁盤的臟緩沖寫入磁盤

ii. 如果有有效空間,則讀入

③. 在緩沖內更新數據

i. 申請一個回滾段入口,將舊數據寫如回滾段

ii. 加鎖并更新數據

iii. 并在同時將修改記錄在Redo log buffer中

另外,站長團上有產品團購,便宜有保證

Oracle數據庫基本知識

Oracle數據庫基本知識

  Oracle Database,又名OracleRDBMS,或簡稱Oracle。是甲骨文公司的一款笑液關系數據庫管理系統(tǒng)。本文為大家分享的是Oracle數據庫的基本知識,希望對大家有所幫助!

  它是在數據庫領域一直處于領先地位的產品??梢哉fOracle數據庫系統(tǒng)是目前世界上流行的關系數據庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強,適用于各類大、中、小、微機環(huán)境。它是一種高效率、可靠性好的適應高吞吐量的數據庫解決方案。

  介紹

  ORACLE數據庫系統(tǒng)是美國ORACLE公司(甲骨文)提供的以分布式數據庫為核心的一組軟件產品,是目前更流行的客戶/服務器(CLIENT/SERVER)或B/S體系結構的數據庫之一。比如SilverStream就是基于數據庫的一種中間件。ORACLE數據庫是目前世界上使用最為廣泛的數據庫管理系統(tǒng),作為一個通用的數據庫系統(tǒng),它具有完整的數據管理功能;作為一個關系數據庫,它是一個完備關系的產品;作為分布式數據庫它實現了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。

  Oracle數據庫最新版本為OracleDatabase 12c。Oracle數據庫12c引入了一個新的多承租方架構,使用該架構可輕松部署和管理數據庫云。此外,一些創(chuàng)新特性可更大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個數據庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle數據庫12c 成為私有云和公有云部署的理想平臺。

  就業(yè)前景

  從就業(yè)與擇業(yè)的角度來講,計算機相關專業(yè)的大學生從事oracle方面的技術是職業(yè)發(fā)展中的更佳選擇。

  其一、就業(yè)面廣:ORACLE幫助拓展技術人員擇業(yè)的廣度,全球前100強企業(yè)99家都在使用ORACLE相關技術,中國機構,大中型企事業(yè)單位都能有ORACLE技術的工程師崗位,大學生在校期間興趣廣泛,每個人興趣特長各異,不論你想進入金融行業(yè)還是電信行業(yè)或者機構,ORACLE都能夠在你的職業(yè)發(fā)展中給你最強有力的支撐,成為你最貼身的金飯碗。

  其二、技術層次深:如果期望進入IT服務或者產品公司,Oracle技術能夠幫助提高就業(yè)的深度。Oracle技術已經成為全球每個IT公司必選的軟件技術之一,熟練掌握Oracle技術能夠為從業(yè)人員帶來技術應用上的優(yōu)勢,同時為IT技術的深入應用起到非常關鍵的作用。掌握 Oracle技術,是IT從業(yè)人員了解全面信息化整體解決方案的基礎。

  其三、職業(yè)方向多:Oracle數據庫管理方向、Oracle開發(fā)及系統(tǒng)架構方向、Oracle數據建模數據倉庫等方向。

  Oracle數據庫漏洞分析:無需用戶名和密碼進入你的數據庫

  一般性的數據庫漏洞,都是在成功連接或登錄數據庫后實現入侵;本文介紹兩個在2023年暴露的Oracle漏洞,通過這兩種漏洞的結合,可以在不掌握用戶名/密碼的情況下入侵Oracle,從嫌陪而完成對數據的竊取或者破壞。這兩個漏洞就是CVE和CVE。

  引言

  國內外很多重碰者物要的系統(tǒng)都采用Oracle作為數據存儲的數據庫;在Oracle中存儲著企業(yè)或大量敏感的信息,在金錢或政治的誘導下,內外部黑客會想法利用管理、網絡、主機或數據庫的自身漏洞嘗試入侵到數據庫中,以達到自身的目的。

  本文的作者通過對Oracle倆種漏洞的組合研究,設計了一套在不掌握用戶名/密碼的方式入侵到Oracle中;這種方法,比傳統(tǒng)的需要登錄到數據庫中的入侵方法,具有更大的安全隱患和破壞性。

  本文希望通過對這兩個漏洞和攻擊方法的介紹,能夠引起相關人員的重視,完善對數據庫安全的措施。

  1、概要介紹

  本文提供的方法是基于漏洞CVE和CVE對oracle數據庫的攻擊測試的方法。

  CVE漏洞是Oracle允許攻擊者在不提供用戶名/密碼的’情況下,向遠程“TNS Listener”組件處理的數據投毒的漏洞。攻擊者可利用此漏洞將數據庫服務器的合法“TNS Listener”組件中的數據轉向到攻擊者控制的系統(tǒng),導致控制遠程組件的數據庫實例,造成組件和合法數據庫之間的中間人攻擊、會話劫持或拒絕服務攻擊。

  CVE漏洞是Oracle Database 10g/11g身份驗證協(xié)議實現中存在一個設計缺陷,攻擊者無需認證即可遠程獲取數據庫用戶密碼哈希相關數據,從而可以離線暴力破解用戶密碼,進一步控制數據庫系統(tǒng)。

  我們通過如下的步驟和過程可以實現對Oracle的入侵:

  (1)利用CVE進行TNS劫持,在監(jiān)聽下利用遠程注冊,注冊同名數據庫實例;

  (2)新登陸的用戶,在TNS的負載均衡策略下,有可能流量登錄到偽造的監(jiān)聽服務上;

  (3)該監(jiān)聽服務對用戶的登陸過程進行監(jiān)控,并將相關數據流量轉發(fā)到真實的數據庫上;

  (4)利用CVE獲得通訊過程中的認證相關信息;

  (5)對認證相關信息進行離線的暴力破解,獲得登陸的密碼;

  (6)試用破解的用戶名/密碼登陸Oracle,完成對Oracle中數據的訪問;

  2、通過CVE進行TNS劫持

  該漏洞存在于Oracle的所有版本,并且Oracle至今僅是發(fā)布了警告性通知,并未提供解決方案。

  要想利用CVE漏洞做TNS劫持,首先需要了解TNS機制。如下圖所示oracle 通過在本地解析網絡服務名到目標主機IP地址,服務端口號,目標數據庫名,把這些信息發(fā)送到oracle服務器端監(jiān)聽程序,最后再由監(jiān)聽程序遞送DBMS。

  其中關鍵點在于監(jiān)聽會按照目標數據庫名遞送到名稱正確的數據庫。那么如果一個監(jiān)聽下有2個同名數據庫。監(jiān)聽將自動按照負載均衡把這次訪問發(fā)送到負載低的數據庫上,進行連接訪問。數據庫注冊到監(jiān)聽的方法就決定了,能否同時注冊同名數據庫在同一個監(jiān)聽下。注冊方式分為本地注冊和遠程注冊,通過修改參數可以調整為遠程注冊。

  下面是一段可用的TNS劫持的過程:

.在劫持機上創(chuàng)建一個和目標數據庫實例同名的數據庫實例。

.在劫持機上修改 tnsnames.ora 文件

  添加

  listener_name=

  (DESCRIPTION=

  (ADDRESS=(PROTOCOL=tcp)(HOST=目標機器IP)(PORT=目標機器端口)))

.在劫持機上用SQL*Plus 順序執(zhí)行下面步驟。

.$ sqlplus / as sysdba

. SQL> ALTER SYSTEM SETREMOTE_LISTENER=’LISTENER_NAME’;

. SQL> ALTER SYSTEM REGISTER;

.多個客戶端,向數據庫發(fā)起登錄。會劫持到一部分客戶端的登錄信息。

  最終達到效果如下圖所示:

  按照猜想同一個監(jiān)聽下有2個同名實例??蛻舳嗽L問監(jiān)聽,監(jiān)聽按照客戶端中的數據庫名信息分配數據庫,由于監(jiān)聽下有2個同名數據庫,客戶端鏈接很可能會被分配到劫持者的數據庫實例下,再通過配置劫持者的本地監(jiān)聽把客戶端請求指回原數據庫。結構圖如下:

  測試客戶端鏈接196次。目標數據庫實例獲得113次,劫持數據庫實例獲得83次基本滿足負載均衡的假設。(注上面實例是local server 下面實例是 remote server)

  通過以上方式我們可以截獲約一半左右客戶端發(fā)送到服務器的合法鏈接。其中獲得了服務器IP、端口號、數據庫位置、實例名、登錄用戶名等一系列明文信息和4組密文信息(AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA)。

  3、通過CVE進行密碼破解

  CVE受影響的數據庫版本有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(運行在z/OS下)版本。

  雖然這個漏洞在11.2.0.3中已經解決,但是僅僅數據庫客戶端和服務器都升級到11.2.0.3并且sqlnet.ora文件中增加SQLNET.ALLOWED_LOGON_VERSION=12才有效。

  正如CVE所描述Oracle為了防止第三方通過網絡獲取登錄信息包。而對密碼進行了加密處理。本部分只以oracle11.1密碼如何破解為例進行說明。

  在發(fā)起連接之后(oracle牽手完成),客戶端和服務器經過協(xié)商確定要使用的驗證協(xié)議。要完成這個任務,客戶端首先向數據庫發(fā)送一個包。包中包含客戶端主要信息和所請求的加密方式。數據庫確認加密方式有效后,發(fā)送一個確認服務包如下圖所示:

  在通過安全網絡服務完成任何所要求的協(xié)議之后,數據庫用戶被O3logon(oracle驗證方式) 進行驗證,這個協(xié)議執(zhí)行一個序列來向數據庫證明客戶端擁有密碼。為了避免網絡第三方截獲到密碼。首先客戶端發(fā)送用戶名到數據庫來表明用戶身份。數據庫端根據加密協(xié)議,其中96位的作為數據庫端密鑰,20位的作為偏移量,它對每個連接都是不同的。一個典型的數據庫端發(fā)給客戶端的密鑰如下:

  AUTH_SESSKEY…..COCDD89FIGODKWASDF……………………

  客戶端根據加密算法向服務器端發(fā)送96位的客戶端密鑰和64位的密碼密鑰。服務器端計算客戶端傳入的密碼密鑰。如果計算后密碼密文和數據庫中存儲的16位密碼密文一致則驗證通過。

  根據這個過程可知上面TNS劫持包中取得的加密信息:AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA這四個值是解密的關鍵。我們把他們按照SHA1,MD5,AES192進行一系列處理。最終通過數據字典碰撞得到密碼明文。

  下面這段網上公布的一段示例代碼,這段代碼與筆者的思路不完全相同,但也能大概地說明這個漏洞的攻擊過程:

  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、建議的預防措施

  根據以上兩段分析,我們可以有如下的預防措施:

  (1)在條件許可的情況下,對Oracle進行補丁升級,對Oracle打cpuoct補丁;注意對于cpuoct補丁要求服務器端和應用服務器端同時升級,否則應用系統(tǒng)將無法訪問Oracle;

  (2)若無法對Oracle升級,要購買或安裝具備虛擬補丁功能的數據庫安全產品,防止對CVE和CVE的利用;

  (3)建立足夠強健的口令,不要使用8位以下密碼,或者字典庫中的口令。

關于oracle8.0.6數據庫的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。

創(chuàng)新互聯服務器托管擁有成都T3+級標準機房資源,具備完善的安防設施、三線及BGP網絡接入帶寬達10T,機柜接入千兆交換機,能夠有效保證服務器托管業(yè)務安全、可靠、穩(wěn)定、高效運行;創(chuàng)新互聯專注于成都服務器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認可。


名稱欄目:Oracle8.0.6數據庫詳解與應用指導(oracle8.0.6數據庫)
瀏覽路徑:http://www.dlmjj.cn/article/cosdigj.html