Oracle中級培訓(xùn)課件_第1頁
Oracle中級培訓(xùn)課件_第2頁
Oracle中級培訓(xùn)課件_第3頁
Oracle中級培訓(xùn)課件_第4頁
Oracle中級培訓(xùn)課件_第5頁
已閱讀5頁,還剩185頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第一章數(shù)據(jù)庫的啟動(dòng)和關(guān)閉數(shù)據(jù)庫關(guān)閉(SHUTDOWN)數(shù)據(jù)庫啟動(dòng)(STARTUP)CHEESE1精選課件數(shù)據(jù)庫關(guān)閉(SHUTDOWN)SHUTDOWNNORMAL:不允許新的連接、等待會(huì)話結(jié)束、等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)不需要實(shí)例恢復(fù)。SHUTDOWNNORMAL:不允許新的連接、等待會(huì)話結(jié)束、等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)不需要實(shí)例恢復(fù)。

SHUTDOWN有四個(gè)參數(shù):NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。2精選課件SHUTDOWNTRANSACTIONAL:不允許新的連接、不等待會(huì)話結(jié)束、等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)不需要實(shí)例恢復(fù)。SHUTDOWNIMMEDIATE:不允許新的連接、不等待會(huì)話結(jié)束、不等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。沒有結(jié)束的事務(wù)是自動(dòng)rollback的。啟動(dòng)時(shí)不需要實(shí)例恢復(fù)。3精選課件SHUTDOWNABORT:不允許新的連接、不等待會(huì)話結(jié)束、不等待事務(wù)結(jié)束、不做檢查點(diǎn)且沒有關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)自動(dòng)進(jìn)行實(shí)例恢復(fù)。SHUTDOWNABORT:不允許新的連接、不等待會(huì)話結(jié)束、不等待事務(wù)結(jié)束、不做檢查點(diǎn)且沒有關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)自動(dòng)進(jìn)行實(shí)例恢復(fù)。注意:

缺省不帶任何參數(shù)時(shí)表示是NORMAL。4精選課件數(shù)據(jù)庫啟動(dòng)(STARTUP)STARTUPOPEN:STARTUP缺省的參數(shù)就是OPEN,打開數(shù)據(jù)庫,允許數(shù)據(jù)庫的訪問。當(dāng)前實(shí)例的控制文件中所描述的所有文件都已經(jīng)打開。STARTUPMOUNT:MOUNT數(shù)據(jù)庫,僅僅給DBA進(jìn)行管理操作,不允許數(shù)據(jù)庫的用戶訪問。僅僅只是當(dāng)前實(shí)例的控制文件被打開,數(shù)據(jù)文件未打開。啟動(dòng)語法:STARTUP[FORCE][RESTRICT][PFILE=filename][OPEN[RECOVER][database]|MOUNT|NOMOUNT]5精選課件STARTUPNOMOUNT:僅僅通過初始化文件,分配出SGA區(qū),啟動(dòng)數(shù)據(jù)庫后臺進(jìn)程,沒有打開控制文件和數(shù)據(jù)文件。不能任何訪問數(shù)據(jù)庫。STARTUPPFILE=filename:以filename為初始化文件啟動(dòng)數(shù)據(jù)庫,不是采用缺省初始化文件。STARTUPFORCE:中止當(dāng)前數(shù)據(jù)庫的運(yùn)行,并立即開始重新正常的啟動(dòng)數(shù)據(jù)庫。6精選課件STARTUPRESTRICT:只允許具有RESTRICTEDSESSION權(quán)限的用戶訪問數(shù)據(jù)庫。STARTUPRECOVER:數(shù)據(jù)庫啟動(dòng),并開始介質(zhì)恢復(fù)。啟動(dòng)和關(guān)閉數(shù)據(jù)庫都做了些什么?7精選課件shutdown→nomount過程:讀初始參數(shù)文件尋找參數(shù)文件順序:spfile<sid>.ora>>spfile.ora>>init<sid>.ora分配物理內(nèi)存啟動(dòng)后臺進(jìn)程定位到控制文件打開/寫alert文件8精選課件nomount→mount過程:打開控制文件確認(rèn)database的結(jié)構(gòu)信息以下任務(wù)必須在mount狀態(tài)下進(jìn)行:命名數(shù)據(jù)文件、啟用和禁用重作日志歸檔選項(xiàng)、執(zhí)行完全數(shù)據(jù)庫恢復(fù)9精選課件mount→open過程:打開數(shù)據(jù)文件打開重做日志文件最后階段中,oracle服務(wù)器驗(yàn)證所有數(shù)據(jù)文件和重做日志文件是否可以打開,并檢查數(shù)據(jù)庫的一致性,如果需要,smon進(jìn)程會(huì)啟動(dòng)例程恢復(fù)。10精選課件各狀態(tài)下可訪問的動(dòng)態(tài)視圖nomount過程可以訪問的動(dòng)態(tài)性能視圖:v$parameter,v$sga,v$option,v$process,v$version,v$instancemount過程可以訪問的動(dòng)態(tài)性能視圖:v$thread,v$controlfile,v$database,v$datafile,v$datafile_header,v$logfileOPEN狀態(tài)下可訪問的動(dòng)態(tài)性能視圖:所有11精選課件第二章控制文件什么信息記錄在控制文件里:1.控制文件所屬的數(shù)據(jù)庫名稱,一個(gè)控制文件只能屬于一個(gè)數(shù)據(jù)庫2.相關(guān)的數(shù)據(jù)文件和重做日志文件的名稱、位置、聯(lián)機(jī)/脫機(jī)狀態(tài)信息3.數(shù)據(jù)庫創(chuàng)建的時(shí)間信息4.當(dāng)前重日志序號(logsequen)5.當(dāng)前檢查點(diǎn)信息6.RecoveryManager(RMAN,恢復(fù)管理器)的備份信息12精選課件多路復(fù)用(multiplexing)控制文件方法和步驟:1.修改初始化參數(shù)CONTROL_FILESsql>altersystemsetcontrol_files='d:\demo\control01.dbf','d:\demo\control02.dbf','d:\demo\control03.dbf','c:\demo\control04.dbf'scope=spfile;2.退出sql*plus,關(guān)閉數(shù)據(jù)庫3.關(guān)閉服務(wù):OracleServerORCL服務(wù)、OracleDBConsoleorcl服務(wù)4.復(fù)制現(xiàn)有的控制文件sql>hostcopyd:\demo\control01.dbfc:\demo\control04.dbf5.開啟服務(wù)開啟服務(wù):OracleServerORCL服務(wù)、OracleDBConsoleorcl服務(wù)6.開啟數(shù)據(jù)庫sqlplussys/passwdassysdbasql>startup13精選課件管理控制文件的大小控制文件的大小主要決定于創(chuàng)建數(shù)據(jù)庫時(shí),CREATEDATABASE指定的幾個(gè)MAX子句的值:maxdatafiles--指定最大數(shù)據(jù)文件個(gè)數(shù)maxlogfiles--指定最大重做日志文件個(gè)數(shù)maxlogmembers--指定重做日志文件中每個(gè)組的成員個(gè)數(shù)maxloghistory--指定控制文件可記載的重做日志歷史的最大個(gè)數(shù)maxinstances--指定可以同時(shí)訪問數(shù)據(jù)庫的最大例程的個(gè)數(shù)14精選課件創(chuàng)建控制文件結(jié)構(gòu)15精選課件createcontrolfilereusedatabase“cheese"noresetlogsnoarchiveloglogfilegroup1'd:\demo\redo01.log'size10m,group2'd:\demo\redo02.log'size10m,group3'd:\demo\redo03.log'size10m16精選課件datafile'd:\demo\system01.dbf','d:\demo\sysaux01.dbf','d:\demo\undotbs01.dbf','d:\demo\users01.dbf'

charactersetZHS16GBK;17精選課件何時(shí)創(chuàng)建新的控制文件

1.所有數(shù)據(jù)庫的控制文件都遭到永久性損壞,并且還沒有任何控制文件備份2.希望改變某個(gè)數(shù)據(jù)庫參數(shù)的永久性設(shè)置,這些參數(shù)最初是在createdatabase語句中指定的18精選課件創(chuàng)建新控制文件步驟1.制作一個(gè)包含數(shù)據(jù)庫的所有數(shù)據(jù)文件和重做日志文件的列表selectmemberfromv$logfile;selectnamefromv$datafile;selectnamefromv$controlfile;2.關(guān)閉數(shù)據(jù)庫shutdownimmediate3.將數(shù)據(jù)庫的所有數(shù)據(jù)文件、重做日志文件、spfile參數(shù)文件備份到其他地方4.啟動(dòng)一個(gè)新的例程,但不要裝載或打開數(shù)據(jù)庫sql>startupnomount5.使用createcontrolfile語句為數(shù)據(jù)庫創(chuàng)建一個(gè)新的控制文件6.在離線存儲(chǔ)設(shè)備上存儲(chǔ)新的控制文件備份7.編輯control_files初始化參數(shù)8.有必要可以恢復(fù)數(shù)據(jù)庫9.打開數(shù)據(jù)庫alterdatabaseopen;或alterdatabaseopenresetlogs;19精選課件備份控制文件1.將控制文件備份為二進(jìn)制文件alterdatabasebackupcontrolfileto'g:\backup\control.bkp';2.將控制文件備份為文本文件alterdatabasebackupcontrolfiletotrace;查看控制文件跟蹤備份showparameteruser_dump_dest20精選課件刪除控制文件刪除步驟:1.修改數(shù)據(jù)庫初始化參數(shù)文件spfile中的初始化參數(shù)control_files,刪除不再需要的控制文件名稱altersystemsetcontrol_files='d:\demo\control01.ctl','d:\demo\control02.ctl','d:\demo\control03.ctl'scope=spfile;2.關(guān)閉數(shù)據(jù)庫SHUTDOWNimmediate3.刪除不再需要的數(shù)據(jù)文件sql>hostdeld:\cheese\control04.ctl4.重啟數(shù)據(jù)庫alterdatabaseopen;5.使用數(shù)據(jù)庫21精選課件查詢與控制文件相關(guān)的數(shù)據(jù)字典視圖v$controlfile--控制文件名稱v$controlfile_record_section--控制文件記錄文檔的信息v$parameter--初始化參數(shù)cintrol_files指定控制文件名稱showparametercontrol_files--查看控制文件selectnamefromv$controlfile;--查看控制文件名稱selecttype,record_size,records_total,records_usedfromv$controlfile_record_section;--查看控制文件記錄文檔段的信息22精選課件第三章參數(shù)文件參數(shù)文件初始化參數(shù)文件(InitializationParameterFiles):pfile(9i前)服務(wù)器參數(shù)文件(ServerParameterFiles):spfile(可動(dòng)態(tài)修改:altersesion、altersystem)23精選課件Oracle數(shù)據(jù)庫創(chuàng)建過程createspfile='C:\oracle\product\10.2.0\db_1\database\spfile<SID>.ora'FROMpfile='C:\oracle\admin\cheese\scripts\init.ora';通過<SID>.bat-->CreateDB.sql-->init.ora創(chuàng)建數(shù)據(jù)庫完成后,進(jìn)行后續(xù)處理postDBCreation.sql-->startupnomountpfile="c:\oracle\admin\cheese\scripts\init.ora";24精選課件spfile的創(chuàng)建createspfilefrompfile;v$spparameter--查看Oracle并沒有向其他文件一樣,在運(yùn)行時(shí)間保持鎖定,做個(gè)實(shí)驗(yàn):sql>hostrenamespfile<cheese>.oraspfile<cheese>.ora.backsql>altersystemsetdb_cache_size=2mscope=both;sql>hostdir*.orasql>altersystemsetdb_cache_size=2mscope=spfilesql>hostrenamespfile<cheese>.ora.bakspfile<cheese>.ora25精選課件spfile的搜索順序spfile<sid>.ora-->spfile.ora-->init<sid>log_archive_start來設(shè)置用pfile中的設(shè)置來代替spfile中的設(shè)置(用pfile中的參數(shù)覆蓋spfile中的參數(shù))26精選課件修改參數(shù)altersystem命令scope選項(xiàng)有3個(gè)參數(shù):memory:只改變當(dāng)前實(shí)例運(yùn)行,重啟參數(shù)后失效spfile:只改變spfile的設(shè)置,不改變當(dāng)前實(shí)例運(yùn)行,重啟動(dòng)數(shù)據(jù)庫后生效both:同時(shí)改變實(shí)例及spfile,當(dāng)前更改立即生效,重新啟動(dòng)數(shù)據(jù)庫后仍然有效altersystemsetlog_archive_start=falsescop=memory;altersystemsetlog_archive_start=falsescop=spfile;altersystemsetlog_archive_start=falsescop=both;注意:對與靜態(tài)參數(shù)只能指定scope=spfile進(jìn)行修改27精選課件查看參數(shù)值selectname,valuefromv$spparameterwherename='db_cache_advice';altersystemsetopen_cursors=500sid='*'scope=memory;--對所有實(shí)例起作用(適用于RAC)altersystemsetopen_cursors=500sid='ORCLE'scope=spfile;--對指定數(shù)據(jù)庫進(jìn)行修改28精選課件恢復(fù)某個(gè)參數(shù)為默認(rèn)值(重置參數(shù)、缺省參數(shù))altersystemresetopen_cursorsscop=spfilesid='sid|*';altersystemresetopen_cursorsscop=spfilesid='*';29精選課件查看是否使用spfileselectname,valuefromv$parameterwherename='spfile';showparameterspfile;selectcount(*)fromv$spparameterwherevalueisnotnull;--不是0是spfileselect*fromv$spparameterwherevalueisnotnullandname='open_cursors';selectdecode(count(*),1,'pfile','spfile')usedfromv$spparameterwhererownum=1andisspecified='TURE';30精選課件spfile文件備份與恢復(fù)rman自動(dòng)備份spfile文件rmantarget/configurecontrolfileautobackupon;exitselect*fromv$rman_configuration;31精選課件使用自動(dòng)備份恢復(fù)spfile文件(不能mount,不可使用)rmantarget/restorespfileto'/tmp/spfileorcl.ora'fromautobackup;exit32精選課件恢復(fù)自動(dòng)備份的控制文件(不能mount,不可使用)rmantarget/restorecontrolfileto'/tmp/control01.ctl'fromautobackup;Exitnomount狀態(tài)下必須指定文件rmantarget/restorespfileto'/tmp/spfile.ora'from'c-3152029224-20060509-00';exit33精選課件導(dǎo)出spfile文件createpfile='d:\demo\initorcl.ora'fromspfile;shutdownimmediatespfile例子:altersystemsetundo_tablespace='UNDOTBS2'scope=memory;--替換表空間droptablespace"UNDOTBS1"includingcontentsanddatafilescascadeconstraints;--刪除undo表空間34精選課件第四章內(nèi)存管理內(nèi)存結(jié)構(gòu):包括SGA和PGA。使用內(nèi)存最多的是SGA,同時(shí)也是影響數(shù)據(jù)庫性能的最大參數(shù)35精選課件SGAselect*fromv$sgainfo;--查看sga信息SGA由多個(gè)部分組成:1.固定SGA(FixedSGA)2.塊緩沖區(qū)(Dbcache)3.重做日志緩沖區(qū)(Redologbuffer)4.Java池(Javapool)5.大池(Largepool)6.共享池(Sharedpool)7.流池(Streampool)36精選課件有如下參數(shù)控制共享池相關(guān)組件大?。?.JAVA_POOL_SIZE:控制Java池大小。2.SHARED_POOL_SIZE:9i中控制共享池中占用最大的部分,10g以上控制共享池大小。3.LARGE_POOL_SIZE:控制大池大小。4.DB_*K_CACHE_SIZE:控制不同塊大小的緩沖區(qū)大小。5.LOG_BUFFER:控制重做日志緩沖區(qū)大小。6.SGA_TARGET:10g以上控制自動(dòng)SGA內(nèi)存管理的總內(nèi)存大小。7.SGA_MAX_SIZE:控制SGA可以達(dá)到的最大大小,改變需重啟數(shù)據(jù)庫。37精選課件SGA各組件作用固定SGA:顧名思義,是一段不變的內(nèi)存區(qū),指向SGA中其他部分,Oracle通過它找到SGA中的其他區(qū),可以簡單理解為用于管理的一段內(nèi)存區(qū)。38精選課件塊緩沖區(qū):查詢時(shí),Oracle會(huì)先把從磁盤讀取的數(shù)據(jù)放入內(nèi)存,以后再查詢相關(guān)數(shù)據(jù)時(shí)不用再次讀取磁盤。插入和更新時(shí),Oracle會(huì)現(xiàn)在該區(qū)中緩存數(shù)據(jù),之后批量寫到硬盤中。通過塊緩沖區(qū),Oracle可以通過內(nèi)存緩存提高磁盤的I/O性能。塊緩沖區(qū)中有三個(gè)區(qū)域:默認(rèn)池(Defaultpool):所有數(shù)據(jù)默認(rèn)都在這里緩存。保持池(Keeppool):用來緩存需要多次重用的數(shù)據(jù)?;厥粘兀≧ecyclepool):用來緩存很少重用的數(shù)據(jù)。原來只有一個(gè)默認(rèn)池,所有數(shù)據(jù)都在這里緩存。這樣會(huì)產(chǎn)生一個(gè)問題:大量很少重用的數(shù)據(jù)會(huì)把需重用的數(shù)據(jù)“擠出”緩沖區(qū),造成磁盤I/O增加,運(yùn)行速度下降。后來分出了保持池和回收池根據(jù)是否經(jīng)常重用來分別緩存數(shù)據(jù)。這三部分內(nèi)存區(qū)需要手動(dòng)確定大小,并且之間沒有共享。例如:保持池中已經(jīng)滿了,而回收池中還有大量空閑內(nèi)存,這時(shí)回收池的內(nèi)存不會(huì)分配給保持池。39精選課件9i開始,還可以設(shè)置db_nk_cache。9i之前數(shù)據(jù)庫只能使用相同的塊大小。9i開始同一個(gè)數(shù)據(jù)庫可以使用多種塊大?。?KB,4KB,8KB,16KB,32KB),這些塊需要在各自的db_nk_cache中緩存。如果為不同的表空間指定了不同的塊大小,需要為其設(shè)置各自的緩沖區(qū)。40精選課件重做日志緩沖區(qū)(Redologbuffer):數(shù)據(jù)寫到重做日志文件之前在這里緩存,在以下情況中觸發(fā):每隔3秒緩存達(dá)到1MB或1/3滿時(shí)用戶提交時(shí)緩沖區(qū)的數(shù)據(jù)寫入磁盤前41精選課件Java池(Javapool):在數(shù)據(jù)庫中運(yùn)行Java代碼時(shí)用到這部分內(nèi)存。例如:編寫Java存儲(chǔ)過程在服務(wù)器內(nèi)運(yùn)行。需要注意的是,該內(nèi)存與常見的Java編寫的B/S系統(tǒng)并沒關(guān)系。用JAVA語言代替PL/SQL語言在數(shù)據(jù)庫中寫存儲(chǔ)過程才會(huì)用到這部分內(nèi)存。42精選課件大池(Largepool):下面三種情況使用到大池:并行執(zhí)行:存放進(jìn)程間的消息緩沖區(qū)RMAN:某些情況下用于磁盤I/O緩沖區(qū)共享服務(wù)器模式:共享服務(wù)器模式下UGA在大池中分配(如果設(shè)置了大池)流池(Streampool)9iR2以上增加了“流”技術(shù),10g以上在SGA中增加了流池。流是用來共享和復(fù)制數(shù)據(jù)的工具。43精選課件共享池(Sharedpool)共享池是SGA中最重要的內(nèi)存段之一。共享池太大和太小都會(huì)嚴(yán)重影響服務(wù)器性能。SQL和PL/SQL的解釋計(jì)劃、代碼,數(shù)據(jù)字典數(shù)據(jù)等等都在這里緩存。SQL和PL/SQL代碼在執(zhí)行前會(huì)進(jìn)行“硬解析”來獲得執(zhí)行計(jì)劃及權(quán)限驗(yàn)證等相關(guān)輔助操作?!坝步馕觥焙苜M(fèi)時(shí)間。對于響應(yīng)時(shí)間很短的查詢,“硬解析”可以占到全部時(shí)間的2/3。對于響應(yīng)時(shí)間較長的統(tǒng)計(jì)等操作,“硬解析”所占用的時(shí)間比例會(huì)下降很多。執(zhí)行計(jì)劃及所需的數(shù)據(jù)字典數(shù)據(jù)都緩存在共享池中,讓后續(xù)相同的查詢可以減少很多時(shí)間。不使用“綁定變量”導(dǎo)致:系統(tǒng)需要花費(fèi)大量的資源去解析查詢。共享池中的代碼從不重用,系統(tǒng)花費(fèi)很大代價(jià)管理這部分內(nèi)存。

需要注意的是,SHARED_POOL_SIZE參數(shù)在9i中控制共享池中占用最大的部分,10g以上控制共享池總大小。44精選課件SGA設(shè)置沒有通用的設(shè)置,所有設(shè)置都要根據(jù)系統(tǒng)的負(fù)載、業(yè)務(wù)需求和硬件環(huán)境來進(jìn)行調(diào)整。這里只是總結(jié)出大體的設(shè)定,避免因SGA設(shè)置不當(dāng)引起的問題。45精選課件自動(dòng)SGA內(nèi)存管理在Oracle10g中引入了自動(dòng)SGA內(nèi)存管理特性,DBA可以設(shè)定SGA_TARGET告訴Oracle可用的SGA內(nèi)存為多大,由Oracle根據(jù)系統(tǒng)負(fù)載來動(dòng)態(tài)調(diào)整各組件大小,相應(yīng)的數(shù)定會(huì)保存在控制文件中,使數(shù)據(jù)庫重啟后也記得各組件大小。需要注意一下幾點(diǎn):要使用自動(dòng)SGA內(nèi)存管理,STATISTICS_LEVEL參數(shù)必須設(shè)為TYPICAL或ALL,系統(tǒng)自動(dòng)收集相應(yīng)的信息用來動(dòng)態(tài)調(diào)整SGA設(shè)定??梢栽O(shè)定某個(gè)組件的值,Oracle使用此值為該組件的最小大小可動(dòng)態(tài)調(diào)整的參數(shù):DB_CACHE_SIZE,SHARED_POOL_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE需手動(dòng)設(shè)置的參數(shù):LOG_BUFFER,STREAMS_POOL,DB_NK_CACHE_SIZE,DB_KEEP_CACHE_SIZE,DB_RECYCLE_CACHE_SIZE。46精選課件手動(dòng)SGA內(nèi)存管理1)32bit和64bit限制在32位的操作系統(tǒng)中,Oracle最大可用內(nèi)存為1.75g,也就是說SGA+PGA<=1.75g,超過這一限制的內(nèi)存將不會(huì)被Oracle用到。32位的Oracle可以裝到64位的操作系統(tǒng)上,64位的Oracle不可以裝到32位的操作系統(tǒng)上。47精選課件2)查看Oracle版本:SQL>select*fromv$version;3)各組件設(shè)置:JAVA_POOL_SIZE:如果沒用到數(shù)據(jù)庫端java的系統(tǒng),30MB足夠。LOG_BUFFER:默認(rèn)為MAX(512KB,128KB*CPU個(gè)數(shù))。一般系統(tǒng)1MB足夠,運(yùn)行大型事務(wù)的系統(tǒng)可以設(shè)為2MB,讓1/3滿寫入日志文件時(shí)可以繼續(xù)寫入緩沖,再大也沒有意義。SHARED_POOL_SIZE:過大過小都會(huì)嚴(yán)重影響系統(tǒng)性能,1GB內(nèi)存可以設(shè)為100MB,2GB內(nèi)存可設(shè)為150MB,4GB內(nèi)存可設(shè)為300MB。共享池命中過低首先要調(diào)整的是應(yīng)用程序而不是擴(kuò)大共享池。使用綁定變量可以減少共享池需求、提高命中率,減少共享池管理負(fù)擔(dān)和LATCH競爭。LARGE_POOL_SIZE:使用專用服務(wù)模式可設(shè)為30MB,除非必要,不然不建議使用共享服務(wù)器模式。DB_CACHE_SIZE:除去上述內(nèi)存外其他可用內(nèi)存都分配給該區(qū)域。48精選課件內(nèi)存和操作系統(tǒng)的聯(lián)系系統(tǒng)shmmax決定物理內(nèi)存大小echo10000000>/pro/sys/kernel/shmmax要想重啟生效,修改/etc/sysctl.conf文件ipcs-sa--顯示共享內(nèi)存分配情況kernel.shmmax=10000000[root@localhost~]#ipcs-sa------SharedMemorySegments--------keyshmidownerpermsbytesnattchstatus0x0000000032768root6447220x0000000065537root6441638420x0000000098306root64428020x00000000131075gdm6003932162dest0xd2f70b08

163844oracle64016986931218ipcrm-q163844--釋放共享內(nèi)存49精選課件如何診斷和解決CPU高度消耗(100%)問題1.通過top命令查看top--找到有問題的pid2.找到存在問題的進(jìn)程信息ps-ef|grep20521--找到問題的進(jìn)程3.捕獲存在問題的SQl語句select/*+ordered*/sql_textfromv$sqltextawhere(a.hash_value,a.address)in(selectdecode(sql_hash_value,0,prev_hash_value,sql_hash_value),decode(sql_hash_value,0,prev_sql_addr,sql_address)fromv$sessionbwhereb.paddr=(selectaddrfromv$processcwherec.spid='&pid'))orderbypieceasc;--獲得session相關(guān)聯(lián)的信息(輸入ps-ef|grep20521查出的pid號)4.連接數(shù)據(jù)庫,找到問題SQL及過程5.進(jìn)一步跟蹤50精選課件第五章重做(REDO)Redo的作用:Oracle通過Redo來保證數(shù)據(jù)庫的事務(wù)可以被重演,從而使得在故障之后,數(shù)據(jù)可以被恢復(fù)。Redo對于Oracle數(shù)據(jù)庫來說至關(guān)重要。在數(shù)據(jù)庫中,Redo的功能主要通過3個(gè)組件來實(shí)現(xiàn):RedoLogBuffer、LGWR后臺進(jìn)程和RedoLogFile(在歸檔模式下,RedoLogFile最終會(huì)經(jīng)由ARCn進(jìn)程寫出為歸檔日志文件)。RedoLogBuffer位于SGA之中,是一塊循環(huán)使用的內(nèi)存區(qū)域,其保存數(shù)據(jù)庫變更的相關(guān)信息。這些信息以重做條目(RedoEntries)形式存儲(chǔ)(RedoEntries也經(jīng)常稱為RedoRecords)。RedoEntries包含重構(gòu)、重做數(shù)據(jù)庫變更的重要信息,這些變更包括INSERT、UPDATE、DELETE、CREATE、ALTER或者DROP等。RedoEntries的內(nèi)容被Oracle數(shù)據(jù)庫進(jìn)程從用戶的內(nèi)存空間(PGA)復(fù)制到SGA中的RedoLogBuffer之中。RedoEntries在內(nèi)存中占用連續(xù)的順序空間,由于RedoLogBuffer是循環(huán)使用的,Oracle通過一個(gè)后臺進(jìn)程LGWR不斷把RedoLogBuffer的內(nèi)容寫出到RedoLogFile中,RedoLogFile同樣是循環(huán)使用的。51精選課件Redo的原理:我們知道,用戶數(shù)據(jù)通常在BufferCache中修改,Oracle通過高速緩存來提高數(shù)據(jù)操作的性能。當(dāng)用戶在BufferCache中修改數(shù)據(jù)時(shí),Oracle并不會(huì)立即將變更數(shù)據(jù)寫出到數(shù)據(jù)文件上,因?yàn)楠?dú)立的離散寫出效率會(huì)很低。到目前為止,計(jì)算機(jī)系統(tǒng)中最容易出現(xiàn)瓶頸的仍然是磁盤的I/O操作,Oracle這樣做的目的是為了減少IO的壓力,當(dāng)修改過的數(shù)據(jù)達(dá)到一定數(shù)量之后,可以進(jìn)行高效地批量寫出。大部分傳統(tǒng)數(shù)據(jù)庫(當(dāng)然包括Oracle)在處理數(shù)據(jù)修改時(shí)都遵循no-force-at-commit策略。也就是說,在提交時(shí)并不強(qiáng)制寫。那么為了保證數(shù)據(jù)在數(shù)據(jù)庫發(fā)生故障時(shí)(例如:斷電)可以恢復(fù),Oracle引入了Redo機(jī)制,通過連續(xù)的、順序的日志條目的寫出將隨機(jī)的、分散的數(shù)據(jù)塊的寫出推延。這個(gè)推延使得數(shù)據(jù)的寫出可以獲得批量效應(yīng)等性能提升。同RedoLogBuffer類似,RedoLogFile也是循環(huán)使用的,Oracle允許使用最少兩個(gè)日志組。缺省的,數(shù)據(jù)庫創(chuàng)建時(shí)會(huì)建立3個(gè)日志組。Select*fromv$log;當(dāng)一個(gè)日志文件寫滿之后,會(huì)切換到另外一個(gè)日志文件,這個(gè)切換過程稱為LogSwitch。LogSwitch會(huì)觸發(fā)一個(gè)檢查點(diǎn),促使DBWR進(jìn)程將寫滿的日志文件保護(hù)的變更數(shù)據(jù)寫回?cái)?shù)據(jù)庫。在檢查點(diǎn)完成之前,日志文件是不能被重用的。52精選課件53精選課件由于Redo機(jī)制對于數(shù)據(jù)的保護(hù),當(dāng)數(shù)據(jù)庫發(fā)生故障時(shí),Oracle就可以通過Redo重演進(jìn)行數(shù)據(jù)恢復(fù)。那么一個(gè)非常重要的問題是,恢復(fù)應(yīng)該從何開始呢?如果讀取的Redo過多,那么必然導(dǎo)致恢復(fù)的時(shí)間過長,在生產(chǎn)環(huán)境中,我們必須保證恢復(fù)時(shí)間盡量的短。Oracle通過檢查點(diǎn)(Checkpoint)來縮減恢復(fù)時(shí)間。檢查點(diǎn)只是一個(gè)數(shù)據(jù)庫事件,它存在的根本意義在于減少恢復(fù)時(shí)間。當(dāng)檢查點(diǎn)發(fā)生時(shí)(此時(shí)的SCN被稱為CheckpointSCN)Oracle會(huì)通知DBWR進(jìn)程,把修改過的數(shù)據(jù),也就是此CheckpointSCN之前的臟數(shù)據(jù)(DirtyDuffer)從BufferCache寫入磁盤,在檢查點(diǎn)完成后CKPT進(jìn)程會(huì)相應(yīng)地更新控制文件和數(shù)據(jù)文件頭,記錄檢查點(diǎn)信息,標(biāo)識變更。在檢查點(diǎn)完成之后,此檢查點(diǎn)之前修改過的數(shù)據(jù)都已經(jīng)寫回磁盤,重做日志文件中的相應(yīng)重做記錄對于崩潰/實(shí)例恢復(fù)不再有用。如果此后數(shù)據(jù)庫崩潰,那么恢復(fù)只需要從最后一次完成的檢查點(diǎn)開始恢復(fù)即可。如果數(shù)據(jù)庫運(yùn)行在歸檔模式(所有生產(chǎn)數(shù)據(jù)庫,都建議運(yùn)行在歸檔模式),日志文件在重用之前必須寫出到歸檔日志文件,歸檔日志在介質(zhì)恢復(fù)時(shí)可以用來恢復(fù)數(shù)據(jù)庫故障。

54精選課件為了了解Redo的內(nèi)容,需要了解兩個(gè)概念:1.改變向量(ChangeVestor):改變向量表示對數(shù)據(jù)庫內(nèi)某一個(gè)數(shù)據(jù)塊所做的一次更改。其中包含了變更的版本號、事務(wù)操作代碼、變更從屬數(shù)據(jù)塊地址(DBA)以及更新后的數(shù)據(jù)。2.重做記錄(RedoRecord):重做記錄通常有一組改變向量組成,是一個(gè)改變向量的集合,代表一個(gè)數(shù)據(jù)庫的變更(insert、update、delete等操作),構(gòu)成數(shù)據(jù)庫變更的最小恢復(fù)單位。3.改變向量3.這里記錄的是對數(shù)據(jù)塊的修改4.改變向量4。當(dāng)事務(wù)提交之后,記錄的SCN信息,注意“MEDIARECOVERYMARKERSCN",也就是說,這是一個(gè)可以恢復(fù)的時(shí)間點(diǎn),事務(wù)的恢復(fù),必須RedoRecord為最小單位55精選課件產(chǎn)生多少Redo(試驗(yàn))setautotracetracestatinsertintocheeseselect*fromcheese;colnamefora30select,b.valuefromv$statnamea,v$mystatbwherea.statistic#=b.statistic#and=‘redosize’;--查看session的統(tǒng)計(jì)信息insertintocheeseselect*fromcheese;select,b.valuefromv$statnamea,v$mystatbwherea.statistic#=b.statistic#and=‘redosize’;--查看增加了select24650-24580fromdual;56精選課件Redo寫的觸發(fā)條件LGWR寫觸發(fā)條件有四個(gè):1.每3秒超時(shí)(Timeout)當(dāng)LGWR處于空閑狀態(tài)時(shí),它依賴與rdbmsipcmessage等待,處于休眠狀態(tài),直到3秒超時(shí)時(shí)間到2.閥值達(dá)到RedoLogBuffer1/3滿(缺省的_log_io_size等于1/3LogBuffer大小上線值為1MB,一般產(chǎn)檢的經(jīng)驗(yàn)推薦是將LogBuffer設(shè)置為3MB大小,就是因?yàn)?MB同時(shí)滿足兩個(gè)條件)RedoLogBuffer具有1MB的臟數(shù)據(jù)3.用戶提交當(dāng)一個(gè)事務(wù)提交時(shí),在RedoStream中將記錄一個(gè)提交標(biāo)記。4.DBWn寫之前如果DBWn將要寫出的數(shù)據(jù)的HighRBA超過LGWR的On-DiskRBA,DBWR將通知LGWR去執(zhí)行寫出(否則這部分?jǐn)?shù)據(jù)在Recovery時(shí)將無法恢復(fù))。57精選課件RedoLogBuffer的大小設(shè)置

RedoLogBuffer的大小設(shè)置RedoLogBuffer的大小由初始化參數(shù)LOG_BUFFER定義,該參數(shù)的缺省值為Max(512KB,128KB*CPU_COUNT)log_buffer參數(shù)的設(shè)置是否需要調(diào)整,可以從數(shù)據(jù)庫的等待事件來判斷:selectevent#,namefromv$event_namewherename=‘logbufferspace’;--當(dāng)LogBufferSpace等待事件出現(xiàn)并且較為顯著時(shí),可以考慮增大LogBuffer以減少競爭。日志文件的大小selectgroup#,thread#,sequence#,bytes/1024/1024"Mbytes"fromv$log;--查詢r(jià)edo日志大小58精選課件如何設(shè)置日志文件的大小select*fromv$log;select*fromv$logfile;alterdataabseaddlogfilegroup4'/oracle/app/oracle/oradata/demo/redo04.log'size1M;--添加日志組altersystemswitchlogfile;--切換日志文件alterdataabsedroplogfilegroup1;--刪除日志組文件(inactive狀態(tài)下的可刪除)altersystemarchivelogsequence80;--手工歸檔日志sql>!rm/oracle/app/oracle/oradata/demo/redo01.log--清除redo數(shù)據(jù)文件alterdatabaseaddlogfilegroup3'/oracle/app/oracle/oradata/demo/redo03.log'size1Mreuse;--重新初始化使用日志59精選課件第六章回滾與撤銷updateempsetsal=4000whereempno=7788;是怎么執(zhí)行的?1.檢查empno=7788記錄在BufferCache中是否存在,如果不存在則讀到BufferCache中2.在回滾表空間的相應(yīng)回滾段事務(wù)表上分配事務(wù)槽,這個(gè)操作需要記錄Redo信息3.從回滾段讀入或者在BufferCache中創(chuàng)建sal=3000的前鏡像,這需要產(chǎn)生Redo信息并計(jì)入RedoLogBuffer4.修改Sal=4000,這是update的數(shù)據(jù)變更,需要記錄入RedoLogbuffer5.當(dāng)用戶提交時(shí),會(huì)在RedoLogBuffer記錄提交信息,并在回滾段標(biāo)記該事物為非激活(INACTIVE)注意:回滾過程也要產(chǎn)生redo,所以這個(gè)操作是很昂貴的60精選課件回滾段存儲(chǔ)的內(nèi)容UNDO中只記錄精簡信息,這些信息足以撤銷事務(wù)對于insert操作,回滾段只記錄插入記錄的rowid,如果回退,只需將該記錄根據(jù)rowid刪除即可;對于update操作,回滾段只需記錄被更新的字段的舊值即可(前映像),回退時(shí)通過舊值覆蓋新值即可完成回滾;對于delete操作,oracle則必須記錄整行的數(shù)據(jù),在回滾時(shí),Oracle通過一個(gè)反向操作恢復(fù)刪除的數(shù)據(jù)。61精選課件創(chuàng)建一個(gè)新的undo表空間,切換到這個(gè)undo表空間createundotablespaceundotbs2datafilesize50m;altersystemsetundo_tablespace='UNDOTBS2';select*fromv$rollname;62精選課件轉(zhuǎn)儲(chǔ)數(shù)據(jù)塊信息63精選課件整個(gè)事務(wù)過程被完全解析:1.首先當(dāng)事務(wù)開始時(shí),需要在回滾段事務(wù)表上分配一個(gè)事務(wù)槽2.在數(shù)據(jù)塊頭部取一個(gè)ITl事務(wù)槽,該事務(wù)槽指向回滾段頭的事務(wù)槽3.在修改數(shù)據(jù)之前,需要記錄前鏡像信息,這個(gè)信息以UNDORECORD的形式存儲(chǔ)在回滾段中,回滾段頭事務(wù)槽指向該記錄4.鎖定修改行,修改行鎖定位(lb-lockbyte)指向ITl事務(wù)槽5.數(shù)據(jù)修改可以進(jìn)行64精選課件Oracle閃回查詢特性的增強(qiáng)提供兩種閃回查詢:1.閃回版本查詢(FlashbackVersionsQuery)2.閃回事務(wù)查詢(FlashbackTransactionQuery)65精選課件使用FlashbackQuery恢復(fù)誤刪除數(shù)據(jù)首先先確認(rèn)數(shù)據(jù)庫的SCN變化:colfscnfor9999999999999999999colnscnfor9999999999999999999selectname,first_change#fscn,next_change#nscn,first_timefromv$archived_log;當(dāng)前SCN為:selectdbms_flashback.get_system_change_numberfscnfromdual;FSCN----------12930142214使用應(yīng)用用戶連接數(shù)據(jù)庫嘗試閃回:connectusername/passwordselectcount(*)fromhs_passport;66精選課件創(chuàng)建恢復(fù)表:createtablehs_passport_recovasselect*fromhs_passportwhere1=0;選擇何時(shí)SCN向前恢復(fù):selectcount(*)fromhs_passportasofscn12929970422;嘗試多個(gè)SCN,獲得最佳值(如果能得知具體時(shí)間,那么就可以獲得準(zhǔn)確的數(shù)據(jù)閃回)selectcoun(*)fromhs_passportasofscn&scn;--12929941968/--12929928784/--12928000000最后選擇恢復(fù)SCN為12929941968的時(shí)間點(diǎn)insertintohs_passport_recovselect*fromhs_passportasofscn12929941968;commit;67精選課件第七章索引引入索引的目的是為了加快查詢速度。索引只所以可以提高速度,是因?yàn)樗鼈兪前床樵儣l件存儲(chǔ)數(shù)據(jù)的,數(shù)據(jù)量少而且排列有序,便于采用數(shù)學(xué)方法進(jìn)行快速定位。另外還提供了一個(gè)指向內(nèi)容的指針,即記錄的ROWID。68精選課件建立必要的索引建立索引常用的規(guī)則如下:1、表的主鍵、外鍵必須有索引;2、數(shù)據(jù)量超過300的表應(yīng)該有索引;3、經(jīng)常與其他表進(jìn)行連接的表,在連接字段上應(yīng)該建立索引;4、經(jīng)常出現(xiàn)在Where子句中的字段,特別是大表的字段,應(yīng)該建立索引;5、索引應(yīng)該建在選擇性高的字段上;6、索引應(yīng)該建在小字段上,對于大的文本字段甚至超長字段,不要建索引;69精選課件7、復(fù)合索引的建立需要進(jìn)行仔細(xì)分析;盡量考慮用單字段索引代替:A、正確選擇復(fù)合索引中的主列字段,一般是選擇性較好的字段;B、復(fù)合索引的幾個(gè)字段是否經(jīng)常同時(shí)以AND方式出現(xiàn)在Where子句中?單字段查詢是否極少甚至沒有?如果是,則可以建立復(fù)合索引;否則考慮單字段索引;C、如果復(fù)合索引中包含的字段經(jīng)常單獨(dú)出現(xiàn)在Where子句中,則分解為多個(gè)單字段索引;D、如果復(fù)合索引所包含的字段超過3個(gè),那么仔細(xì)考慮其必要性,考慮減少復(fù)合的字段;E、如果既有單字段索引,又有這幾個(gè)字段上的復(fù)合索引,一般可以刪除復(fù)合索引;8、頻繁進(jìn)行數(shù)據(jù)操作的表,不要建立太多的索引;9、刪除無用的索引,避免對執(zhí)行計(jì)劃造成負(fù)面影響;70精選課件注意:在表上建立的每個(gè)索引都會(huì)增加存儲(chǔ)開銷,索引對于插入、刪除、更新操作也會(huì)增加處理上的開銷。71精選課件創(chuàng)建索引B樹索引createindexdept_dname_dxondept(dname)tablespacemy_tbs;--創(chuàng)建索引放到my_tbs表空間createuniqueindexemp_ename_dxonemp(ename)tablespacemy_tbs--創(chuàng)建唯一索引放到my_tbs表空間createindexemp_ename_empno_dxonemp(empno,ename)tablespacemy_tbs--創(chuàng)建復(fù)合索引位圖索引在列的基數(shù)很低時(shí)使用createbitmapindexesex_bitmap_dxonemployee(esex)tablesapcemy_tbs;反向鍵索引特殊的B樹索引,適用于有序列數(shù)的列上creatindexeid_reverse_dxonemployee(eid)reversetablesapcemy_tbs;基于函數(shù)的索引createindexedate_func_dxonemployee(to_char(edate,'yyyy-mm-dd'))tablespacemy_tbs;72精選課件管理索引合并和重建索引alterindexename_dxcoalescedeallocateunused;--合并索引alterindexename_dxrebuildtablespacemy_tbs;--重建索引監(jiān)視索引alterindexename_dxmonitoringusage;--打開監(jiān)視索引select*fromv$object_usage;--查看監(jiān)視索引信息alterindexename_dxnomonitoringusage;--關(guān)閉監(jiān)視索引刪除索引dropindexemp_ename_dx;73精選課件第八章分區(qū)表為了提高巨型數(shù)據(jù)庫的讀寫和查詢速度,將數(shù)據(jù)以分區(qū)形式保存分區(qū)是指將巨型的表或索引分隔成相對較小的,可獨(dú)立管理的部分。74精選課件5中分類:1.范圍分區(qū)createtablemytable(idnumberprimarykey,namevarchar2(8),subjectvarchar2(10),scorenumber)partitionbyrange(score)(partitionpart1valueslessthan(60)tablespacemy_tbs,--小于60存儲(chǔ)testspacepartitionpart2valueslessthan(80)tablespacemy_tbs,--大于60小于80存儲(chǔ)testspacepartitionpart3valueslessthan(maxvalue)tablespaceusers--大于80的存儲(chǔ)users);75精選課件insertintomytbvalues(1,'Yang','Java',90);--插入數(shù)據(jù)insertintomytbvalues(2,'Zhao','Java',80);--插入數(shù)據(jù)insertintomytbvalues(3,'Zhang','Java',54);--插入數(shù)據(jù)insertintomytbvalues(4,'Yang','Java',70);--插入數(shù)據(jù)select*frommytbpartition(part1);--查詢part1部分?jǐn)?shù)據(jù)select*frommytbpartition(part2);--查詢part2部分?jǐn)?shù)據(jù)select*frommytbpartition(part3);--查詢part13部分?jǐn)?shù)據(jù)76精選課件2.散列分區(qū)(通過hash算法均勻分布數(shù)據(jù)的一種分區(qū)類型)createtablepart_book2(bidnumber(4),booknamevarchar2(30),bookpricenumber(4,2),booktimedate)partitionbyhash(bid)(partitionpart1tablespacemy_tbs,partitionpart2tablespacetest);77精選課件insertintopart_book2values(1,'Oracle10g',23.5,'25-8月-10');insertintopart_book2values(2,'Struts',23.8,'25-8月-10');insertintopart_book2values(3,'ssh',23.5,'25-8月-10');insertintopart_book2values(4,'jsf',23.5,'25-8月-10');select*frompart_book2partition(part1);select*frompart_book2partition(part2);78精選課件3.列表分區(qū)(列值為非數(shù)字或日期數(shù)據(jù)類型,并且分區(qū)列的取值范圍較少時(shí)使用,例如:成績科目)createtablepart_book3(bidnumber(4),booknamevarchar2(30),bookpressvarchar2(30),booktimedate)partitionbylist(bookpress)(partitionpart1values('清華大學(xué)出版社')tablespacemy_tbs,partitionpart2values('教育出版社')tablespacetest);79精選課件insertintopart_book3values(1,'jsf','清華大學(xué)出版社','25-11月-10');insertintopart_book3values(2,'Oracle10g','清華大學(xué)出版社','25-11月-10');insertintopart_book3values(3,'Sttus2','清華大學(xué)出版社','25-11月-10');insertintopart_book3values(4,'ssh','教育出版社','25-11月-10');select*frompart_book3partition(part1);select*frompart_book3partition(part2);80精選課件4.組合范圍散列分區(qū)5.組合范圍列表分區(qū)81精選課件曾加、合并、刪除分區(qū)為范圍分區(qū)表增加分區(qū)altertabletestaddpartitionpart4valuesthen(150);--增加分區(qū)altertabletestsplitpartitionpart2at(70)into(partitionpart6,partitionpart7);--在part2上分隔為part7,part8altertabletestsplitpartitionpart3at(90)into(partitionpart8,partitionpart9);82精選課件為散列分區(qū)增加分區(qū)altertablepart_book2addpartitionpart3;為列表增加分區(qū)altertablepart_book3addpartitionpart3values(default);--除了其他部分值意外的所有值都存到part3合并分區(qū)altertabletestmergepartitionpart6,part7intopartitionpart2;刪除分區(qū)altertabletestdroppartitionpart3;83精選課件第九章表空間默認(rèn)的表空間system,sysaux,temp,undotbsl,user查看數(shù)據(jù)庫的表空間selecttablespace_namefromdba_tablesspaces;84精選課件非標(biāo)準(zhǔn)數(shù)據(jù)塊表空間blocksize--指定數(shù)據(jù)塊大小db_nk_cache_size--緩沖區(qū)大小2kdb_2k_cache_size4kdb_4k_cache_size8kdb_8k_cache_size16kdb_16k_cache_size32kdb_32k_cache_sizeselecttablespace_name,block_sizefromdba_tablespaces;--查看表空間塊的大小85精選課件查看Oracle數(shù)據(jù)塊中有什么selectsegment_name,file_id,block_idfromdba_extentswhereowner='OE'andsegment_namelike'ORDERS%';--確定文件和塊ID的查詢或selectheader_file,header_blockfromdba_segmentswheresegment_name='PERSONS';altersystemdumpdatafile379block3281;--在數(shù)據(jù)庫的默認(rèn)跟蹤目錄(udump)中產(chǎn)生一個(gè)塊轉(zhuǎn)儲(chǔ)selectnamefromsys.obj$whereobj#='4916681';--從塊中得到信息showparameterdbshowparameterdb_16kalterbigspacesetdb_16k_cache_size=16M;--修改表空間塊的大小createtablespaceblockspacedatafile'd:\blockspace.dbf'size10Mblocksize16k;--創(chuàng)建表空間blockspace,塊大小為16k86精選課件創(chuàng)建表空間createtemporary(臨時(shí)表空間),unido(基本表空間)tablespacetable_nameselectuserfromdual;--查看當(dāng)前用戶createtablespacetabsdatafile'E:\oracle\orcl\tabs.dbf'size10m;--創(chuàng)建表空間alterusertestdefaulttablespacetabs;--把tabs表空間作為test用戶的默認(rèn)表空間grantunlimitedtablespace,dbatotest;--授權(quán)test用戶表空間和dba權(quán)限connecttest/test11--鏈接到test用戶createtabletre(tchar(10),renumber);--創(chuàng)建表87精選課件創(chuàng)建帶參數(shù)表空間參數(shù)createtablespacemyspacedatafile'd:\myspace.dbf'size10Mautoextendonnext5Mmaxsize100M;--創(chuàng)建表空間myspace存放到d:\myspace.dbf里,大小為10M,自動(dòng)擴(kuò)展為5M,最大為100M創(chuàng)建臨時(shí)表空間組createtemporarytablespacetempgrouptempfile'd:\tempgroup.dbf'size5Mtablespacegroupgroup01;--創(chuàng)建臨時(shí)表空間tempgroup,并放入tempgroup01表空間組select*fromdba_tablespace_groups;--查看表空間組createtemporarytablespacetempgroup01tempfile'd:\tempgroup01.dbf'size5Mtablespacegroupgroup01;--創(chuàng)建表空間tempgroup01,并放入tempgroup01表空間組altertablespacetempgrouptablespacegroupgroup2;--把tempgroup表空間移到group2表空間組里88精選課件創(chuàng)建大文件表空間createbigfiletablespacebigspacedatafile'd:\bigspace.dbf'size10M;--創(chuàng)建大文件表空間selecttablespace_name,bigfilefromdba_tablespaces;--查看大文件表空間selectproperty_name,property_value,descriptionfromdatabase_propertieswhereproperty_name='DEFAULT_TBS_TYPE';--查看表空間類型表創(chuàng)建撤銷表空間createundotablespaceundotbsdatafile'd:\undotbs.dbf'size20Mautoextendon;--創(chuàng)建撤銷表空間altertablspaceupdotbsadddatafile'd:\undo02.dbf'size10M;--增加撤銷數(shù)據(jù)文件alterdatabasedatafile‘d:\undo02.dbf’resize15M;--修改撤銷表空間數(shù)據(jù)文件的大小altertablespaceundotbsoffline;--修改撤銷表空間狀態(tài)89精選課件表空間管理設(shè)置默認(rèn)表空間alterdatabasedefaulttemporarytablespacemyspace;--修改默認(rèn)的臨時(shí)表空間為myspacealterdatabasedefaulttablespacemyspace;--修改默認(rèn)的普通表空間為myspaceselectdefault_tablespacefromuser_users;--查詢當(dāng)前用戶的默認(rèn)表空間selectproperty_name,property_valuefromdatabase_propertieswhereproperty_namein('default_permanent_tablespace','default_temp_tablespace');--查詢默認(rèn)表空間createtablespacetestspacedatafile'd:\testspace.dbf'size10M;--創(chuàng)建默認(rèn)表空間alterdatabasedefaulttablespacetestspace;alterdatabasedefaulttemporarytablespacemytemp;90精選課件設(shè)置表空間狀態(tài)altertablespacemyspaceonline--設(shè)置表空間在線狀態(tài)altertablespacemyspaceoffline--設(shè)置表空間為離線狀態(tài),可以進(jìn)行數(shù)據(jù)庫備份和數(shù)據(jù)庫升級和維護(hù)等操作altertablespacemyspaceofflinenormal--設(shè)置表空間以正常方式進(jìn)入離線狀態(tài),并設(shè)置檢查點(diǎn)altertablespacemyspaceofflinetemporary--設(shè)置表空間以臨時(shí)方式進(jìn)入離線狀態(tài),不設(shè)置檢查點(diǎn)altertablespacemyspaceofflineimmediate--設(shè)置表空間立即方式進(jìn)入離線狀態(tài),不設(shè)置檢查點(diǎn)altertablespacemyspaceofflineforrecover--設(shè)置表空間恢復(fù)方式進(jìn)入離線狀態(tài)altertablespacemyspacereadonly--設(shè)置表空間為只讀狀態(tài)(只能查看)altertablespacemyspacereadwrite--設(shè)置表空間為正常狀態(tài)(可進(jìn)行增,刪改,查操作)selecttablespace_name,statusfromdba_tablespaces--查看表空間狀態(tài)91精選課件增加表空間大小alterdatabasedatafile'd:\myspace.dbf'resize20M;--修改數(shù)據(jù)文件大小來增加表空間大小altertablespacemyspaceadddatafile'd:\myspace_new.dbf'size10Mautoextendonnext5Mmaxsize100M;--增加新的數(shù)據(jù)文件來增加表空間的大小selecttablespace_name,bytesfromdba_data_files;--查看表空間數(shù)據(jù)文件大小修改表空間文數(shù)據(jù)件的自動(dòng)擴(kuò)展性alterdatabasedatafile'd:\demo\myspace.dbf'autoextendoff--關(guān)閉自動(dòng)擴(kuò)展性alterdatabasedatafile'd:\demo\myspace.dbf'autoextendonnext5Mmaxsize100M;--開啟自動(dòng)擴(kuò)展性并設(shè)增量5M最大為100M92精選課件數(shù)據(jù)文件狀態(tài)onlineofflineofflinedroalterdatabasedatafile'd:\myspace.dbf'autoextendonnext5Mmaxsize100M;alterdatabasedatafile'd:\myspace.bdf'offline;93精選課件移動(dòng)表空間中的數(shù)據(jù)文件selecttablespace_name,file_namefromdba_data_fileswheretablespace_name='MYSPACE';--查看表空間altertablespacemyspacerenamedatafile'd:\myspace_new.dbf'to‘f:\myspace02.dbf’;--移動(dòng)數(shù)據(jù)文件路徑重命名表空間altertablespacemyspaceoffline;altertablespacemyspacerenametomyspace_new;94精選課件刪除表空間droptablespacemyspaceincludingcontentsanddatafiles;--刪除表空間連視圖等對象一起刪除并將數(shù)據(jù)文件一起刪除droptablespacemyspaceanddatafiles;--刪除表空間并連數(shù)據(jù)文件一起刪除95精選課件重命名表空間的數(shù)據(jù)文件1.altertablespacemyspaceofflinnormal;2.退出sqlplus3.關(guān)閉服務(wù)4.重命名數(shù)據(jù)文件5.開啟服務(wù)6.啟動(dòng)sqlplus7.altertablespacemyspacerenamedatafile'd:\myspace.dbf','d:\,myspace01.dbf‘to'd:\myspace11.dbf','d:\myspace22.dbf';或者alterdatabaserenamefile'd:\myspace.dbf','d:\,myspace01.dbf‘to'd:\myspace11.dbf','d:\myspace22.dbf';8.altertablespaceonline;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論