從內部開始 認識Oracle資料庫結構組件

來源:互聯網
上載者:User

引自相濡以沫的部落格】Oracle兩部分:執行個體和資料庫

執行個體由以下組成:SGA,Sharedpool,Databasebuffercache,Redologbuffercache。資料庫由物理檔案組成,其中必須有的檔案是:資料檔案,控制檔案,重做日誌。另外還有:參數檔案,口令檔案,歸檔記錄檔(這三個不是必須的)。

使用者建立串連後,啟動一個伺服器處理序,用來將來代替使用者進程完成SQLCOMMAND,再通過Oracle執行個體實現對資料庫的相關檔案進行改變(資料進行讀取或修改)。

使用者進程不可以直接操作資料庫,而必須通過建立串連後,再通過伺服器處理序來完成。

OracleSERVER由兩個部分組成,

1、INSTANCE:由記憶體結構和後台進程組成。
2、DATABASE:由資料檔案,記錄檔和控制檔案組成<這三個檔案是必需的>。

CONTROLFILE是用來串連執行個體和DATABASE:

sql>SHUTDOWNIMMEDIATE 
sql>STARTUPNOMOUNT
sql>ALTERDATABASEMOUNT

以上三個過程就是通過CONTROLFILE來串連執行個體和資料庫。

sql>ALTERDATABASEOPEN:在OPEN的過程對DATABASE的資料檔案和重做記錄檔進行一次性的驗證,驗證它們的狀態。

OracleINSTANCE:存取資料庫的一個手段。

一個DATABASE與INSTANCE之間是1:N的關係,一個INSTANCE只能操作一個DATABASE,由記憶體結構(共用池,BUFFERCACHE,REDOLOGBUFFERCACHE)及相應的進程結構組成(PMON<程式監控進程>,SMON<系統監控進程>,CKPT<檢查點進程>)。

sql>SHOWSGA---顯示DATABASE記憶體結構資訊 
sql>SETWRAPOFF
sql>SETLINESIZE200

以上這兩個是設定行寬。

sql>SELECT*FROMV$BGPROCESS;

將看到在這個系統中所有可能使用到的進程,其中PADDR並不每個進程都分配到有效地址,即並不是每個進程都是必須的。

sql>SELECT*FROMV$BGPROCESSWHEREPADDR<>'00'

將顯示所有必需的進程。

ESTABLISHINGACONNECTIONANDCREATINGASESSION

串連到Oracle執行個體

包括建立一個使用者串連及建立會話。

sql>SELECT*FROMV$CONTROLFILES;--顯示現系統下由幾個控制檔案組成。
sql>SELECT*FROMV$DATAFILE;--顯示由幾個資料檔案組成。
sql>SELECT*FROMV$LOGFILE;--顯示由幾個記錄檔組成。

Oracle MEMORY STRUCTURE(記憶體結構)

由兩部分組成:

1、SGA是動態,其最大值由SGA_MAX_SIZE指定,SGA的記憶體由SGACOMPONENTS來動態調整。

2、PGA是不共用的,即其包含的資訊是不一樣的,有兩個可享的記憶體可以由SGA配置:

(1)LARGEPOOL 
(2)JAVAPOOL
sql>SHOWPARAMETERSHARED
sql>SHOWPARAMETERDB_CACHE
sql>SHOWPARAMETERLOG

以上三個命令是用於查看相關記憶體資訊。

sql>ALTERSYSTEMSETDB_CACHE_SIZE=20M; 

所有記憶體大小總和不能大於SGA_MAX_SIZE的值,當提示資訊出現?號或亂碼時,是由於系統的語言問題。

可以通過ALTERSESSIONSETNLS_LANGUAGE='AMERICAN'或ALTERSESSIONSETNLS_LANGUAGE="SIMPLE CHINESE"。

SHAREDPOOL(共用池)

(1)LIBRARYCACHE庫緩衝;

(2)DATADICTIONARYCACHE資料字典緩衝,有的地方又稱行CACHE,由SHARED_POOL_SIZE指定大小。

sql>ALTERSYSTEMSETSHARED_POOL_SIZE=64M; 

LIBRARYCACHE主要為提高代碼的共用,儲存的是最近使用的SQL和PL/SQL代碼。

(1)用最近最少使用(LRU)演算法;

(2)包括兩個結構1:共用SQL代碼;2:共用PL/SQL代碼;

(3)不可直接定義,而由SHAREDPOOLSIZE決定。

DATADICTONARYCACHE。

如:SQL>SELECT*FROMAUTHORS;

執行此命令的過程是:首先確認是否存在AUTHORS,然後確認欄位存不存在,再檢查文法,最後驗證許可權,而這些資訊就屬於DATADICTIONARYCACHE的內容。其包含的資訊有:DATABASEFILES,表,索引,欄位,使用者,許可權和其他資料庫物件。

(1)主要用來改變系統的感應時間和效能。

(2)通過改變SHAREDPOOL大小來設定,DATADICTIONARYCACHE不能單獨設定大小。

相關文章】

  • Oracle基本文法集錦
  • Oracle中用SQL語句實現進位間互相轉換
  • Oracle資料庫磁碟重組

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.