當前位置:首頁 » 文件管理 » java數據字典緩存

java數據字典緩存

發布時間: 2022-12-21 12:44:47

① 下面哪個內存區域是用來緩存數據字典信息的

您好,很高興為您解答。

Shared Pool常用來緩存數據字典信息

如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】

希望我的回答對您有所幫助,望採納!

~ O(∩_∩)O~

java lambda 循環怎麼獲取下標

java::
try{
List<DataDictDO>list=dataDictDao.getAllList("dataDictMapper.getDataDictInfo",null);
DataDictDObean;
StringitemName;
StringcolName;
DATA_DICT_MAP.clear();
for(inti=0;i<list.size();i++){
bean=list.get(i);
itemName=bean.getItemName();
colName=bean.getColName();
Map<String,String>beanMap;
StringitemNameColName=(itemName+"-"+colName);
if(DATA_DICT_MAP.containsKey(itemNameColName)){
beanMap=DATA_DICT_MAP.get(itemNameColName);
}else{
beanMap=newHashMap<String,String>();
}
beanMap.put(bean.getItemVal(),bean.getItemDesc());
DATA_DICT_MAP.put(itemNameColName,beanMap);
}
}catch(Exceptione){
LOG.error("載入數據字典緩存失敗!!!",e);
}

lambda

DATA_DICT_MAP=list.stream().collect(Collectors.groupingBy(
it->it.getItemName()+"-"+it.getColName(),
Collectors.toMap(DataDictDO::getItemVal,DataDictDO::getItemDesc)));

③ 請問Oracle的庫高速緩存、數據字典高速緩存的作用分別是什麼請給予詳細點的解答,謝謝

庫高速緩存
是用來存放你實際表的數據塊的,如表TAB_A里實際存放的若干條數據記錄,一般都存放在用戶的表空間里。
數據字典高速緩存
用來存放表的定義,如表TAB_A,有幾個欄位,每個欄位的類型、長度,表空間等,這類信息在你建表後會存放在系統表裡,都是在SYSTEM表空間下,ORACLE運行時,這些信息被裝入
數據字典高速緩存里。

④ ORACLE 的內存結構SGA包括哪些方面

1.資料庫高速緩沖(the data buffer cache),
2.重做日誌緩沖(the redo log buffer)
3.共享池(the shared pool),包括庫高速緩存(the Library cache)和數據字典緩存(the data dictionary cache)以及其它各方面的信息。
4,java池(java pool)
解釋:

1.數據高速緩沖區(Data Buffer Cache)
在數據高速緩沖區中存放著Oracle系統最
近使用過的數據塊(即用戶的高速緩沖區),當把數據寫入資料庫時,它以數據塊為單位進行讀寫,當數據高速緩沖區填滿時,則系統自動去掉一些不常被用戶訪問
的數據。如果用戶要查的數據不在數據高速緩沖區時,Oracle自動從磁碟中去讀取。數據高速緩沖區包括三個類型的區:1) 臟的區(Dirty
Buffers):包含有已經改變過並需要寫回數據文件的數據塊。
2) 自由區(Free Buffers):沒有包含任何數據並可以再寫入的區,Oracle可以從數據文件讀數據塊該區。
3) 保留區(Pinned Buffers):此區包含有正在處理的或者明確保留用作將來用的區。
2.Redo Log Buffer Cache緩存對於數據塊的所有修改。
主要用於恢復其中的每一項修改記錄都被稱為redo 條目。利用Redo條目的信息可以重做修改。
3. Shared Pool用於緩存最近被執行的SQL語句和最近被使用的數據定義。
它主要由兩個內存結構構成:Library cache和Data dictionary cache
修改共享池的大小:ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;
Libray
Cache緩存最近被執行的SQL和PL/SQL的相關信息,即存放SQL語句的文本,分析後的代碼及執行計劃。實現常用語句的共享,使用LRU演算法進行
管理,由以下兩個結構構成:Shared SQL area、Shared PL/SQL area;
Data Dictionary
Cache緩存最近被使用的資料庫定義,即存放有關表,列和其它對象定義及許可權。它包括關於資料庫文件、表、索引、列、用戶、許可權以及其它資料庫對象的信
息。在語法分析階段,Server
Process訪問數據字典中的信息以解析對象名和對存取操作進行驗證。數據字典信息緩存在內存中有助於縮短響應時間。
4.java pool
在資料庫中運行Java代碼時用到這部分內存。例如:編寫Java存儲過程在伺服器內運行。需要注意的是,該內存與常見的Java編寫的B/S系統並沒關系。用JAVA語言代替PL/SQL語言在資料庫中寫存儲過程才會用到這部分內存。
如果你還想細致的了解話,建議看看相關資料
http://wenku..com/view/6a00a8d376a20029bd642d87.html###

⑤ Oracle資料庫物理組建件的類型有什麼

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''
將顯示所有必需的進程。

連接到Oracle實例包括建立一個用戶連接及創建會話。
SQL>SELECT*FROMV$CONTROLFILES;--顯示現系統下由幾個控制文件組成。
SQL>SELECT*FROMV$DATAFILE;--顯示由幾個數據文件組成。
SQL>SELECT*FROMV$LOGFILE;--顯示由幾個日誌文件組成。
OracleMEMORYSTRUCTURE(內存結構)
由兩部分組成:
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不能單獨設置大小

⑥ SGA是什麼

是一組包含一個Oracle實例的數據和控制信息的共享內存結構。主要是用於存儲資料庫信息的內存區,該信息為資料庫進程所共享(PGA不能共享的)。它包含Oracle伺服器的數據和控制信息,它是在Oracle伺服器所駐留的計算機的實際內存中得以分配,如果實際內存不夠再往虛擬內存中寫。
SGA幾個很重要的特性:
1、SGA的構成--數據和控制信息,我們下面會詳細介紹;
2、SGA是共享的,即當有多個用戶同時登錄了這個實例,SGA中的信息可以被它們同時訪問(當涉及到互斥的問題時,由latch和enquence控制);
3、一個SGA只服務於一個實例,也就是說,當一台機器上有多個實例運行時,每個實例都有一個自己的SGA盡管SGA來自於OS的共享內存區,但實例之間不能相互訪問對方的SGA區。
它主要包括:
1.資料庫高速緩存(the database buffer cache),
2.重演日誌緩存(the redo log buffer)
3.共享池(the shared pool)
4.數據字典緩存(the data dictionary cache)以及其它各方面的信息。
1.數據高速緩沖區(Data Buffer Cache)
在數據高速緩沖區中存放著Oracle系統最近使用過的數據塊(即用戶的高速緩沖區),當把數據寫入資料庫時,它以數據塊為單位進行讀寫,當數據高速緩沖區填滿時,則系統自動去掉一些不常被用訪問的數據。如果用戶要查的數據不在數據高速緩沖區時,Oracle自動從磁碟中去讀取。數據高速緩沖區包括三個類型的區:1) 臟的區(Dirty Buffers):包含有已經改變過並需要寫回數據文件的數據塊。
2) 自由區(Free Buffers):沒有包含任何數據並可以再寫入的區,Oracle可以從數據文件讀數據塊該區。
3) 保留區(Pinned Buffers):此區包含有正在處理的或者明確保留用作將來用的區。
2.Redo Log Buffer Cache緩存對於數據塊的所有修改。
主要用於恢復其中的每一項修改記錄都被稱為redo 條目。利用Redo條目的信息可以重做修改。
3. Shared Pool用於緩存最近被執行的SQL語句和最近被使用的數據定義。
它主要由兩個內存結構構成:Library cache和Data dictionary cache
修改共享池的大小:ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;
Libray Cache緩存最近被執行的SQL和PL/SQL的相關信息。實現常用語句的共享,使用LRU演算法進行管理
,由以下兩個結構構成:Shared SQL area、Shared PL/SQL area、Data Dictionary Cache、Data dictionary cache緩存最近被使用的資料庫定義。它包括關於資料庫文件、表、索引、列、用戶、許可權以及其它資料庫對象的信息。在語法分析階段,Server Process訪問數據字典中的信息以解析對象名和對存取操作進行驗證。數據字典信息緩存在內存中有助於縮短響應時間。
4.數據字典緩存(the data dictionary cache)

⑦ 創建一個序列,第一次從5循環到10,以後再從0開始循環。如果數據的控制文件損壞了,需要如何解決故障。

1、 ORACLE 實例――包括內存結構與後台進程 2、 ORACLE 資料庫――物理操作系統文件的集合 3、 了解內存結構的組成 4、 了解後台進程的作用

1、 Oracle 實例――包括內存結構與後台進程
2、 Oracle 資料庫――物理操作系統文件的集合
3、 了解內存結構的組成
4、 了解後台進程的作用
5、 了解資料庫的物理文件
6、 解釋各種邏輯結構

一、Oracle實例

1、Oracle 實例

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

2、Oracle 資料庫

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

3、系統全局共享區System Global Area(SGA)

System Global Area 是一塊巨大的共享內存區域,他被看做是Oracle 資料庫的一個大緩沖池,這里的數據可以被Oracle的各個進程共用。其大小可以通過如下語句查看:
SQL> select * from v$sga;
NAME VALUE
-------------------- ---------
Fixed Size 39816
Variable Size 259812784
Database Buffers 1.049E+09
Redo Buffers 327680

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

主要包括以下幾個部分:

a、 共享池(Shared pool)

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

SQL語句緩沖(Library Cache)

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

下面舉例說明parse的時間
SQL> select count(*) fromscpass ;
COUNT(*)
----------
243
Elapsed: 00:00:00.08

這是在Share_pool 和Data buffer 都沒有數據緩沖區的情況下所用的時間
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語句的重用率必須先養成良好的變成習慣,盡量使用Bind變數。

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

顯而易見,數據字典緩沖區是Oracle特地為數據字典准備的一塊緩沖池,供Oracle內部使用,沒有什麼可以說的。

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

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

這個緩沖區的塊基本上在兩個不同的列表中管理。一個是塊的「臟」表(Dirty List),需要用資料庫塊的

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

c、重做日誌緩沖區(Redo log buffer)

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

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

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

e、大池(Large Pool)

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

下面對象使用大池:

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

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

備份(Backup)――用於RMAN磁碟I/O緩存

4、後台進程(Background process)

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

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

ps ?ef | grep ora_
# ps -ef | grep ora_ | grep XCLUAT
Oracle 29431 1 0 Sep 02 2:02 ora_dbwr_SID
Oracle 29444 1 0 Sep 02 0:03 ora_ckpt_SID
Oracle 29448 1 0 Sep 02 2:42 ora_smon_SID
Oracle 29442 1 0 Sep 02 3:25 ora_lgwr_SID
Oracle 29427 1 0 Sep 02 0:01 ora_pmon_SID

a、Oracle系統有5 個基本進程他們是
DBWR(數據文件寫入進程)
LGWR(日誌文件寫入進程)
SMON(系統監護進程)
PMON(用戶進程監護進程)
CKPT(檢查點進程,同步數據文件, 日誌文件,控制文件)

b、DBWR
將修改過的數據緩沖區的數據寫入對應數據文件
維護系統內的空緩沖區
這里指出幾個容易錯誤的概念:
當一個更新提交後,DBWR把數據寫到磁碟並返回給用戶提交完成.
DBWR會觸發CKPT 後台進程
DBWR不會觸發LGWR 進程
上面的概念都是錯誤的.
DBWR是一個很底層的工作進程,他批量的把緩沖區的數據寫入磁碟。和任何前台用戶的進程幾乎沒有什麼關系,也不受他們的控制。至於DBWR會不會觸發LGWR和CKPT進程,我們將在下面幾節里討論。
DBWR工作的主要條件如下
DBWR 超時
系統中沒有多的空緩沖區用來存放數據
CKPT 進程觸發DBWR 等

c、LGWR
將重做日誌緩沖區的數據寫入重做日誌文件,LGWR是一個必須和前台用戶進程通信的進程。當數據被修改的時候,系統會產生一個重做日誌並記錄在重做日誌緩沖區內。這個重做日誌可以類似的認為是以下的一個結構:
SCN=000000001000
數據塊ID
對象ID=0801
數據行=02
修改後的數據=0011
提交的時候,LGWR必須將被修改的數據的重做日誌緩沖區內數據寫入日誌數據文件,然後再通知前台進程提交成功,並由前台進程通知用戶。從這點可以看出LGWR承擔了維護系統數據完整性的任務。
LGWR 工作的主要條件如下
用戶提交
有1/3 重做日誌緩沖區未被寫入磁碟
有大於1M 重做日誌緩沖區未被寫入磁碟
超時
DBWR需要寫入的數據的SCN號大於LGWR 記錄的SCN號,DBWR 觸發LGWR寫入

d、SMON
工作主要包含
清除臨時空間
在系統啟動時,完成系統實例恢復
聚結空閑空間
從不可用的文件中恢復事務的活動
OPS中失敗節點的實例恢復
清除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 的設置的數值來確定
用戶觸發
以下進程的啟動需要手工配置

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

h、RECO
負責解決分布事物中的故障。Oracle可以連接遠程的多個資料庫,當由於網路問題,有些事物處於懸而未決的狀態。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、一個貫穿資料庫全局的概念----系統改變號SCN(System Change Number)
系統改變號,一個由系統內部維護的序列號。當系統需要更新的時候自動增加,他是系統中維持數據的一致性和順序恢復的重要標志。

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

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

二、Oracle 資料庫

Oracle資料庫的組成――物理操作系統文件的集合。主要包括以下幾種。

1、控制文件(參數文件init.ora記錄了控制文件的位置)
控制文件包括如下主要信息
資料庫的名字,檢查點信息,資料庫創建的時間戳
所有的數據文件,聯機日誌文件,歸檔日誌文件信息
備份信息等
有了這些信息,Oracle就知道那些文件是數據文件,現在的重做日誌文件是哪些,這些都是系統啟動和運行的基本條件,所以他是Oracle運行的根本。如果沒有控制文件系統是不可能啟動的。控制文件是非常重要的,一般採用多個鏡相復制來保護控制文件,或採用RAID來保護控制文件。控制文件的丟失,將使資料庫的恢復變的很復雜。
控制文件信息可以從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. 系統數據文件(system_01.dbf)
存放系統表和數據字典,一般不放用戶的數據,但是用戶腳本,如過程,函數,包等卻是保存在數據字典中的。
名詞解釋:數據字典 數據字典是一些系統表或視圖,他存放系統的信息,他包括資料庫版本,數據文件信息,表與索引等段信息,系統的運行狀態等各種和系統有關的信息和用戶腳本信息。資料庫管理員可以通過對數據字典的查詢,就可以了解到Oracle的運行狀態。

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

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

iv. 用戶數據文件(/applsys_data_01.dbf ,applsys_indx_01.dbf)
存放用戶數據,這里列舉了兩類常見的用戶型數據,一般數據和索引數據,一般來說,如果條件許可的話,可以考慮放在不同的磁碟上。

3、重做日誌文件(聯機重做日誌)
用戶對資料庫進行的任何操作都會記錄在重做日誌文件。在了解重做日誌之前必須了解重做日誌的兩個概念,重做日誌組和重做日誌組成員(Member),一個資料庫中至少要有兩個日誌組文件,一組寫完後再寫另一組,即輪流寫。每個日誌組中至少有一個日誌成員,一個日誌組中的多個日誌成員是鏡相關系,有利於日誌文件的保護,因為日誌文件的損壞,特別是當前聯機日誌的損壞,對資料庫的影響是巨大的。
聯機日誌組的交換過程叫做切換,需要特別注意的是,日誌切換在一個優化效果不好的資料庫中會引起臨時的「掛起」。掛起大致有兩種情況:
在歸檔情況下,需要歸檔的日誌來不及歸檔,而聯機日誌又需要被重新利用
檢查點事件還沒有完成(日誌切換引起檢查點),而聯機日誌需要被重新利用
解決這種問題的常用手段是:

i.增加日誌組

ii.增大日誌文件成員大小
通過v$log可以查看日誌組,v$logfile可以查看具體的成員文件。

4、歸檔日誌文件
Oracle可以運行在兩種模式之中,歸檔模式和不歸檔模式。如果不用歸檔模式,當然,你就不會有歸檔日誌,但是,你的系統將不會是一個實用系統,特別是不能用於生產系統,因為你可能會丟失數據。但是在歸檔模式中,為了保存用戶的所有修改,在重做日誌文件切換後和被覆蓋之間系統將他們另外保存成一組連續的文件系列,該文件系列就是歸檔日誌文件。
有人或許會說,歸檔日誌文件佔領我大量的硬碟空間,其實,具體想一想,你是願意浪費一點磁碟空間來保護你的數據,還是願意丟失你的數據呢?顯而義見,我們需要保證我們的數據的安全性。其實,歸檔並不是一直佔領你的磁碟空間,你可以把她備份到磁帶上,或則刪除上一次完整備份前的所有日誌文件。

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_mp_dest";
後台或用戶跟蹤文件
系統進程或用戶進程出錯前寫入的信息,一般不可能讀懂,可以通過Oracle的TKPROF工具轉化為可以讀懂的格式。對於系統進程產生的跟蹤文件與報警日誌文件的路徑一樣,用戶跟蹤文件的路徑,你可以通過以下SQL找到他的路徑select value from v$PARAMETER where name ="user_mp_dest";

三、Oracle邏輯結構

1、 表空間(tablespace)
表空間是資料庫中的基本邏輯結構,一系列數據文件的集合。一個表空間可以包含多個數據文件,但是一個數據文件只能屬於一個表空間。

2、 段(Segment)
段是對象在資料庫中佔用的空間,雖然段和資料庫對象是一一對應的,但段是從資料庫存儲的角度來看的。一個段只能屬於一個表空間,當然一個表空間可以有多個段。
表空間和數據文件是物理存儲上的一對多的關系,表空間和段是邏輯存儲上的一對多的關系,段不直接和數據文件發生關系。一個段可以屬於多個數據文件,關於段可以指定擴展到哪個數據文件上面。
段基本可以分為以下四種
數據段(Data Segment)
索引段(Index Segment)
回滾段(Rollback Segment)
臨時段(Temporary Segment)

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

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

5、基本表空間介紹

a. 系統表空間
主要存放數據字典和內部系統表基表
查看數據數據字典的SQL
select * from dict
查看內部系統表的SQL
select * from v$fixed_view_definition
DBA對系統的系統表中的數據字典必須有一個很深刻的了解,他們必須准備一些基礎的SQL語句,通過這些SQL可以立即了解系統的狀況和資料庫的狀態,這些基本的SQL包括
系統的剩餘空間
系統的SGA
狀態系統的等待
用戶的許可權
當前的用戶鎖
緩沖區的使用狀況等
在成為DBA 的道路上我們不建議你過分的依賴於OEM/Quest 等優秀的資料庫管理工具,因為他們不利於你對數據數據字典的理解,SQL語句可以完成幾乎全部的資料庫管理工作。
大量的讀少量的寫是該表空間的一個顯著的特點。

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

c. 回滾段表空間

i. 回滾段在系統中的作用
當資料庫進行更新插入刪除等操作的時候,新的數據被更新到原來的數據文件,而舊的數據(Before Image)就被放到回滾段中,如果數據需要回滾,那麼可以從回滾段將數據再復制到數據文件中。來完成數據的回滾。在系統恢復的時候, 回滾段可以用來回滾沒有被commit 的數據,解決系統的一至性。
回滾段在什麼情況下都是大量的寫,一般是少量讀,因此建議把回滾段單獨出來放在一個單獨的設備(如單獨的磁碟或RAID),以減少磁碟的IO爭用。

ii. 回滾段的工作方式
一個回滾表空間可以被劃分成多個回滾段.
一個回滾段可以保存多個會話的數據.
回滾段是一個圓形的數據模型
假設回滾段由4 個區間組成,他們的使用順序就是區間1à區間2à區間3à區間4à區間1。也就是說,區間是可以循環使用的,當區間4到區間1的時候,區間1裡面的會話還沒有結束, 區間4用完後就不能再用區間1,這時系統必須分配區間5,來繼續為其他會話服務服務。
我們分析一個Update 語句的完成

①. 用戶提交一個Update 語句

②. Server Process 檢查內存緩沖.
如果沒有該數據塊的緩沖,則從磁碟讀入

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

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

③. 在緩沖內更新數據

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

ii. 加鎖並更新數據

iii. 並在同時將修改記錄在Redo log buffer中
另外,站長團上有產品團購,便宜有保證

⑧ 有基於Java的好用的Web快速開發平台嗎網上找了一些不太好用。最好能提供在線使用的網址,謝謝!

可以使用我公司的WebBuilder開發平台,可以在http://www.putdb.com上在線使用、評估和免費下載。

給您介紹一下該產品:

WebBuilder是一款跨平台、資料庫和瀏覽器的Web可視化應用開發和部署平台。

使用WebBuilder可開發ERP、OA、CRM、HR、MIS以及電信、銀行、政府、企業等各行業的行業應用系統,幫助信息化管理系統的快速構建。

WebBuilder幫助提高應用系統的開發效率,並降低成本。完善的基礎架構,具有應用系統必須的完整功能,使系統的開發僅需致力於業務的開發。

應用開發:提供可視化的WebBuilder集成開發環境,幫助應用系統的快速開發,支持使用Eclipse等開發工具的開發和調試,可以在您原有使用的技術框架上混合使用。

應用部署:使用基於Web的資源管理器進行應用的部署,支持Java,.Net,PHP等大部分Web應用的部署。

自定義的應用描述語言:基於XML的Web應用描述語言,屏蔽不同平台、資料庫和瀏覽器之間的差異。

完整的組件框架:提供應用開發所需的經過封裝的前後台組件、開發框架以及應用模塊,集成封裝了大量Ext、Dhtml、FusionCharts、標准HTML和JS組件以及包括數據訪問、流程引擎、計劃任務、系統調度等框架在內的Java後台組件。

使用WebBuilder可快速開發出功能強大的各種企業級應用系統,也可以基於應用系統平台做深度的二次開發。

⑨ spring +mvc 框架 關於數據字典使用問題

暈,,肯定是更新數據字典的時候,從新載入一邊數據字典數據了。
不過有些問題,分布式部署的時候,會有問題,你可以考慮共享緩存等方案。

http://www.cnblogs.com/javaMan/p/3693953.html 參考下

⑩ oracle資料庫組成部分

ORACLE由兩部分:實例和資料庫
實例由以下組成: SGA,Shared pool,Database buffer cache,Redo log buffer cache.
資料庫由物理文件組成,其中必須有的文件是:數據文件,控制文件,重做日誌
另外還有:參數文件,口令文件,歸檔日誌文件(這三個不是必須的)
ORACLE SERVER 由兩個部分組成,
1.INSTANCE:又由內存結構和後台進程組成
2.DATABASE:又由數據文件,日誌文件和控制文件組成<這三個文件是必需的>.
CONTROL FILE是用來連接實例和DATABASE的
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP NOMOUNT
SQL>ALTER DATABASE MOUNT
以上三個過程就是通過CONTROL FILE來連接實例和資料庫.
SQL>ALTER DATABASE OPEN
在OPEN的過程對DATABASE的數據文件和重做日誌文件進行一次性的驗證,驗證它們的狀態.
ORACLE INSTANCE:存取資料庫的一個手段
一個DATABASE與INSTANCE之間是1:N的關系,一個INSTANCE只能操作一個DATABASE,由內存結構(共享池,
BUFFER CACHE,REDO LOG BUFFER CACHE)及相應的進程結構組成(PMON<程序監控進程>,SMON<系統監控進
程>,CKPT<檢查點進程>)
SQL>SHOW SGA ---顯示DATABASE內存結構信息
SQL>SET WRAP OFF
SQL>SET LINESIZE 200
以上這兩個是設置行寬
SQL>SELECT * FROM V$BGPROCESS;
將看到在這個系統中所有可能使用到的進程,其中PADDR並不每個進程都分配到有效的地址,即並不是每個進程都是必須的.
SQL>SELECT * FROM V$BGPROCESS WHERE PADDR<>\'00\'
將顯示所有必需的進程.
ESTABLISHING A CONNECTION AND CREATING A SESSION
連接到ORACLE實例包括建立一個用戶連接及創建會話.

ORACLE MEMORY STRUCTURE (內存結構)
由兩部分組成:
1.SGA
SGA是動態的,其最大值由SGA_MAX_SIZE指定,SGA的內存由SGA COMPONENTS來動態調整.
2.PGA 是不共享的,即其包含的信息是不一樣的,有兩個可享的內存可以由SGA配置
<1> LARGE POOL
<2> JAVA POOL
SQL>SHOW PARAMETER SHARED
SQL>SHOW PARAMETER DB_CACHE
SQL>SHOW PARAMETER LOG
以上三個命令是用於查看相關內存信息
SQL>ALTER SYSTEM SET DB_CACHE_SIZE=20M;
所有內存大小總和不能大於SGA_MAX_SIZE的值,當提示信息出現?號或亂碼時,是由於系統的語言問題.
可以通過ALTER SESSION SET NLS_LANGUAGE=\'AMERICAN\'或ALTER SESSION SET NLS_LANGUAGE=\"SIMPLE
[Page]
CHINESE\"
SHARED POOL (共享池)
含:<1>LIBRARY CACHE 庫緩存
<2>DATA DICTIONARY CACHE 數據字典緩存,有的地方又稱行CACHE,由SHARED_POOL_SIZE指定大小.
SQL>ALTER SYSTEM SET SHARED_POOL_SIZE=64M;
LIBRARY CACHE 主要為提高代碼的共享,存儲的是最近使用的SQL和PL/SQL代碼.
<1>.用最近最少使用(LRU)演算法
<2>.包括兩個結構 1:共享SQL代碼 2:共享PL/SQL代碼
<3>.不可直接定義,而由SHARED POOL SIZE決定.
DATA DICTONARY CACHE.
執行此命令的過程是:首先確認是否存在AUTHORS,,然後確認欄位存不存在,再檢查語法,最後驗證許可權,而
這些信息就屬於DATA DICTIONARY CACHE的內容.其包含的信息有:DATABASE FILES,表,索引,欄位,用戶,
許可權和其他資料庫對象.

熱點內容
河池都安伺服器ip地址是什麼 發布:2025-08-20 16:00:13 瀏覽:873
做自媒體剪輯需要什麼配置的電腦 發布:2025-08-20 15:37:38 瀏覽:388
密碼法的立法目地是什麼 發布:2025-08-20 15:27:13 瀏覽:456
不小心刪除微信怎麼恢復聊天記錄安卓 發布:2025-08-20 15:27:05 瀏覽:449
車載安卓系統指的是什麼 發布:2025-08-20 15:23:47 瀏覽:713
安徽鯤鵬伺服器雲空間 發布:2025-08-20 15:19:37 瀏覽:790
怎樣刪除手機大存儲 發布:2025-08-20 15:10:36 瀏覽:270
android關閉 發布:2025-08-20 15:09:44 瀏覽:61
陸上公務艙選哪個配置 發布:2025-08-20 15:04:48 瀏覽:680
win10錯誤5拒絕訪問 發布:2025-08-20 15:03:52 瀏覽:261