国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle 認(rèn)證學(xué)習(xí)筆記

2024-08-29 13:29:43
字體:
供稿:網(wǎng)友
這是我一位朋友最近研究oracle的心得,我把它偷了出來,和大家共同分享
oracle 9i dba 認(rèn)證教程學(xué)習(xí)筆記

第一章 oracle 數(shù)據(jù)庫體系結(jié)構(gòu)基礎(chǔ)
1、oracle 數(shù)據(jù)庫系統(tǒng):為具有管理oracle數(shù)據(jù)庫功能的計(jì)算機(jī)系統(tǒng)。
2、系統(tǒng)全局區(qū)(system global area):在數(shù)據(jù)庫服務(wù)器上啟動(dòng)一數(shù)據(jù)庫時(shí)的一塊共享內(nèi)存區(qū)(簡稱sga)。它被看作是oracle數(shù)據(jù)庫的一個(gè)大緩沖池,這里的數(shù)據(jù)可以被oracle的各個(gè)進(jìn)程共用。
3、實(shí)例(instance):sga和oracle進(jìn)程的結(jié)合稱為一個(gè)oracle實(shí)例。一個(gè)oracle實(shí)例(instance)只能與一個(gè)運(yùn)行的oracle數(shù)據(jù)庫相聯(lián)系。

1.1 oracle存儲(chǔ)器結(jié)構(gòu)
oracle使用共享內(nèi)存區(qū)和后臺(tái)進(jìn)程來管理其內(nèi)存和文件結(jié)構(gòu)。
1.1.1 系統(tǒng)全局區(qū)(sga)
一、系統(tǒng)全局區(qū)的大小可以通過如下語句查詢:
sql> select * from v$sga;
name value
-------------------- ----------
fixed size 453492
variable size 109051904
database buffers 25165824
redo buffers 667648
更詳細(xì)的信息可以參考v$sgastat、v$buffer_pool

二、系統(tǒng)全局區(qū)主要包括以下幾部分:
1、數(shù)據(jù)塊緩存區(qū)
內(nèi)存中用來存儲(chǔ)頻繁訪問的數(shù)據(jù)的區(qū)域。數(shù)據(jù)庫的任何修改都在該緩沖里完成,并由dbwr進(jìn)程將修改后的數(shù)據(jù)寫入磁盤。數(shù)據(jù)塊緩存區(qū)的大小由數(shù)據(jù)庫服務(wù)器init.ora文件中的db_block_buffers參數(shù)決定(用數(shù)據(jù)塊的個(gè)數(shù)表示)。通常,數(shù)據(jù)塊緩存區(qū)只是數(shù)據(jù)庫大小的1%-2%,oracle使用最近最少使用(lru,least recently used)算法來管理可用空間。塊緩沖區(qū)高速緩存又可以細(xì)分為以下三個(gè)部分(default pool、keep pool、recycle pool)。如果不是人為設(shè)置初始化參數(shù)(init.ora),oracle將默認(rèn)為default pool。
由于操作系統(tǒng)尋址能力的限制,不通過特殊設(shè)置,在32位的系統(tǒng)上,塊緩沖區(qū)高速緩存最大可以達(dá)到1.7g,在64位系統(tǒng)上,塊緩沖區(qū)高速緩存最大可以達(dá)到10g。
2、數(shù)據(jù)字典緩存區(qū)
數(shù)據(jù)庫表和視圖的集合,包含關(guān)于數(shù)據(jù)庫、數(shù)據(jù)庫結(jié)構(gòu)、權(quán)限和用戶的元數(shù)據(jù)。字典緩存區(qū)的大小由數(shù)據(jù)庫內(nèi)部管理。字典緩存區(qū)是sql共享池的一部分,共享池的大小由數(shù)據(jù)庫文件init.ora中的shared_pool_size參數(shù)來設(shè)置。
3、重做日志緩沖區(qū)
重做日志文件的緩沖區(qū),對數(shù)據(jù)庫的任何修改都按順序被記錄在該緩沖,然后由lgwr進(jìn)程將它寫入磁盤。這些修改信息可能是dml語句,如(insert,update,delete),或ddl語句,如(create,alter,drop等)。重做日志緩沖區(qū)的大小(以字節(jié)為單位)由init.ora文件中的log_buffer參數(shù)決定。
重做日志緩沖區(qū)的存在是因?yàn)閮?nèi)存到內(nèi)存的操作比較內(nèi)存到硬盤的速度快很多,所以重作日志緩沖區(qū)可以加快數(shù)據(jù)庫的操作速度,但是考慮的數(shù)據(jù)庫的一致性與可恢復(fù)性,數(shù)據(jù)在重做日志緩沖區(qū)中的滯留時(shí)間不會(huì)很長。所以重作日志緩沖區(qū)一般都很小,大于3m之后的重作日志緩沖區(qū)已經(jīng)沒有太大的實(shí)際意義。
4、sql共享池
共享sql區(qū)保留了數(shù)據(jù)庫用戶執(zhí)行的sql語句的解釋版本和這些語句的執(zhí)行計(jì)劃。目的是那些語句被再次使用時(shí)提高進(jìn)程的速度。如果sql共享池太小,語句將被連續(xù)不斷地再裝入到庫緩存區(qū),從而影響操縱性能。sql共享池的大小由init.ora文件的參數(shù)shared_pool_size決定。共享池有可分為以下兩部分:
1、sql語句緩沖(library cache):主要對sql語句的解析(parse)產(chǎn)生執(zhí)行計(jì)劃。
2、數(shù)據(jù)字典緩沖區(qū)(data dictionary cache)
5、大池
大池是sga中的可選內(nèi)存區(qū),對于諸如oracle備份和恢復(fù)等大型命令的sql語句,利用大池就可以防止這些sql大型命令把條目重寫入sql共享池中,從而減少再裝入到庫緩存區(qū)中的語句數(shù)量,防止與其它應(yīng)用程序?qū)炀彺嫒サ臓幱谩4蟪貨]有l(wèi)ru清單。oracle9i已不用這個(gè)參數(shù)。作為largepool的一種選擇的方案,可以用init.ora文件的shared_pool_reserved_size參數(shù)為sql大型語句保留一部分sql共享池。
6、java池
為java命令提供語法分析。java池的大小通過init.ora文件的java_pool_size參數(shù)設(shè)置,默認(rèn)為10m。
7、多緩沖池
可以在sga中創(chuàng)建多個(gè)緩沖池,能夠用多個(gè)緩沖池把大數(shù)據(jù)集與其它的應(yīng)用程序分開,以減少它們爭奪數(shù)據(jù)塊緩存區(qū)內(nèi)相同資源的可能性。創(chuàng)建緩沖池時(shí),需要規(guī)定保存區(qū)(keeparea)的大小和再循環(huán)區(qū)(recyclearea)的大小。可以通過buffer_pool_keep參數(shù)來規(guī)定保存區(qū)的大小。保存和再循環(huán)緩沖池的容量減少了數(shù)據(jù)塊緩沖區(qū)的可用空間(通過db_block_buffers參數(shù)設(shè)置)。
1.1.2 程序全局區(qū)(pga)
是內(nèi)存中的一個(gè)區(qū)域,該區(qū)保存一個(gè)進(jìn)程的數(shù)據(jù)和進(jìn)程信息,該區(qū)域不是共享的。sort_area_size(排序區(qū)的最大尺寸)和sort_area_retained_size(排序操作完成之后排序區(qū)被減少后的尺寸)參數(shù)對于pga的大小由重要影響。
在大型企業(yè)環(huán)境管理中管理sort_area_size可能具有挑戰(zhàn)性。原則是使性能最佳而盡量少用系統(tǒng)資源。oracle9i提供自動(dòng)方法管理pga內(nèi)存。兩個(gè)用于自動(dòng)管理pga內(nèi)存的主要初始化參數(shù)是pga_aggregate_target(指定可由所有服務(wù)器進(jìn)程使用的內(nèi)存總量)和workarea_size_policy(值是manual或auto)。

1.2后臺(tái)進(jìn)程
后臺(tái)進(jìn)程是維護(hù)數(shù)據(jù)庫的物理結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)之間的關(guān)系。可以設(shè)置init.ora文件的background_dump_dest參數(shù)來規(guī)定后臺(tái)進(jìn)程跟蹤文件的位置。在排除數(shù)據(jù)故障時(shí),跟蹤文件顯得非常重要,主要紀(jì)錄數(shù)據(jù)庫的警告日志。
這里給出每一個(gè)進(jìn)程功能的簡介:
1、數(shù)據(jù)庫書寫器進(jìn)程database writer(dbwr)
負(fù)責(zé)將修改過的數(shù)據(jù)塊寫回到數(shù)據(jù)庫文件。多個(gè)dbwr進(jìn)程有助于在進(jìn)行大的操作期間減少dbwr中的沖突,dbwr進(jìn)程的數(shù)量由數(shù)據(jù)庫的init.ora文件中的db_writer_processes參數(shù)決定。
2、日志書寫器進(jìn)程log writer(lgwr)
負(fù)責(zé)將聯(lián)機(jī)redo日志緩沖區(qū)的內(nèi)容分批寫到聯(lián)機(jī)redo日志文件。重做日志緩沖區(qū)條目總是包含著數(shù)據(jù)庫的最新狀態(tài),這是因?yàn)閐bwr進(jìn)程可以一直等待到把數(shù)據(jù)塊緩沖區(qū)中的修改數(shù)據(jù)塊寫入到數(shù)據(jù)文件中。對于oracle9i,可以創(chuàng)建多個(gè)lgwr/io從進(jìn)程以改善向聯(lián)機(jī)重做日志文件寫入性能,其個(gè)數(shù)由數(shù)據(jù)庫的init.ora文件的lgwr_io_slaves參數(shù)決定。
3、歸檔進(jìn)程archive(arch)
負(fù)責(zé)把寫滿的redo文件復(fù)制到歸檔日志目標(biāo)中。oracle最多允許有10個(gè)歸檔進(jìn)程。log_archive_max_processes參數(shù)用來設(shè)置允許的最大數(shù)。
4、檢查點(diǎn)進(jìn)程checkpoint(ckpt)
用來減少執(zhí)行實(shí)例恢復(fù)所需的時(shí)間。可以用數(shù)據(jù)庫實(shí)例的init.ora文件中l(wèi)og_checkpioint_interval、log_checkpoint_timeout、fast_start_io_target 的參數(shù)來設(shè)置一個(gè)頻繁出現(xiàn)的檢查點(diǎn)。
5、系統(tǒng)監(jiān)視器進(jìn)程system monitor(smon)
執(zhí)行崩潰恢復(fù)、清除臨時(shí)段和組合自由空間。
6、進(jìn)程監(jiān)視器process monitor(pmon)
負(fù)責(zé)清除失敗用戶的進(jìn)程,釋放用戶當(dāng)時(shí)正在使用的資源。當(dāng)進(jìn)程失敗時(shí),pmon執(zhí)行以下操作:
1.釋放任何進(jìn)程包括的鎖;
2.回滾那些已經(jīng)啟動(dòng)但未提交的事務(wù);
3.從活動(dòng)進(jìn)程的列表中刪除進(jìn)程id。
7、恢復(fù)進(jìn)程recover(reco)
用于解決分布式數(shù)據(jù)庫中的故障問題。只有在平臺(tái)支持distributed option(分布式選項(xiàng))且init.ora文件中的distributed_transactions參數(shù)大于零時(shí)才創(chuàng)建這個(gè)進(jìn)程。
8、作業(yè)隊(duì)列進(jìn)程snapshot(snp0)
oracle的快照刷新及內(nèi)容及內(nèi)部作業(yè)對列調(diào)度依賴于他們執(zhí)行的作業(yè)隊(duì)列進(jìn)程。為一實(shí)例所創(chuàng)建的snp進(jìn)程個(gè)數(shù)由數(shù)據(jù)庫的init.ora文件中的job_queue_processes參數(shù)決定,最多為36個(gè)。
9、作業(yè)監(jiān)視器進(jìn)程queue monitor(qmno)
和oracle的優(yōu)先隊(duì)列選項(xiàng)一起使用。最多可以有10個(gè)隊(duì)列監(jiān)視器進(jìn)程,并且它們使用aq_tm_processed初始化參數(shù)配置。

1.3 oracle物理存儲(chǔ)結(jié)構(gòu)
數(shù)據(jù)庫相關(guān)的文件有:重做日志文件、控制文件、跟蹤文件及警告日志。
1.3.1數(shù)據(jù)字典的內(nèi)容及用法
數(shù)據(jù)字典是dba在執(zhí)行create database命令之后應(yīng)建立的第二組數(shù)據(jù)庫對象。使用oracle數(shù)據(jù)字典,可以對數(shù)據(jù)庫中的每個(gè)對象以某種方式進(jìn)行跟蹤。oracle通常利用catalog.sql和catproc.sql腳本建立數(shù)據(jù)字典,而不需要dba干預(yù)。如果手工建立數(shù)據(jù)庫,則要確保在建立數(shù)據(jù)庫不久后就運(yùn)行這些腳本。
1、 構(gòu)造數(shù)據(jù)字典視圖
catalog.sql是用來建立組成數(shù)據(jù)字典的各個(gè)對象。catporc.sql為pl/sql建立過程選項(xiàng)和實(shí)用程序。必須以sys as sysdba用戶才能運(yùn)行這些腳本。
2、 主要的數(shù)據(jù)字典
oracle數(shù)據(jù)字典主要由兩部分組成—基表和用戶可訪問的視圖。
3、 識(shí)別數(shù)據(jù)字典視圖的范圍
i. user:允許你看到你所擁有的相關(guān)數(shù)據(jù)庫對象。
ii. all:允許你看到你可以訪問的相關(guān)數(shù)據(jù)庫對象。
iii. dba:允許你看到整個(gè)數(shù)據(jù)庫中所有的相關(guān)對象。
4、 動(dòng)態(tài)性能視圖
v$database 存放數(shù)據(jù)庫的常規(guī)信息
v$sysstat 存放數(shù)據(jù)庫性能的大部分信息
v$session 存放用戶會(huì)話信息
v$log、v$logfile 存放聯(lián)機(jī)重做日志信息
v$datafile 存放數(shù)據(jù)文件信息
v$controlfile 存放數(shù)據(jù)庫控制文件信息
1.3.2控制文件
控制文件是數(shù)據(jù)庫啟動(dòng)可操作成功必需的一種二進(jìn)制文件,它通常記錄數(shù)據(jù)庫的所有物理組件,如數(shù)據(jù)文件的位置、重做日志、數(shù)據(jù)庫名等數(shù)據(jù)庫信息。通過contorl_files參數(shù)設(shè)置控制文件名。通過v$controlfile、v$controlfile_record_section視圖得到控制文件的各部分信息。
1.3.3數(shù)據(jù)文件
表空間是數(shù)據(jù)庫的邏輯劃分,每個(gè)數(shù)據(jù)庫至少有一個(gè)表空間(稱作system表空間)。每個(gè)表空間由同一磁盤上的一個(gè)或多個(gè)文件組成,這些文件叫數(shù)據(jù)文件(datafile)。一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間,而一個(gè)表空間可以跨越多個(gè)數(shù)據(jù)文件。數(shù)據(jù)庫文件列表可以查詢v$datafile和dba_data_file的視圖。
1.3.4日志文件
日志文件有時(shí)也叫做redo日志文件,是任何數(shù)據(jù)庫的重要組成部分。它們的存在確保在系統(tǒng)崩潰、驅(qū)動(dòng)錯(cuò)誤或任何其它意外情況中斷了正常操作的事件發(fā)生時(shí)數(shù)據(jù)庫能夠恢復(fù)。有兩種redo日志文件:聯(lián)機(jī)redo日志文件和歸檔redo日志文件。數(shù)據(jù)庫先寫日志,然后提交數(shù)據(jù)。可以通過v$logfile視圖查看日志文件信息。通過archive log list命令查看歸檔日志文件信息。
待續(xù)...
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 太康县| 桦甸市| 汝南县| 延寿县| 连州市| 梅河口市| 台安县| 凭祥市| 墨玉县| 汕尾市| 萨迦县| 揭西县| 山丹县| 南丰县| 谢通门县| 红河县| 长汀县| 兴城市| 雷山县| 鲜城| 宜都市| 惠水县| 基隆市| 米泉市| 谷城县| 平果县| 永城市| 南部县| 乐都县| 武威市| 三江| 荥经县| 桓台县| 阳城县| 上杭县| 揭东县| 余江县| 宝清县| 务川| 江津市| 梅河口市|