第一篇:ORACLE學(xué)習(xí)心得
Oracle RAC 學(xué)習(xí)心得
1.概念
RAC,全稱real application clusters,譯為“實時應(yīng)用集群”,是Oracle新版數(shù)據(jù)庫中采用的一項新技術(shù),是高可用性的一種,也是Oracle數(shù)據(jù)庫支持網(wǎng)格計算環(huán)境的核心技術(shù)。
在Oracle9i之前,RAC的名稱是OPS(Oracle parallel Server)。RAC 與 OPS 之間的一個較大區(qū)別是,RAC采用了Cache Fusion(高速緩存合并)技術(shù)。在 OPS 中,節(jié)點間的數(shù)據(jù)請求需要先將數(shù)據(jù)寫入磁盤,然后發(fā)出請求的節(jié)點才可以讀取該數(shù)據(jù)。使用Cache fusion時,RAC的各個節(jié)點的數(shù)據(jù)緩沖區(qū)通過高速、低延遲的內(nèi)部網(wǎng)絡(luò)進行數(shù)據(jù)塊的傳輸。
2.優(yōu)缺點
優(yōu)點:
Oracle RAC主要支持Oracle9i、10g、11g版本,可以支持24 x 7 有效的數(shù)據(jù)庫應(yīng)用系統(tǒng),在低成本服務(wù)器上構(gòu)建高可用性數(shù)據(jù)庫系統(tǒng),并且自由部署應(yīng)用,無需修改代碼。在Oracle RAC環(huán)境下,Oracle集成提供了集群軟件和存儲管理軟件,為用戶降低了應(yīng)用成本。當(dāng)應(yīng)用規(guī)模需要擴充時,用戶可以按需擴展系統(tǒng),以保證系統(tǒng)的性能。
(1)多節(jié)點負(fù)載均衡;
(2)提供高可用:故障容錯和無縫切換功能,將硬件和軟件錯誤造成的影響最小化;
(3)通過并行執(zhí)行技術(shù)提高事務(wù)響應(yīng)時間----通常用于數(shù)據(jù)分析系統(tǒng);
(4)通過橫向擴展提高每秒交易數(shù)和連接數(shù)----通常對于聯(lián)機事務(wù)系統(tǒng);
(5)節(jié)約硬件成本,可以用多個廉價PC服務(wù)器代替昂貴的小型機或大型機,同時節(jié)約相應(yīng)維護成本;(6)可擴展性好,可以方便添加刪除節(jié)點,擴展硬件資源。缺點:(1)相對單機,管理更復(fù)雜,要求更高;
(2)在系統(tǒng)規(guī)劃設(shè)計較差時性能甚至不如單節(jié)點;(3)可能會增加軟件成本(如果使用高配置的pc服務(wù)器,Oracle一般按照CPU個數(shù)收費)。
3.Rac 特點
每一個節(jié)點的linstance都有自己的SGA
每一個節(jié)點的linstance都有自己的background process 每一個節(jié)點的linstance都有自己的redo logs 每一個節(jié)點的linstance都有自己的undo表空間
所有節(jié)點都共享一份datafiles和controlfiles 4.Rac 組件
邏輯結(jié)構(gòu)上看,每一個參加集群的節(jié)點有一個獨立的instance,這些instance訪問同一個數(shù)據(jù)庫。節(jié)點之間通過集群軟件的通訊層(communication layer)來進行通訊。同時為了減少IO的消耗,存在了一個全局緩存服務(wù),因此每一個數(shù)據(jù)庫的instance,都保留了一份相同的數(shù)據(jù)庫cachel
5.UNDO和REDO讀書筆記
1)redo是什么?oracle的redo是如何工作的
redo是重做日志文件,是oracle數(shù)據(jù)庫的日志文件.oracle的重做日志有兩種:在線重做日志以及歸檔重做日志。
在線重做日志:主要用于由于數(shù)據(jù)庫主機掉電等原因?qū)е聦嵗。藭roracle采用在線重做日志在數(shù)據(jù)庫啟動時將數(shù)據(jù)庫恢復(fù)到斷電之前的時間點上。
歸檔重做日志:主要用于介質(zhì)失敗,比如:磁盤受損。此時需要使用對磁盤上的數(shù)據(jù)備份的歸擋重做日志文件將該磁盤上的數(shù)據(jù)恢復(fù)到該歸檔文件數(shù)據(jù)所在的時間點上,然后再使用在線重做日志文件將適合的時間點上。
歸檔重做日志文件實質(zhì)是被添滿的舊的在線重做日志的副本。歸檔重做日志文件是數(shù)據(jù)庫的歷史數(shù)據(jù)。
在線重做日志在每個數(shù)據(jù)庫中至少有兩個重做日志組,每個日志組中至少有一個重做日志文件,這些在線重做日志組是循環(huán)使用的,當(dāng)日志組1被寫到最后時,然后自動切換到日志組2;當(dāng)日志組2也被寫滿時,再切換到日志組1。
2)undo是什么?oracle的undo是如何工作的
undo與redo相反,redo是恢復(fù)數(shù)據(jù),用于在事務(wù)失敗時重放事務(wù),undo是撤消一條語句或者一組語句的作用。undo是存儲在數(shù)據(jù)庫內(nèi)部的段或者表空間中(undo如果是手動管理,則使用undo段來管理;如果undo使用AUM管理UNDO,則undo使用表空間來自動管理)。
注意:在undo并不是物理的恢復(fù)到執(zhí)行語句之前或者事務(wù)之前的樣子,只是邏輯的恢復(fù)到原來的樣子,所有修改只是邏輯的取消,但是數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)塊在回滾之后也大不相同。原因是在多用戶系統(tǒng)中,有很多事務(wù)是并發(fā)進行的,當(dāng)一個事務(wù)修改一個數(shù)據(jù)并且被回滾,但是該數(shù)據(jù)在該用戶對該數(shù)據(jù)做過修改之后也有被其他用戶修改,這個時候如果是對該事務(wù)修改的數(shù)據(jù)塊回滾到原來數(shù)據(jù)的物理樣子,就有可能將后來的事務(wù)所做的修改給覆蓋掉。所以回滾不是一個簡單的物理的恢復(fù),而是邏輯恢復(fù)。
3)undo和redo是如何協(xié)作工作的
4)
6.
第二篇:oracle學(xué)習(xí)心得
一、SQL SERVER的理解
SQL SERVER服務(wù)器就像一棟大樓,大樓里的機房就像服務(wù)器的數(shù)據(jù)庫,機房里的電腦如同數(shù)據(jù)庫里的表
1、登錄用戶可以登錄服務(wù)器——可以進大樓
2、登錄用戶成為數(shù)據(jù)庫用戶才能進指定的數(shù)據(jù)庫——進入大樓的人給了某個機房的鑰匙
才能進入機房
3、登錄用戶有權(quán)限使用表——進入機房的人有電腦的密碼才能使用電腦
二、ORACLE的理解
ORACLE服務(wù)器(全局?jǐn)?shù)據(jù)庫)就像一個商場,商場的每一家公司是表空間,公司的業(yè)務(wù)是表
1、數(shù)據(jù)庫由多個表空間組成——商場里有多家公司組成2、表空間由段組成——公司要有自己的經(jīng)營業(yè)務(wù),可以只有一個業(yè)務(wù),就是一個表空
間中只有一個段,可以有多個業(yè)務(wù),就是一個表空間有多個段
3、段由區(qū)組成——單個業(yè)務(wù)的細分類別。例如有家公司經(jīng)營三個業(yè)務(wù),賣書,賣家電,賣衣服,則每個業(yè)務(wù)就是一個段。而每個業(yè)務(wù)又有細分,比如賣書的話要進行分類了。計算機區(qū),人文區(qū),小說區(qū)等,每一區(qū)都要放上書架存放書籍,則書架就是oracle塊,存放數(shù)據(jù)的三、數(shù)據(jù)庫,表空間,用戶(指定默認(rèn)表空間),表統(tǒng)統(tǒng)由管理員管理
四、在OEM中管理數(shù)據(jù)庫的步驟
1、創(chuàng)建
1)存儲——表空間——創(chuàng)建表空間(TOMSPACE)(類似于在SQL中創(chuàng)建數(shù)據(jù)庫,通??梢允÷裕褂媚J(rèn)表空間為USERS,臨時表空間為TEMP)
2)首先展開安全性——創(chuàng)建新用戶(TOM,指定表空間)(類似于在SQL中指定
數(shù)據(jù)庫用戶)
3)創(chuàng)建表——指定方案(用戶)和表空間(列名不要帶<>)
4)設(shè)置約束
5)輸入信息:方案——用戶名——表——右擊——查看 /編輯目錄…
2、修改
1)方案——用戶名——表
2)修改表結(jié)構(gòu),添加約束
3、刪除: 右擊表——移去
五、注意事項
1、剛創(chuàng)建的用戶不會出現(xiàn)在方案中,只有創(chuàng)建了一個表指定方案和表空間,該用戶的方案名就會出現(xiàn)在方案中,此時就可以方便為該方案創(chuàng)建其他表
1)新創(chuàng)建的用戶能在SQLPLUS中登錄,為什么不能在企業(yè)管理器中登錄呢?
解答:需要授予 SELECT ANY DIRECTORY權(quán)限才能正常登錄企業(yè)管理器,但沒有其他權(quán)限
2)可以對創(chuàng)建的用戶在安全性中賦予角色權(quán)限,如DBA,則該用戶就是數(shù)據(jù)庫管理
員
3)SYS用戶主要用來維護系統(tǒng)信息和管理實例,只能以SYSOPER或SYSDBA角
色登錄
4)安裝oracle的用戶自動為ora-dba權(quán)限,自動是sys用戶,所以在登錄時不需要
用戶名和密碼,只要選中以sysdba登錄。其他用戶登錄計算機系統(tǒng),在使用oracle
時就是正常登錄狀態(tài)了。
2、向表中添加日期數(shù)據(jù):時間格式為DD-MM-YYYY怎么修改呢?如何插入時間數(shù)
據(jù)
1)先在SQLPLUS中SELECT SYSDATE FROM DUAL;就知道日期的格式
2)alter session set NLS_DATE_FORMAT='YYYY-MM-DD';修改當(dāng)前輸入格式
3)oracle中的默認(rèn)格式是:‘dd-mm-yyyy’ ;修改語句:alter session set
nls_date_format='yyyy-mm-dd';修改后輸入和顯示都為指定格式,缺點是只對當(dāng)前會話起作用
假如你是要永久修改的話,改注冊表:
regedit->hkey_local_machine->oracle->homeo->
NLS_DATE_FORMAT值YYYY-MM-DD(經(jīng)驗證不管用)
默認(rèn)日期:50年之前是當(dāng)前世紀(jì),50年之后是之前世紀(jì),31-12月-49代表2049年01-1月-50 代表1950年
4)由于在表編輯器中to_date函數(shù)的格式是dd-mon-yyyy,輸入時為如下格式13-6
月-1983(代碼編輯時一樣,世紀(jì)可以省略,代表當(dāng)前世紀(jì))
5)to_char通常用于查詢語句; to_date通常用于增刪改語句
6)兩個’代表一個’
六、代碼編輯器
1、SQL PLUS2、SQL PLUS WORKSHEET3、isqlplus
設(shè)置列寬:set linesize 50;
七、與SQL2000中的查詢分析器不同,SQL plus worksheet執(zhí)行所有語句,不單單執(zhí)行選中語句
八、編輯——清除;可以清除查詢結(jié)果
九、查看環(huán)境變量:select * from v$nls_parameters;
十、示例用戶
1)scott/tigernormal登錄
2)hr : 需要解鎖和重設(shè)密碼(alter user hr account unlock;)
十一、查看和更改oracle http占用端口號,D:ora9ApacheApacheconf下,httpd.conf和httpd.conf.default中將80修改,然后重新啟動HTTP服務(wù) 加個字符串
六、工具的使用
1、net manager: 配置服務(wù)主機名和監(jiān)聽主機名
2、net configuration assistant:配置監(jiān)聽程序,本地服務(wù)名配置等
/*****************************************************************************/ oracle小知識點
1、數(shù)據(jù)操作時,字段區(qū)分大小寫
2、Oracle兩種認(rèn)證模式:(1)操作系統(tǒng)認(rèn)證(2)文件口令認(rèn)證。
初始化參數(shù)的文件目錄為D:oracle_programdatabase3、sqlplus中使用 help index查看幫助信息目錄,? 命令:查看某個命令的詳細用法
連接數(shù)據(jù)庫后才能使用
5、當(dāng)代碼中使用函數(shù)時,函數(shù)中固定的關(guān)鍵字必須寫正確,當(dāng)放在字符串中的時候,編譯沒有錯誤,運行時才會出現(xiàn)錯誤,通常是SQL遞歸錯誤
第三篇:oracle學(xué)習(xí)心得
Oracle學(xué)習(xí)心得
轉(zhuǎn)眼之間學(xué)習(xí)oracle差不多已經(jīng)半年了,從開始的不了解,到現(xiàn)在熟悉oracle的基本使用和操作。Oracle的體系太龐大了,對于初學(xué)者來說,難免有些無從下手的感覺,好多地方不知道從何開始,有哪些注意事項,結(jié)果都是不能學(xué)好這門技術(shù)。,但是經(jīng)過老師的帶領(lǐng)總體上也打開了學(xué)習(xí)的大門,可以自己去學(xué)習(xí),少走了很多的彎路。
學(xué)習(xí)一門技術(shù)首先從態(tài)度開始,如果你想學(xué)好這門技術(shù),你首先要端正態(tài)度,要發(fā)自 內(nèi)心的去想學(xué)好這門技術(shù),不要以開始就懈怠,要從嚴(yán)要求自己,一心一意的投入到學(xué)習(xí)當(dāng)中,不要害怕學(xué)習(xí)中會遇到的困難。即使學(xué)習(xí)中遇到了困難和問題也不要害怕,不要放棄,要學(xué)會自己去解決問題,這樣才能從學(xué)習(xí)中收獲經(jīng)驗教訓(xùn),是自己的水平提高。如果放棄了,你就會害怕遇到困難,不去積極的努力,又何嘗去提高自己呢!
解決問題的途徑和發(fā)法有很多種。作為一個新一代的大學(xué)生,首先要學(xué)會自己解決問題,我們可以去圖書館去查閱資料,尋找在學(xué)習(xí)中遇到的困難,找到解決方法,另外,我們還可以去網(wǎng)上搜集資料,現(xiàn)在網(wǎng)絡(luò)技術(shù)十分發(fā)達,很多問題我們都可以在網(wǎng)上找到答案的,而且網(wǎng)上還有很多有學(xué)問的人,他們專業(yè)技術(shù)十分優(yōu)秀,我們可以請教他們,往往會有意想不到的結(jié)果的。現(xiàn)在我們在學(xué)校里閥門有著優(yōu)越的學(xué)習(xí)環(huán)境,有著優(yōu)秀的教師資源,上課時我們遇到學(xué)習(xí)中的困難,我們可以去請教老師。老師有著扎實的基本功底,他們總是非常熱情的該給我們?nèi)ブv解我們遇到的困難,幫助我們?nèi)W(xué)習(xí)、去提高。老師在課堂上會認(rèn)真的講解我們在學(xué)習(xí)中要注意的事項,以及這門技術(shù)的只是點,幫助我們系統(tǒng)的學(xué)習(xí)oracle這門技術(shù)。我們不能總是聽講,而是要去實踐。以前總是說實踐才是檢驗真理的唯一標(biāo)準(zhǔn)。我們要自己動手去做,課上講,當(dāng)堂練習(xí),課下復(fù)習(xí),這些都是學(xué)好一門技術(shù)的根本。
就像學(xué)習(xí)Java一樣,以前沒有認(rèn)真聽老師的講解,現(xiàn)在自學(xué)起來,總是感覺有些吃力,好多不懂的地方也沒有人可以請教的。所以在開始學(xué)習(xí)這沒技術(shù)時,我就暗下決心要認(rèn)真聽講,挺好老師講的每一個知識點,雖然這門學(xué)科知識選修的,但是還要努力學(xué)的,因為Oracle這門技術(shù)在很多方面都有很多重要應(yīng)用,尤其是在以后的工作中。Oracle數(shù)據(jù)庫是一門非常重要的實踐課程,所以聽完課后,一定要多抽出時間來去聯(lián)系,只有在不斷的實踐過程中,才能夠深刻的了解它的原理和方法。所以學(xué)好Oracle,不斷的抽時間練習(xí)吧!因為,有工作經(jīng)驗的DBA和沒有工作經(jīng)驗的學(xué)院主要區(qū)別就在于兩者的熟練度不一樣,只要你的熟練度足夠,你也可以與工作幾年工作經(jīng)驗的人一腳高下!
說了一大堆主要說的有以下幾點:
1.在上課時老師講的一些經(jīng)驗教訓(xùn)要細心的領(lǐng)會 2.課后練習(xí)也要深入,保持著一種深入研究的心態(tài) 3.做事情要認(rèn)真,不要把問題相當(dāng)然
4.遇到問題要學(xué)會用多種方法解決,上網(wǎng)查,去各種有關(guān)的社區(qū)論壇去與大家交流學(xué)習(xí)
5.培養(yǎng)自己的團隊合作精神處理好與大家的關(guān)系,因為oracle經(jīng)常需要一個團隊來開發(fā)一個項目的
6.最重要的的一點就是刻苦用功是學(xué)習(xí)不變的法寶
第四篇:ORACLE數(shù)據(jù)庫學(xué)習(xí)心得
ORACLE數(shù)據(jù)庫結(jié)課論文
一個好的程序,必然聯(lián)系著一個龐大的數(shù)據(jù)庫網(wǎng)路...今年我們學(xué)習(xí)了 oracle數(shù)據(jù)庫這門課程,起初的我,對這個字眼是要多陌生有多陌生,后來上課的時候聽一會老師講課,偶爾再跟上上機課,漸漸的學(xué)會了不少東西,但我感覺,我學(xué)到的仍是一些皮毛而已,懷著疑惑和求知的心態(tài),我在網(wǎng)上搜索了關(guān)于 oracle數(shù)據(jù)庫的一些知識。
1.ORACLE的特點: 可移植性 ORACLE采用C語言開發(fā)而成,故產(chǎn)品與硬件和操作系統(tǒng)具有很強的獨立性。從大型機到微機上都可運行ORACLE的產(chǎn)品??稍赨NIX、DOS、Windows等操作系統(tǒng)上運行??杉嫒菪?由于采用了國際標(biāo)準(zhǔn)的數(shù)據(jù)查詢語言SQL,與IBM的SQL/DS、DB2等均兼容。并提供讀取其它數(shù)據(jù)庫文件的間接方法。
可聯(lián)結(jié)性 對于不同通信協(xié)議,不同機型及不同操作系統(tǒng)組成的網(wǎng)絡(luò)也可以運行ORAˉCLE數(shù)據(jù)庫產(chǎn)品。
2.ORACLE的總體結(jié)構(gòu)
(1)ORACLE的文件結(jié)構(gòu) 一個ORACLE數(shù)據(jù)庫系統(tǒng)包括以下5類文件:ORACLE RDBMS的代碼文件。
數(shù)據(jù)文件 一個數(shù)據(jù)庫可有一個或多個數(shù)據(jù)文件,每個數(shù)據(jù)文件可以存有一個或多個表、視圖、索引等信息。
日志文件 須有兩個或兩個以上,用來記錄所有數(shù)據(jù)庫的變化,用于數(shù)據(jù)庫的恢復(fù)。控制文件 可以有備份,采用多個備份控制文件是為了防止控制文件的損壞。參數(shù)文件 含有數(shù)據(jù)庫例程起時所需的配置參數(shù)。
(2)ORACLE的內(nèi)存結(jié)構(gòu) 一個ORACLE例程擁有一個系統(tǒng)全程區(qū)(SGA)和一組程序全程區(qū)(PGA)。
SGA(System Global Area)包括數(shù)據(jù)庫緩沖區(qū)、日志緩沖區(qū)及共享區(qū)域。
PGA(Program Global Area)是每一個Server進程有一個。一個Server進程起動時,就為其分配一個PGA區(qū),以存放數(shù)據(jù)及控制信息。
(3)ORACLE的進程結(jié)構(gòu)ORACLE包括三類進程: ①用戶進程 用來執(zhí)行用戶應(yīng)用程序的。
②服務(wù)進程 處理與之相連的一組用戶進程的請求。
③后臺進程 ORACLE為每一個數(shù)據(jù)庫例程創(chuàng)建一組后臺進程,它為所有的用戶進程服務(wù),其中包括: DBWR(Database Writer)進程,負(fù)責(zé)把已修改的數(shù)據(jù)塊從數(shù)據(jù)庫緩沖區(qū)寫到數(shù)據(jù)庫中。LGWR(Log Writer)進程,負(fù)責(zé)把日志從SGA中的緩沖區(qū)中寫到日志文件中。
SMON(System Moniter)進程,該進程有規(guī)律地掃描SAG進程信息,注銷失敗的數(shù)據(jù)庫例程,回收不再使用的內(nèi)存空間。PMON(Process Moniter)進程,當(dāng)一用戶進程異常結(jié)束時,該進程負(fù)責(zé)恢復(fù)未完成的事務(wù),注銷失敗的用戶進程,釋放用戶進程占用的資源。ARCH(ARCHIVER)進程。每當(dāng)聯(lián)機日志文件寫滿時,該進程將其拷貝到歸檔存儲設(shè)備上。另外還包括分布式DB中事務(wù)恢復(fù)進程RECO和對服務(wù)進程與用戶進程進行匹配的Dnnn進程等。
3.ORACLE的邏輯結(jié)構(gòu)
構(gòu)成ORACLE的數(shù)據(jù)庫的邏輯結(jié)構(gòu)包括:(1)表空間
(2)5種類型的段(segment)
①數(shù)據(jù)段;②索引段;③回滾(rollbock)段;④臨時段;⑤自舉(bootstrap)段。
段的分配單位叫范圍(Extent)
表空間(Tablespace)一個數(shù)據(jù)庫劃分成的若干邏輯部分稱為表空間。一個數(shù)據(jù)庫可以有一個或多個表空間,初始的表空間命名為SYSTEM,每一個邏輯表空間對應(yīng)于一個或多個物理文件。DBA使用表空間做以下工作: 控制數(shù)據(jù)庫對象,如表、索引和臨時段的空間分配。為數(shù)據(jù)庫用戶設(shè)置空間配額。
利用個別表空間的在線或離線,控制數(shù)據(jù)的可用性。后備或恢復(fù)數(shù)據(jù)。
通過分配空間,以改進性能。
在每個數(shù)據(jù)庫中都存在SYSTEM表空間,它在建立數(shù)據(jù)庫時自動建立。在該表空間中,包含數(shù)據(jù)庫的數(shù)據(jù)字典,其中存儲全部數(shù)據(jù)庫對象的名字和位置。SYSTEM表空間總是在線的,像其它表空間一樣,可以通過增加新的數(shù)據(jù)庫文件來擴大。一個表空間可包含許多表和索引。但一個表和索引不能跨越表空間,可跨越組成表空間的文件。在DB的打開的情況下,DBA利用ALTER TABLESPACE語句,可以實施表空間的在線或離線。SYSTEM表空間必須在線。表空間離線有下列原因: 一般為了使部分?jǐn)?shù)據(jù)庫不能使用,而允許正常存取數(shù)據(jù)庫其余部分。執(zhí)行表空間離線備份。
一個離線的表空間,不能被應(yīng)用用戶讀或編輯。
可以增加數(shù)據(jù)文件擴大已有的表空間,也可增加新的表空間使數(shù)據(jù)庫容量增大,或分配空間給某個應(yīng)用。使用ALFER TABLESPACE ADD FILE語句將另一個數(shù)據(jù)文件加入到已存在表空間中。使用CREATE TABLESPACE語句可建立一個新的表空間。段(segment)表空間中的全部數(shù)據(jù)存儲在以段劃分的數(shù)據(jù)庫空間中。一個段是分配給數(shù)據(jù)庫用于數(shù)據(jù)存儲的范圍的集合。數(shù)據(jù)可以是表、索引或RDBMS所需要的臨時數(shù)據(jù)。段是表空間的下一個邏輯存儲的級別。一個段不能跨越一個表空間,但可跨越表空間內(nèi)的文件。一個數(shù)據(jù)庫最多需要五種段類型: 數(shù)據(jù)段 一個包含一個表(或聚集)的全部數(shù)據(jù),一個表(或聚集)總有一個單個數(shù)據(jù)段。
索引段 一個索引段包含對一個表(或聚集)建立的一個索引的全部索引數(shù)據(jù)。一個表可以有一個、多個或者沒有索引段,取決于它所擁有的索引個數(shù)。一個聚集必須至少有一個索引段,即在聚集碼上建立聚集索引。
回滾段 每個DB有一個或多個回滾段。一個回滾段是DB的一部分,它記錄在某一情況下被撤消的動作?;貪L段用于事務(wù)控制和恢復(fù)。
臨時段 在處理查詢時,ORACLE需要臨時工作空間,用于存儲語句處理的中間結(jié)果,這個區(qū)稱為臨時段。
自舉段 自舉段在SYSTEM表空間中,在數(shù)據(jù)庫建立時建立。它包括數(shù)據(jù)字典定義,在數(shù)據(jù)庫打開時裝入。
4.用戶數(shù)據(jù)庫對象
由用戶建立的對象駐留在表空間中,含有真正的數(shù)據(jù)。數(shù)據(jù)庫對象有表、視圖、聚集、索引、偽列和序號生成器。
(1)聚集(Cluster)聚集是存儲數(shù)據(jù)的一種可選擇的方法。聚集包括存儲在一起的一組表,它們共享公共列并經(jīng)常一起使用。由于內(nèi)容相關(guān)并且物理地存儲在一起,存取時間得到改進,存儲空間可以減少。聚集是一種優(yōu)化措施。
聚集對性能的改進,依賴于數(shù)據(jù)的分布和SQL操作的內(nèi)容。特別是使用聚集對連接非常有利??梢悦黠@地提高連接的速度。建立聚集命令的基本格式: SQL>CREATE CLUSTER〈聚集名〉(列定義[,…]);利用聚集建立表命令基本格式: SQL>CREATE TABLE〈新表名〉(列定義[,…]CLUSTER〈聚集名〉(聚集列);在聚集碼上必須建立一個聚集索引,對于每一數(shù)據(jù)塊上每個聚集碼值有一索引項。這個索引必須在DML語句對聚集表操作前建立。建立索引的語句是:CREATE INDEX索引名ON CLUSTER聚集名;(2)序號生成器 序號(SEQUENCE)生成器為表中的單列或多列生成順序號。利用序號可自動地生成唯一主碼。使用SQL語句定義序號,給出一些信息(如序號名、是升序或降序、每個序號間的間隔和其它信息)。所有序號存儲在數(shù)據(jù)字典表中。
所有序號定義存儲在數(shù)據(jù)字典的SEQUENCE表中。用戶可以通過字典視圖
USER-SE-QUENCES、ALL-SEQUENCES
和DBA-SEQUENCES查詢和存取。建立序號生成器的語句是: CREATE SEQUENCE序號生成器名 其它選項。
一旦序號生成器S被定義??捎肧.Currval來引用S序號生成器的當(dāng)前值。用S.nextval產(chǎn)生下一個新的序號并加以引用。
(3)偽列 偽列的行為像表的一列,但不真正存在于表中,在查詢時可引用偽列,但偽列不能插入、刪除或修改。
5.數(shù)據(jù)字典
數(shù)據(jù)字典ORACLE RDBMS最重要的部分之一。數(shù)據(jù)字典含有一組系統(tǒng)定義的表,只能讀,是關(guān)于數(shù)據(jù)庫的引用指南。它可提供以下信息:ORACLE用戶的用戶名;每個用戶被授予的權(quán)限和角色;實體的名字和定義;完整性約束 為數(shù)據(jù)庫實體分配的空間;通用的數(shù)據(jù)庫結(jié)構(gòu);審計信息;觸發(fā)子程序等的存儲。數(shù)據(jù)字典是以表和視圖構(gòu)成的,像其它數(shù)據(jù)庫數(shù)據(jù)一樣,可用SQL語言查詢數(shù)據(jù)字典。
數(shù)據(jù)字典在DB建立時建立。每當(dāng)DB進入操作,數(shù)據(jù)字典就由ORACLE RDBMS負(fù)責(zé)修改。數(shù)據(jù)庫建立時有兩個默認(rèn)DBA用戶:SYS、SYSTEM。SYS持有基本表中的數(shù)據(jù)。數(shù)據(jù)字典包含一組基表和相關(guān)的視圖,可分為以下幾類: 類
描 述
DBA-××× 只有DBA可存取的視圖,給出數(shù)據(jù)庫中定義的任何實體的信息
USER-××× 對任何用戶可用的視圖,給出他們自己的實體的信息
ALL-×××
對任何用戶可用的視圖,給出用戶可存取的所有實體的信息
其中×××代表表名或視圖名
下面列出的是一些常用的表或視圖的名稱。(1)DTAB 描述了組或數(shù)據(jù)字典的所有表。(2)TAB 用戶建的所有基本表、視圖和同義詞。(3)COL 用戶創(chuàng)建基本表的所有列的信息。
(4)SYNONYMS 用戶可存取的同義名詞、專用名和公用名。(5)CATALOG 用戶可存取的表、視圖、同義詞、序列。(6)CONSTRAINTS 用戶可存取的約束。(7)INDEXES 用戶可存取的表和聚集的序列。(8)OBJECTS 用戶可存取的對象。(9)TABLES 用戶可存取的表。(10)USERS 查看當(dāng)前全部用戶。(11)VIEWS 查看用戶可存取的視圖。
(12)SYSTABAUTH 用戶對數(shù)據(jù)對象的使用權(quán)限??梢杂肧QL>SELECT*FROM〈字典表名或視圖名〉WHERE〈條件〉來讀取有關(guān)信息。
可以用SQL>DESCRIBE〈表名〉來查看表的結(jié)構(gòu)定義。但是數(shù)據(jù)庫字典的結(jié)構(gòu)不可改。用DESCRIBE命令還可以查看視圖及過程的定義。
6.ORACLE的SQL、PL/SQL與SQL*PLUS 作為ORACLE數(shù)據(jù)庫核心的SQL語言是ANSI和ISO的標(biāo)準(zhǔn)SQL的擴充。用來存儲、檢索和維護數(shù)據(jù)庫中的信息,并控制對數(shù)據(jù)庫的存取事務(wù)。由于RDBMS執(zhí)行SQL語句時,是一次只執(zhí)行一條語句,它是非過程化的。這就使得單條的SQL語句使用方便,功能強大。用戶只需說明操作目的,不必關(guān)心具體操作的實現(xiàn)方法。
但在實際數(shù)據(jù)庫應(yīng)用開發(fā)中,往往要依據(jù)前一步對數(shù)據(jù)庫操作的結(jié)果或上一個事務(wù)提交的情況來確定下一步的操作。故ORACLE推出了一種PL/SQL工具,它擴充了SQL語句,使之具有可進行過程化編程的能力,如循環(huán)、分支功能。PL/SQL可支持變量和常量的使用。例如在SELECT查詢語句的where子句中可以使用變量來書寫條件表達式。SQL*PLUS是ORACLE用來存儲、查詢、操縱、控制和報告數(shù)據(jù)庫中信息的一個交互式工具。它是一種集編輯、調(diào)試、運行于一體的開發(fā)環(huán)境。在SQL*PLUS的這種運行環(huán)境下,既可以使用SQL命令、PL/SQL語句、及SQL*PLUS自己提供的命令,又可以運行由上述三類命令(或語句)編輯而成的命令文件。SQL*PLUS提供的附加命令主要用來編輯、運行上述三類命令及命令文件和對查詢結(jié)果進行格式化輸出等功能。
7.數(shù)據(jù)庫系統(tǒng)的管理
ORACLE作為一個大型的數(shù)據(jù)系統(tǒng),通常包含很多用戶的數(shù)據(jù)。在應(yīng)用開發(fā)過程中,有許許多多的各類人員進行開發(fā)和應(yīng)用。所以必須要求有人對數(shù)據(jù)庫系統(tǒng)進行臨時管理,并進行數(shù)據(jù)的備份等工作。這種人被稱為數(shù)據(jù)庫管理員(Data Base Administrator)。他們必須理解數(shù)據(jù)庫系統(tǒng)管理,清楚數(shù)據(jù)庫包含的數(shù)據(jù)內(nèi)容、運行狀況等。
一般說來,DBA不是指具體的人,而是指對數(shù)據(jù)庫可以行使DBA特權(quán)的用戶。DBA具有如下責(zé)任:(1)ORACLE服務(wù)器和客戶工作站軟件的安裝和升級;(2)創(chuàng)建基本的數(shù)據(jù)庫存儲結(jié)構(gòu)(表空間);(3)創(chuàng)建基本的數(shù)據(jù)庫客體(表、視圖、索引);(4)修改數(shù)據(jù)庫結(jié)構(gòu);(5)給用戶授權(quán),維護系統(tǒng)安全;(6)控制和管理用戶對數(shù)據(jù)庫的訪問;(7)監(jiān)視和優(yōu)化數(shù)據(jù)庫的性能;(8)計算數(shù)據(jù)庫信息的后備和恢復(fù);(9)后備和恢復(fù)數(shù)據(jù)庫;(10)構(gòu)造ORACLE服務(wù)器,如創(chuàng)建數(shù)據(jù)庫鏈、客體同義詞等。而應(yīng)用開發(fā)人員須完成:(1)應(yīng)用程序設(shè)計;(2)應(yīng)用的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計和修改;(3)為DBA提供必要的信息;(4)完成應(yīng)用程序的開發(fā)。
看了許多關(guān)于ORACLE的知識論壇,總算是對ORACLE有個整體的認(rèn)識,不僅僅是拘泥于課堂上學(xué)習(xí)的知識而已,雖然自己對ORACLE學(xué)習(xí)并不是多么的透徹,但是總歸多接觸點新的東西總是好的。
這一個學(xué)期,也是臨近畢業(yè)的時候了,很感謝賈老師的嚴(yán)格要求,讓我在學(xué)習(xí)上有了很大的進步,同時也改掉了一些惰性,能積極的投入到學(xué)習(xí)中去了,不懂就大膽的問同學(xué),請學(xué)習(xí)好的同學(xué)幫助講解,最后,真心的祝福賈老師工作順利,身體健康!
第五篇:oracle學(xué)習(xí)心得
一、定位
oracle分兩大塊,一塊是開發(fā),一塊是管理。開發(fā)主要是寫寫存儲過程、觸發(fā)器什么的,還有就是用Oracle的Develop工具做form。有點類似于程序員,需要有較強的邏輯思維和創(chuàng)造能力,個人覺得會比較辛苦,是青春飯J;管理則需要對oracle數(shù)據(jù)庫的原理有深刻的認(rèn)識,有全局操縱的能力和緊密的思維,責(zé)任較大,因為一個小的失誤就會down掉整個數(shù)據(jù)庫,相對前者來說,后者更看重經(jīng)驗。
因為數(shù)據(jù)庫管理的責(zé)任重大,很少公司愿意請一個剛剛接觸oracle的人去管理數(shù)據(jù)庫。對于剛剛畢業(yè)的年輕人來說,可以先選擇做開發(fā),有一定經(jīng)驗后轉(zhuǎn)型,去做數(shù)據(jù)庫的管理。當(dāng)然,這個還是要看人個的實際情況來定。
二、學(xué)習(xí)方法
我的方法很簡單,就是:看書、思考、寫筆記、做實驗、再思考、再寫筆記
看完理論的東西,自己靜下心來想想,多問自己幾個為什么,然后把所學(xué)和所想的知識點做個筆記;在想不通或有疑問的時候,就做做實驗,想想怎么會這樣,同樣的,把實驗的結(jié)果記下來。思考和做實驗是為了深入的了解這個知識點。而做筆記的過程,也是理清自己思路的過程。
學(xué)習(xí)的過程是使一個問題由模糊到清晰,再由清晰到模糊的過程。而每次的改變都代表著你又學(xué)到了一個新的知識點。
學(xué)習(xí)的過程也是從點到線,從線到網(wǎng),從網(wǎng)到面的過程。當(dāng)點變成線的時候,你會有總豁然開朗的感覺。當(dāng)網(wǎng)到面的時候,你就是高手了
很多網(wǎng)友,特別是初學(xué)的人,一碰到問題就拿到論壇上來問,在問前,你有沒有查過書,自己有沒有研究過,有沒有搜索一下論壇?這就叫思維惰性,沒有鉆研的學(xué)習(xí)態(tài)度,不管學(xué)什么東西,都不會成功的。
三、oracle的體系
oracle的體系很龐大,要學(xué)習(xí)它,首先要了解oracle的框架。在這里,簡要的講一下oracle的架構(gòu),讓初學(xué)者對oracle有一個整體的認(rèn)識。
1、物理結(jié)構(gòu)(由控制文件、數(shù)據(jù)文件、重做日志文件、參數(shù)文件、歸檔文件、密碼文件組成)
控制文件:包含維護和驗證數(shù)據(jù)庫完整性的必要信息、例如,控制文件用于識別數(shù)據(jù)文件和重做日志文件,一個數(shù)據(jù)庫至少需要一個控制文件
數(shù)據(jù)文件:存儲數(shù)據(jù)的文件
重做日志文件:含對數(shù)據(jù)庫所做的更改記錄,這樣萬一出現(xiàn)故障可以啟用數(shù)據(jù)恢復(fù)。一個數(shù)據(jù)庫至少需要兩個重做日志文件
參數(shù)文件:定義Oracle 例程的特性,例如它包含調(diào)整SGA 中一些內(nèi)存結(jié)構(gòu)大小的參數(shù)
歸檔文件:是重做日志文件的脫機副本,這些副本可能對于從介質(zhì)失敗中進行恢復(fù)很必要。
密碼文件:認(rèn)證哪些用戶有權(quán)限啟動和關(guān)閉Oracle例程
2、邏輯結(jié)構(gòu)(表空間、段、區(qū)、塊)表空間:是數(shù)據(jù)庫中的基本邏輯結(jié)構(gòu),一系列數(shù)據(jù)文件的集合。段:是對象在數(shù)據(jù)庫中占用的空間
區(qū):是為數(shù)據(jù)一次性預(yù)留的一個較大的存儲空間
塊:ORACLE最基本的存儲單位,在建立數(shù)據(jù)庫的時候指定
3、內(nèi)存分配(SGA和PGA)
SGA:是用于存儲數(shù)據(jù)庫信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫進程所共享。它包含Oracle 服務(wù)器的數(shù)據(jù)和控制信息, 它是在Oracle 服務(wù)器所駐留的計算機的實際內(nèi)存中得以分配,如果實際內(nèi)存不夠再往虛擬內(nèi)存中寫。
PGA:包含單個服務(wù)器進程或單個后臺進程的數(shù)據(jù)和控制信息,與幾個進程共享的SGA 正相反PGA 是只被一個進程使用的區(qū)域,PGA 在創(chuàng)建進程時分配在終止進程時回收
4、后臺進程(數(shù)據(jù)寫進程、日志寫進程、系統(tǒng)監(jiān)控、進程監(jiān)控、檢查點進程、歸檔進程、服務(wù)進程、用戶進程)
數(shù)據(jù)寫進程:負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫緩沖區(qū)高速緩存寫入數(shù)據(jù)文件
日志寫進程:將重做日志緩沖區(qū)中的更改寫入在線重做日志文件
系統(tǒng)監(jiān)控:檢查數(shù)據(jù)庫的一致性如有必要還會在數(shù)據(jù)庫打開時啟動數(shù)據(jù)庫的恢復(fù)進程監(jiān)控:負(fù)責(zé)在一個Oracle 進程失敗時清理資源
檢查點進程:負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫中時,更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫狀態(tài)信息。
歸檔進程:在每次日志切換時把已滿的日志組進行備份或歸檔
服務(wù)進程:用戶進程服務(wù)。
用戶進程:在客戶端,負(fù)責(zé)將用戶的SQL 語句傳遞給服務(wù)進程,并從服務(wù)器段拿回查詢數(shù)據(jù)。
5、oracle例程:Oracle 例程由SGA 內(nèi)存結(jié)構(gòu)和用于管理數(shù)據(jù)庫的后臺進程組成。例程一次只能打開和使用一個數(shù)據(jù)庫。
6、SCN(System Change Number):系統(tǒng)改變號,一個由系統(tǒng)內(nèi)部維護的序列號。當(dāng)系統(tǒng)需要更新的時候自動增加,他是系統(tǒng)中維持?jǐn)?shù)據(jù)的一致性和順序恢復(fù)的重要標(biāo)志。
四、深入學(xué)習(xí)
管理:可以考OCP證書,對oracle先有一個系統(tǒng)的學(xué)習(xí),然后看Oracle Concepts、oracle online document,對oracle的原理會有更深入的了解,同時可以開始進行一些專題的研究如:RMAN、RAS、STATSPACT、DATAGUARD、TUNING、BACKUP&RECOVER等等。
開發(fā):對于想做Oracle開發(fā)的,在了解完Oracle基本的體系結(jié)構(gòu)之后,可以重點關(guān)注PL/SQL及Oracle的開發(fā)工具這一部分。PL/SQL主要是包括怎么寫SQL語句,怎么使用Oracle本身的函數(shù),怎么寫存儲過程、存儲函數(shù)、觸發(fā)器等。Oracle的開發(fā)工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer這些),學(xué)會如何熟練使用這些工具。
資料引用: