




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
ORACLEDBAJan-15-20001ORACLE數據庫培訓訓教材數據庫管理員員(DBA))預備知識SQL語句PL/SQL關系數據庫基基本原理相關知識UNIXNT網絡Jan-15-20002ORACLE數據庫培訓訓教材ORACLE數據庫簡介當前主流數據據庫及其簡介介ORACLESYSBASEINFORMIXSQLSERVERDB2關系數據庫概概念簡介ORACLE數據庫結構構Jan-15-20003ORACLE數據庫培訓訓教材關系數據庫簡簡介關系數據庫元元素實體和聯系鍵(key))數據完整性SQL語言Jan-15-20004ORACLE數據庫培訓訓教材關系數據庫元元素Jan-15-20005ORACLE數據庫培訓訓教材實體和聯系實體(Entity)::客觀存在的的并可相互區(qū)區(qū)分的“事物物”實體通常成為為表,表由行行和列組成,,每一行描述述實體的一個個示例,每一一列描述實體體的一個特征征實體在邏輯數數據庫設計時時被確定聯系(Relation):實體之之間存在的對對應或連接關關系一對一關系((1:1)::表中的一行行與相關表中中的零行或多多行相關一對多關系((1:n)::表中的一行行與相關表中中的零行或多多行相關多對多關系((n:m)::表中的多行行與相關表中中的零行或多多行相關聯系的實現::在關系數據據庫設計中,,聯系通常利利用邏輯鍵來來實現。Jan-15-20006ORACLE數據庫培訓訓教材鍵(key))主鍵超鍵(SuperKey):在一一個關系中能能唯一表示元元組的屬性集集侯選鍵(CandidateKey):一一個屬性集能能唯一標識元元組而又不含含多余的屬性性主鍵(PrimaryKey)::被選用的侯侯選鍵外鍵公共鍵(CommonKey)::兩個關系中中具有相容((或相同)的的屬性或屬性性組外鍵(ForeignKey)::如果公共鍵鍵是其中一個個關系的主鍵鍵,那么這個個公共鍵在另另一個關系中中稱為外鍵組合鍵組合鍵(CompositKey):由兩個個或兩個以上上屬性(列))組成的鍵Jan-15-20007ORACLE數據庫培訓訓教材數據完整性(DataIntergrity)實體完整性關系中的元組組在組成主鍵鍵的屬性上不不能有空值,,也不能有重重復值,否則則就不能起到到唯一標識元元組的作用域完整性關系中的屬性性取值的正確確性限制,包包括數據類型型、精度、取取值范圍、是是否允許空值值等參照完整性反映了實體之之間存在的某某種約束條件件。要求外鍵鍵的值不允許許參照不存在在的主鍵的值值,它使主鍵鍵和外鍵之間間的值保持一一致或相容,,來維護數據據庫數據的一一致性或相容容性業(yè)務規(guī)則一般包括數據據完整性、參參照完整性、、遵循組織的的任一其他需需求,以便保保證業(yè)務的正正確運行Jan-15-20008ORACLE數據庫培訓訓教材SQL語言言(StructureQueryLanguage))數據操縱語言言(DML))SELECTDELETEINSERTUPDATE數據定義語言言(DDL))CREATE定義數數據庫實體結結構ALTER修修改數據庫庫實體結構DROP刪刪除數據庫實實體GRANT/REVOKE數據庫對對象的權限管管理數據控制語言言(DCL))COMMIT/ROLLBACKSAVEPOINTJan-15-20009ORACLE數據庫培訓訓教材SQL*PLUSSQL*NET字符集SQL*PLUS數據庫對象介介紹Jan-15-200010ORACLE數據庫培訓訓教材TNSTNS是TransparentNetworkSubstrate(透明明網絡層)的的縮寫如何配置TNS使CLIENT同SERVER建立聯系服務器上監(jiān)聽聽進程與listener.ora文件客戶機上tnsnames.ora文件如何配置BDE使DELPHI同ORACLE建立聯系Jan-15-200011ORACLE數據庫培訓訓教材listener.oraLISTENER=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=00)(PORT=1521)))SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=ora1)(ORACLE_HOME=/oracle/app/oracle/product/8.0.5)))Jan-15-200012ORACLE數據庫庫培訓教材材tnsnames.orayy1=(description=(address=(protocol=tcp)(host=00)(port=1521))(connect_data=(sid=ora1)))Jan-15-200013ORACLE數據庫庫培訓教材材SQL*PLUSSQL*PLUS常常用命令介介紹DUAL空空表的作用用SQL語語句SQL常用用函數介紹紹SQL*PLUS使使用常用技技巧Jan-15-200014ORACLE數據庫庫培訓教材材SQL*PLUS常常用命令介介紹SET(設設置當前的的SQL*PLUS的系統環(huán)環(huán)境):ECHO,,HEADING,,SERVEROUPUT,,TIMING,TIME,,LONG,LINESIZE,ARRAYSIZE,,AUTOCOMMIT,COPYCOMMIT,PAUSESHOW((顯示當前前的系統環(huán)環(huán)境):USERSAVE存存儲當前的的內容到某某一文件::SAVE文文件名GET讀取取某一文件件的內容::GET文文件名RUN和/(運行行當前的文文件或某一一特定的文文件):RUN可運運行當前緩緩沖區(qū)中的的內容也可可運行某一一特定的文文件。CONN連連接某一用用戶:CONNusername/password@aliasJan-15-200015ORACLE數據庫庫培訓教材材SQL*PLUS常常用命令介介紹DISC從從某一連接接中退出::DISCCOLUMN格式化化某一列的的顯示格式式:COLUMNCOLUMN_NAMEFORMATAXXXDESC查查看某一對對象的描述述:DESCOBJECT_NAMEEDIT編編輯當前緩緩沖區(qū)中的的內容或某某一特定的的文件:EDIT或或EDLIST顯顯示當前緩緩沖區(qū)中的的內容:LIST或或LSPOOL把運行結結果重定向向:SPOOL某一文文件,結束束SPOOLOFF,默認認的擴展名名為LSTJan-15-200016ORACLE數據庫庫培訓教材材SQL*PLUS常常用命令EXIT::退出當前前的連接@和@@:運行行單獨的腳腳本和在腳腳本中運行行腳本@cre.sql@@cre.sqlAPPEND:在當當前的語句句的末尾增增加內容append或aCHANGE:改變變當前最后后一行的內內容,用特特定的內容容替換指定定的內容。。C/student/teacher清屏命令::SHIFT+DEL(clearscr)Jan-15-200017ORACLE數據庫庫培訓教材材SQL語語句SELECT:作用:根據WHERE條件件從表,視視圖,SNAPSHOT中獲獲取數據。。語法:selectdistinct(alldefault)column_name(expt,*)fromtable(view,snapshot,subquery[selectlist])@dblinkwhere(startwithcondition)(connectbycondition)groupbyexpr(havingcondition)union(unionall,minus,intersect)orderby(expr,position,c_alias)asc(desc)forupdateof(table,viewsnapshot)columnnowaitJan-15-200018ORACLE數據庫庫培訓教材材SQL語語句UPDATE:作用:該語句用于于修改表或或基表的VIEW中中的已存在在的數據,,如果要執(zhí)執(zhí)行該語句必必須擁有UPDATEPRIVILEGE。。語法:updatetable(view,snapshot)@dblinkt_aliasset(column_arraay)=subquery2orcolumn=valueor=subquery3whereconditionJan-15-200019ORACLE數據庫庫培訓教材材SQL語語句INSERT:作用:該語句用于于插入單條條或一組記記錄到相應應的表和基基于單表的的VIEW,如果要執(zhí)行行該語句必必須擁有INSERTPRIVILEGE。。語法:insertintoschema.table(vieworsubquery1)@dblink(column_name)values(column_values)(orsubquery2)(asselect………from………)Jan-15-200020ORACLE數據庫庫培訓教材材SQL語語句DELETE:作用:該命令用于于從表或基基于單表的的VIEW中刪除一一些記錄,,如果要執(zhí)行該語句句必須擁有有DELETEPRIVELEGE。語法:delete[from]table(view)@dblinkaliaswhereconditionCOMMIT:ROLLBACK::Jan-15-200021ORACLE數據庫庫培訓教材材SQL語語句CREATETABLE::CREATETABLE((COLUMNNAME))CREATETABLEASSELECTCOLUMNNAME(*)FROMTABLE_NAMECOPYFROMTOREPLACE(CREATE)ALTERTABLE:DROPTABLE:CREATE(ALTER/DROP)INDEX::Jan-15-200022ORACLE數據庫庫培訓教材材常用SQL函數NVL:把把空值用某某一特定值值進行替換換DECODE:作用用是對特定定的值進行行選擇,并并指定一默默認值TO_CHAR:把把某一數據據類型轉換換成CHAR型TO_DATE:把把某一數據據類型轉換換成DATE型,須須考慮特定定的數據格格式TO_NUMBER:把某一一數據類型型轉換成NUMBER型LTRIM::把把某某一一CHAR型型數數據據的的左左邊邊空空格格刪刪除除RTRIM::把把某某一一CHAR型型數數據據的的右右邊邊空空格格刪刪除除INSTR::獲獲取取某某些些字字符符在在某某一一字字符符串串中中的的位位置置SUBSTR::把把某某一一字字符符串串截截取取特特定定長長度度,,得得到到另另一一字字符符串串Jan-15-200023ORACLE數數據據庫庫培培訓訓教教材材常用用SQL函函數數LPAD::把把某某一一字字符符串串按按照照一一定定位位數數進進行行特特定定字字符符的的左左擴擴展展RPAD::把把某某一一字字符符串串按按照照一一定定位位數數進進行行特特定定字字符符的的右右擴擴展展CHR::把把某某一一10進進制制的的的的NUMBER轉轉換換成成相相應應的的CHARREPLACE::把把某某一一字字符符串串的的內內容容用用某某一一特特定定的的字字符符進進行行替替換換ADD_MONTHS::把把某某一一日日期期進進行行加加一一個個月月處處理理COUNT::對對某某一一數數據據進進行行個個數數統統計計SUM::對對某某一一NUMBER型型數數據據進進行行相相加加處處理理MAX::提提取取某某一一NUMBER型型數數據據的的最最大大值值MIN::提提取取某某一一NUMBER型型數數據據的的最最小小值值Jan-15-200024ORACLE數數據據庫庫培培訓訓教教材材其他他通配配符符:完全全通通配配符符::%可可匹匹配配任任意意各各字字符符。。部分分通通配配符符::_可可匹匹配配單單個個字字符符偽列列類類型型:CURRVAL和和NEXTVAL::提取取SEQUENCE中中的的當當前前值值和和下下一一值值。。在在使使用用時時應應先先使使用用NEXTVAL,,才才能能使使用CURRVALLEVEL:對于SELECT語句中中的層次查詢詢返回的層次次ROWID:數據的物理地地址,類似于于指針,由18位組成,,BLOCKID(8位位).COLUMNID(4位).FILEID(4位)ROWNUM:得到返回的行行的個數Jan-15-200025ORACLE數據庫培訓訓教材SQL*PLUS使用常常用技巧在SQL*PLUS環(huán)境境中如何進行行交互式輸入入:利用替代符&如何利用SQL生成SQL腳本:SPOOL的的功能如何在兩個數數據庫中進行行數據的復制制:COPYFROM……TO…[APPEND,CREATE,INSERT,REPLACE]Jan-15-200026ORACLE數據庫培訓訓教材數據庫對象介介紹CLUSTERDATABASELINKFUNCTIONINDEXTABLEPROCEDUREPACKAGEPACKAGEBODYSEQUENCESYNONYMTRIGGERVIEWJan-15-200027ORACLE數據庫培訓訓教材DBA日常工工作數據庫管理員員(DBA))職責:數據庫物理設設計數據庫啟動/關閉數據庫安裝,,配置數據庫存儲管管理數據庫安全管管理數據庫故障檢檢測網絡管理數據庫性能檢檢測及優(yōu)化數據庫備份與與恢復Jan-15-200028ORACLE數據庫培訓訓教材定時檢查alert.log文件用utlbstat/utlestat產生數數據庫性能報報告對應用進行跟跟蹤分析*對OPS定時檢測沖沖突情況定時對數據庫庫中的表和索索引進行統計計和分析數據庫用戶和和安全管理數據庫表空間間管理協助應用開發(fā)發(fā)人員進行設設計和分析數據庫故障處處理(數據庫庫補?。?..Jan-15-200029ORACLE數據庫培訓訓教材ORACLE數據庫結構構SGA(SystemGlobalArea)DatabasebufferSharepoolRedobuffer用戶進程DBWRSMONPMONLGWRARCHRECOLcknDnnnCKPTDatafilesControlfilesRedologfilesJan-15-200030ORACLE數據庫培訓訓教材ORACLE實例(instance)DBWRLGWRCKPTSMONPMONinstanceSGADatabufferRedoLogbufferLibrarycacheDatadictionarycacheSharedpoolControlfilesControlfilesControlfilesdatafilesControlfilesRedologfilesALTERfileParameterfilePasswordfileUserProcessServerProcessPGABackgroundprocessARCHArchivedlogfilesJan-15-200031ORACLE數據庫培訓訓教材OracleServerControlfilesControlfilesUserProcessServerProcessClientServerPGAJan-15-200032ORACLE數據庫培訓訓教材UserprocessServerprocessSELECT*FROMempORDERBYename;statementhandlehandleresultsOKOKparseExecuteFetchDML語句執(zhí)行過程程Jan-15-200033ORACLE數據庫培訓訓教材DBWRLGWRCKPTSMONPMONinstanceSGADatabufferRedoLogbufferLibrarycacheDatadictionarycacheSharedpoolARCHControlfilesControlfilesControlfilesdatafilesControlfilesRedologfilesServerProcessUPDATEempSETsal=sal*2WHEREempname=‘王王海’13452DML語句執(zhí)行過程程Jan-15-200034ORACLE數據庫培訓訓教材COMMIT語句執(zhí)行行過程DBWRLGWRCKPTSMONPMONinstanceSGADatabufferRedoLogbufferLibrarycacheDatadictionarycacheSharedpoolARCHControlfilesControlfilesControlfilesdatafilesControlfilesRedologfilesServerProcessUserProcess1234Jan-15-200035ORACLE數數據庫庫培訓訓教材材系統管管理工工具svrmgrl/svrmgrmsqldbaorapwdSQL*LoaderExport/ImportOEMJan-15-200036ORACLE數數據庫庫培訓訓教材材svrmgrl常用用命令令Jan-15-200037ORACLE數數據庫庫培訓訓教材材啟動與與關閉閉數據據庫步步驟SHUTDOWNNOMOUNTMOUNTOPEN實例啟啟動打開實實例所需要要的控制文文件打開控控制文件中中定義的所所有文件12Jan-15-200038ORACLE數數據庫庫培訓訓教材材ORACEL數數據庫庫啟動動啟動命命令STARTUP[FORCE][RESTRICT][PFILE=filename][EXCLUSIVE|PARALLEL|SHARED][OPEN[RECOVER][database]|MOUNT|NOMOUNT]并行數數據庫庫啟動動步驟驟-啟啟動DLM鎖-startupparallel-啟啟動監(jiān)監(jiān)聽進進程Jan-15-200039ORACLE數數據庫庫培訓訓教材材ORACLE數數據庫庫關閉閉關閉數數據庫庫命令令shutdown[normal|transactional|immediate|abort]關閉數數據庫庫步驟驟-停停止監(jiān)監(jiān)聽進進程-查查看系系統中中是否否存在在活動動進程程-用用normal方式式或shutdownimmediate關關閉數數據庫庫Jan-15-200040ORACLE數數據庫庫培訓訓教材材SHUTDOWN方方式Jan-15-200041ORACLE數數據庫庫培訓訓教材材ORACLE安裝配配置設置環(huán)環(huán)境變變量NTORADMIN80-NEW-SIDTEST-INTPWDpassword-STARTMODEauto-PFILEinittest.oraUNIXORACLE_HOMEORACLE_SID......數據庫庫安裝裝參數設設置Jan-15-200042ORACLE數數據庫庫培訓訓教材材創(chuàng)建數數據庫庫spoolcrdbtest.lststartupnomountpfile=inittest.oraCreatedatabasetestmaxlogfiles10maxlogmembers5maxdatafiles100maxloghistory100logfilegroup1(‘/dev/rdrd/drd4’’,’’/dev/rdrd/drd5’)size10m,group2(‘/dev/rdrd/drd6’’,’’/dev/rdrd/drd7’)size10mdatafile‘/dev/rdrd/drd10’’size100mcharactersetzhs16cgb231280;Jan-15-200043ORACLE數數據庫庫培訓訓教材材創(chuàng)建數數據庫庫--創(chuàng)建數數據字字典sql.bsq創(chuàng)建數數據庫庫基表表catalog.sql數據字字典視視圖catproc.sqlPL/SQLdbms*.sql&prvt*.plb數據庫庫包體體/包包頭pupbld.sqlJan-15-200044ORACLE數數據庫庫培訓訓教材材創(chuàng)建數數據庫庫--故障處處理監(jiān)控日日志文文件install.logmake.logholdfile.log常見安安裝問問題解解決Jan-15-200045ORACLE數數據庫庫培訓訓教材材控制文文件管管理控制文文件作作用控制文文件信信息數據庫庫名稱稱數據文文件定定位重做日日志文文件定定位表空間間名稱稱當前sequence號號checkpoint信信息備份信信息...控制文文件管管理備份重建保持控控制文文件的的多個個復本本Jan-15-200046ORACLE數數據庫庫培訓訓教材材V$CONTROLFILENAMEV$PARAMETERNAME(control_file)V$CONTROLFILE_RECORD_SECTIONTYPERECORDS_SIZERECORDS_TOTALRECORDS_USED控制文文件Jan-15-200047ORACLE數數據庫庫培訓訓教材材數據庫庫邏輯輯結構構DatabaseTablespaceSegmentExtentOracleBlockO/SBlockDatafileLogicalPhysicalJan-15-200048ORACLE數數據庫庫培訓訓教材材數據庫庫表空空間管管理表空間間管理理Createtablespacealtertablespacedroptablespace回滾段段管理理createrollbacksegmentalterrollbacksegmentdroprollbacksegmentJan-15-200049ORACLE數據庫庫培訓教材材表空間管理理DBA_TABLESPACEDBA_DATA_FILESDBA_SEGMENTSDBA_EXTENTSDBA_FREE_SPACEDBA_FREE_SPACE_COALESCEDJan-15-200050ORACLE數據庫庫培訓教材材重做日志(redolog)文件件重做日志文文件作用歸檔模式重做日志文文件管理-ALTERSYSTEMSWITCHLOGFILE;-ALTERSYSTEMCHECKPOINT;-ALTERDATABASEADDLOGFILE-ALTERDATABASEADDLOGFILEMEMBER-ALTERDATABASERENAMEFILE-ALTERDATABASEDROPLOGFILE-ALTERDATABASEDROPLOGFILEMEMBER-ALTERDATBASECLEARLOGFILE-ARCHIVELOGLISTJan-15-200051ORACLE數據庫庫培訓教材材歸檔模式datafiles5051controlfile100101t1t2WithoutarchivingWitharchivingdatafiles5051controlfile100101t1t25151515151519952Jan-15-200052ORACLE數據庫庫培訓教材材重做日志(redolog)文件V$DATABASEV$INSTANCEV$THREADV$LOGV$LOGFILEJan-15-200053ORACLE數據庫庫培訓教材材數據庫用戶戶管理用戶管理createuseralteruserdropuser用戶權限.profileJan-15-200054ORACLE數據庫庫培訓教材材數據庫備份份方案數據庫的備備份方案有有以下幾種種:全部或部分分卸出備份份(exp)增量卸出備備份冷備份熱備份歸檔備份整個文件系系統的復制制Jan-15-200055ORACLE數據庫庫培訓教材材卸出備份份(exp)exphelp=yExample:expscott/tigerfile=exp.dmplog=exp.logbuffer=4096000full=y/nindexes=[y]/nrows=[y]/ncompress=[y]/nOWNERlistofownerusernamesTABLESlistoftablenamesGRANTSexportgrants(Y)INCTYPEincrementalexporttypeINDEXESexportindexes(Y)CONSTRAINTSexportconstraints(Y)CONSISTENTcross-tableconsistencySTATISTICSanalyzeobjects(ESTIMATE)Jan-15-200056ORACLE數數據庫培培訓教材材歸檔備份份(必須須和冷/熱備份份結合使使用)1.數據據庫必須須運行在在archive模式式下svrmgrl>startupmountsvrmgrl>alterdatabasearchivelog;2.冷/熱備份份3.數據據庫控制制文件備備份Jan-15-200057ORACLE數數據庫培培訓教材材數據庫恢恢復數據庫恢恢復:數據表空空間/數數據恢復復控制文件件恢復根據備份份方案的的不同,,恢復也也有以下下兩種方方法:1.數據據imp(倒入入)2.表空空間recoverJan-15-200058ORACLE數數據庫培培訓教材材imphelp=yExample:impscott/tigerfile=exp.dmpfull=yrows=yindex=ylog=imp.log注意:由于在imp的的過程中中,部分分約束及及角色將將由于對對象倒入入的先后后順序而丟失失,必須須用手工工重新創(chuàng)創(chuàng)建或進進行第二二次imp(不不倒入數數據)對比imp.log和和exp.log文件件,觀察察是否存存在數據據未倒入入Jan-15-200059ORACLE數數據庫培培訓教材材表空間恢恢復臨時表空空間:臨時表空空間并不不包含真真正的數數據,恢恢復的方方法是刪刪除臨時時表空間并重建建即可系統表空空間:系統處于于noarchivelog模式下下或備份份不可用用,重建建數據庫庫系統處于于archivelog模式式下,恢恢復步驟驟同用戶戶表空間間回滾表空空間:刪除回滾滾段,刪刪除回滾滾表空間間,重建建回滾表表空間及及回滾段段Jan-15-200060ORACLE數數據庫培培訓教材材用戶表空空間:錯誤現象象:在啟動數數據庫時時出現ORA-01157,ORA-01110或操作作系統級級錯誤如如ORA-07360;在關關閉數據據庫(使使用shutdown或shutdownimmediate)時出出現錯誤誤ORA-01116,ORA-01110及操操作系統統級錯誤誤ORA-073681.用戶戶的表空空間可以以被輕易易地重建建最近導出出的對象象是可用用的或表表空間中中的對象象可以被被輕易地地重建等等.在這種情情況下,,最簡單單的方法法是offline并并刪除該該數據文文件,刪刪除表空間并重重建表空空間以及及所有的的對象并并重建表表空間及及所有對對象.2.數數據庫運運行在archivemode下,,恢復步步驟為::將備份回回拷覆蓋蓋被損壞壞的數據據文件;;回拷((冷/熱熱)備份份后生成成的所有日志志文件svrmgrl>recoverdatafilefilename;svrmgrl>alterdatabaseopenresetlogs;Jan-15-200061ORACLE數數據庫培培訓教材材控制文件件的恢復復:1.存存在一個個或多個個控制文文件可用用關閉數據據庫,復復制可用用的控制制文件2.所所有的控控制文件件均被破破壞重建控制制文件::svrmgrl>startupnomountsvrmgrl>@cre.sql----重建建控制文文件腳本本Jan-15-200062ORACLE數數據庫培培訓教材材CREATECONTROLFILEREUSEDATABASE"YY1"NORESETLOGSNOARCHIVELOGMAXLOGFILES32MAXLOGMEMBERS2MAXDATAFILES256MAXINSTANCES8MAXLOGHISTORY800LOGFILEGROUP1'/dev/rdrd/drd1'SIZE10M,GROUP2'/dev/rdrd/drd2'SIZE10M,GROUP3'/dev/rdrd/drd6'SIZE10M,DATAFILE‘/usr/ora/db/system.dbf',’/usr/ora/db/rbs.dbf',’…...';RECOVERDATABASEALTERDATABASEOPEN;Jan-15-200063ORACLE數據庫培訓訓教材數據庫優(yōu)化數據庫優(yōu)化工工作重要性數據庫優(yōu)化過過程數據庫優(yōu)化基基礎知識數據庫優(yōu)化內內容數據庫性能診診斷工具優(yōu)化技巧及腳腳本ORACLE技術熱線Jan-15-200064ORACLE數據庫培訓訓教材數據庫基礎知知識ORACLE數據庫系統統數據存儲的的物理結構和和邏輯結構模式對象的組組成ORACLE數據庫系統統的進程以及及內存結構構構成ORACLE鎖的概念介介紹二階段提交的的概念用戶、角色、、權限的概念念的介紹舉例介紹ORACLE是是如何處理一一個事務Jan-15-200065ORACLE數據庫培訓訓教材ORACLE事務處理過過程首先必須有一一臺主機或數數據庫服務器器運行一個ORACLEINSTANCE工作站運行一一個應用,它它試圖通過適適當的SQL*NET驅驅動同服務器器取得聯系如果該服務器器也正在運行行適當的SQL*NET驅動。服務務器檢測到應應用的連接請請求,開始為為此用戶進程程創(chuàng)建一個專專用的服務器器進程客戶端的用戶戶執(zhí)行一個SQL語句并并提交此進程程服務器進程收收到此SQL語句,并開開始檢驗在ORACLE的共享池中中是否存在同同樣的SQL語句。如果果在共享池中中發(fā)現該SQL語句,服服務器進程開開始檢驗該用用戶是否對請請求的數據有有操作的權限限,然后使用用在共享池中中的SQL語語句去執(zhí)行該該語句。如果果該SQL語語句在共享池池中不存在,,就為此語句句分配一個新新的共享池區(qū)區(qū)以便它能夠夠被解析、執(zhí)執(zhí)行服務器進程從從實際的數據據文件或共享享池中取回必必須的數據服務器進程在在在共享池中中修改數據。。在上述所作作的生效之后后,DBWR后臺進程把把修改后的數數據塊永久的的寫入硬盤。。在此事務提提交成功之后后,LGWR進程立即把把此事務記錄錄到在線的redologfile如果此事務成成功,服務器器進程通過網網絡返回一個個成功的信息息給應用程序序。如果該事事務不成功,,將返回一個個適當的信息息在上述的事務務過程中,其其余的后臺進進程同樣在運運行,等待著著條件符合而而被觸發(fā)。此此外,數據庫庫服務器還管管理著其他用用戶的事務,,并且在不同同事務之間提提供數據一致致性,防止不不同事務對相相同數據操作作Jan-15-200066ORACLE數據庫培訓訓教材數據庫優(yōu)化內內容數據庫建庫優(yōu)優(yōu)化數據庫初始化化文件數據庫空間優(yōu)優(yōu)化系統設計優(yōu)化化SQL語句優(yōu)優(yōu)化SGA優(yōu)化I/O、CPU優(yōu)化系統性能瓶頸頸分析常見問題分析析Jan-15-200067ORACLE數據庫培訓訓教材數據庫空間設設計優(yōu)化表空間設計的的原則為:把由用戶創(chuàng)建建的其余表空空間同SYSTEM表空空間進行分離離把系統的數據據表空間同索索引表空間分分離把操作頻繁和和不經常操作作的表劃分在在不同的表空空間中分離用戶數據據和回滾段的的數據以防止止某個磁盤出出現故障丟失失數據為特殊類型的的數據庫使用用保留某個表表空間回滾表空間分分配原則臨時表空間分分配原則Jan-15-200068ORACLE數據庫培訓訓教材回滾段空間分分配原則一個事務的回回退信息可以以寫到當前例例程中正在被被使用的任何何的一個回滾滾段中一個事務的所所有回退信息息只能寫入一一個回滾段中中多個事務的回回退信息可以以同時寫入同同一個回滾段段中,甚至可可以同時寫入入一個EXTENT中當回滾段的EXTENT中的所有事事務都被提交交或回退了,,此EXTENT就可以以被重新使用用一旦回滾段的的某個EXTENT被重重新使用,在在此EXTENT中的所所有信息都不不在可用在系統需要更更多的空間時時,如果回滾滾段的下一個個EXTENT中有活動動事務,例程程就會擴展此此回滾段select、insert、update、、delete語句都可可能會使數據據庫從多個回回滾段去讀數數據回滾段的頭永永遠不會移入入當前被rollback的事務為為所占用的extent中當回滾段的頭頭進行擴展時時,他是按順順序的,不會會跳過環(huán)中的的EXTENT如果回回滾段段的頭頭不能能使用用下一一個extent,,它就就會另另外分分配一一個extent,,并把把它插插入環(huán)環(huán)中Jan-15-200069ORACLE數數據庫庫培訓訓教材材系統設設計時時作的的優(yōu)化化ORACLE存存儲儲基本本單位位----BLOCK建表參參數建索引引參數數索引結結構Jan-15-200070ORACLE數數據庫庫培訓訓教材材系統設設計時時作的的優(yōu)化化----建表表參數數Jan-15-200071ORACLE數數據庫庫培訓訓教材材SQL語句句優(yōu)化化ORACLE優(yōu)化方方式COST_BASED((基于于代價價)RULE_BASED((基于于規(guī)則則)索引的的使用用如何寫寫高效效的SQL語句句寫相同同的SQL語句句,保保證程程序能能夠利利用共共享池池的內內容,,加快快程序序的執(zhí)執(zhí)行速速度寫能夠夠利用用索引引并且且能夠夠符合合基于于代價價的優(yōu)優(yōu)化條條件的的SQL語語句盡量利利用PL/SQL的的特性性減少少網絡絡的傳傳輸使用存存儲過過程,,以減減少網網絡的的傳輸輸和提提高系系統的的編譯譯速度度Jan-15-200072ORACLE數數據庫庫培訓訓教材材無法使使用到到索引引的SQL語句句COLUMN1>((<,>=,<=)COLUMN2其中COLUMN1和COLUMN2在同同一張張表中中COLUMNIS(ISNOT)NULLCOLUMNNOTINCOLUMN!=EXPRCOLUMNLIKE‘‘%ANYTHING’’在上述述條件件中不不管COLUMN上上是否否有建建索引引,SQL語句句都不不會利利用索索引。。EXPR是是一個個表達達式,,它用用運算算符或或函數數操作作在該該列上上例如::EXPR*COLUMN=ANYTHINGNOTEXISTSSUBQUERY不包含含未被被索引引的列列的任任何條條件在LIKE表達達式中中如果果模糊糊的列列為數數字或或日期期的話話在ORACLE內部部的本本身的的數據據轉換換Jan-15-200073ORACLE數數據庫庫培訓訓教材材數據庫庫常見見性能能分析析表空間間的剩剩余空空間的的問題題表的鎖鎖的問問題表的鏈鏈接問問題索引的的查找找速度度降慢慢問題題表操作作速度度降慢慢的問問題Jan-15-200074ORACLE數數據庫庫培訓訓教材材性能檢檢測工工具EXPLAIN的使使用介介紹EXPLAINPLAN的的加強強版TKPROF的的使用用介紹紹UTLBSTAT/UBLESTAT使用用介紹紹第三方方產品品Jan-15-200075ORACLE數數據庫庫培訓訓教材材EXPLAINEXPLIANPLAN作作用執(zhí)行EXPLAINPLAN前前期準準備工工作EXPLAIN語語法explainplan((setstatementid='text’’)forstatementPLAN_TABLE結構Jan-15-200076ORACLE數數據庫庫培訓訓教材材EXPLAINPLANSelectid,parent_id,position,operation,options,object_name,object_type,costfromplan_table;PLAN_TABLE表表的主主要字字段介介紹::Statement_id該該值由由系統統在執(zhí)執(zhí)行EXPLAINPLAN時時進行行賦值值Operation表表示示該語語句每每一步步要進進行的的操作作Options表表示該該語句句每一一步要要進行行的動動作Object_name表表示示語句句中涉涉及到到的數數據庫庫對象象名Object_type表表示示語句句中涉涉及到到的數數據庫庫對象象類別別Id執(zhí)執(zhí)行行計劃劃數的的節(jié)點點值Parent_id執(zhí)執(zhí)行行計劃劃的節(jié)節(jié)點值值的父父節(jié)點點值Position表表示示對具具有相相同parent_id的的執(zhí)行行順序序Cost執(zhí)執(zhí)行行該語語句的的代價價Jan-15-200077ORACLE數數據庫庫培訓訓教材材TKPROF使用TKPROF工工具步步驟::1.svrmgrl>@utlxplan.sql修改init.ora文文件,,設置置TIMED_STATISTICS=TRUE2.sql>executedbms_system.set_sql_trace_in_session(sid,serial#,true)3.sql>executedbms_system.set_sql_trace_in_session(sid,serial#,false)4.tkproftrc_filetext_filesys=y/nexplain=user/passwdJan-15-200078ORACLE數數據據庫庫培培訓訓教教材材TKPROFTKPROF輸輸出出的的文文件件中中關關鍵鍵字字含含義義::count一一個個語語句句被被語語法法分分析析、、執(zhí)執(zhí)行行和和取取數數的的次次數數cpu對對語語句句的的所所有有語語法法分分析析,,執(zhí)執(zhí)行行或或取取數數調調用用的的總總CPU時時間間((以以秒秒計計))elapsed對對語語句句的的所所有有語語法法分分析析,,執(zhí)執(zhí)行行或或取取數數調調用用的的總總耗耗費費時時間間((以以秒秒計計))disk對對所所有有語語法法分分析析,,執(zhí)執(zhí)行行或或取取數數調調用用的的,,從從磁磁盤盤數數據據文文件件上上數數據據塊塊物物理理讀的的總總數數query對對所所有有語語法法分分析析,,執(zhí)執(zhí)行行或或取取數數調調用用的的,,以以一一致致方方式式檢檢索索的的緩緩沖沖區(qū)區(qū)總總數數,,對查查詢詢來來說說,,通通常常用用一一致致性性方方式式檢檢索索緩緩沖沖區(qū)區(qū)current以以當當前前方方式式檢檢索索的的緩緩沖沖區(qū)區(qū)總總數數。。對對INSERT,,UPDATE和和DELETE語語句通通常常用用當當前前方方式式檢檢索索緩緩沖沖區(qū)區(qū)Query和和current的的和和是是存存取取的的緩緩沖沖區(qū)區(qū)的的總數數rows由由SQL語語句句處處理理的的總總行行數數。。對對于于SELECT語語句句而而言言,,返返回回的的行行數數出出現現在取取數數的的步步驟驟,,對對UPDATE、、DELETE和和INSERT語語句句而而言言,,處處理理的的行數數出出現現在在執(zhí)執(zhí)行行步步驟驟Jan-15-200079ORACLE數數據據庫庫培培訓訓教教材材Example::在在執(zhí)執(zhí)行行tkprofora_1000.trcout.txtexplain=sys/syssys=no后后輸輸出出如如下下::…...SELECTWORK_TYPE_IDFROMWORK_AREAW,STAFF_MEMBERSWHEREW.WORK_AREA_ID=:b1ANDS.WORK_AREA_ID=:b1ANDS.STAFF_ID=:b3ANDS.STS='A'callcountcpuelapseddiskquerycurrentrows------------------------------------------------------------------Parse00.000.000000Execute10.000.000001Fetch123.00.003223022243993----------------------------------------------------------------------total223.000.003993022243993……RowsExecutionPlan----------------------------------------------------------0SELECTSTATEMENTGOAL:CHOOSE1NESTEDLOOPS43993TABLEACCESSGOAL:ANALYZED(FULL)OF'STAFF_MEMBER'29TABLEACCESSGOAL:ANALYZED(BYROWID)OF'WORK_AREA'29INDEXGOAL:ANALYZED(UNIQUESCAN)OF'SYS_C007339'(UNIQUE)…...Jan-15-200080ORACLE數數據庫培培訓教材材UTLBSTAT/UTLESTAT:設置TIMED_STATISTICS=TRUEsvrmgrl>@utlbstatsvrmgrl>@utlestat系統將生生成report.txt文文本文件件便于分分析優(yōu)化技巧巧和常用用腳本::Jan-15-200081ORACLE數數據庫培培訓教材材ORACLE技技術支持持網站Jan-15-200082ORACLE數數據庫培培訓教材材I.oerrerror_typeerror_noORACLE提提供了一一個非常常實用的的故障判判斷命令令oerr,格格式:oerroraerror_no,使使用該命命令能夠夠解決大大多數使使用ORACLE中所所遇到的的“故障障”:Example1:$oerrora30100301,00000,"errorinaddinglogfile'%s'-filecannotbecreated"http://*Cause:Thecreationofthelogfilefailed//*Action:Check:1)thereisenoughspaceonthedevice//2)thenameofthefileisvalid//3)thedeviceisonline//4)anIOerroroccurred//consultassociatederrorsforfurtherinformation.Jan-15-200083ORACLE數數據庫培培訓教材材Example2:$oerrora154201542,00000,"tablespace'%s'isoffline,cannotallocatespaceinit"http://*Cause:Triedtoallocatespaceinanofflinetablespace//*Action:Bringthetablespaceonlineorcreatetheobjectin//othertablespaceJan-15-200084ORACLE數數據庫培培訓教材材Example3:$oerrora403104031,00000,"unabletoallocate%sbytesofsharedmemory(\"%s\",\"%s\",\"%s\")"http://*Cause:Moresharedmemoryisneededthanwasallocatedinthe//sharedpool.//*Action:Eitherusethedbms_shared_poolpackagetopinlarge//packages,reduceyouruseofsharedmemory,orincreasethe//amountofavailablesharedmemorybyincreasingthevalueofthe//init.oraparameter"shared_pool_size".Jan-15-200085ORACLE數數據庫培培訓教材材II.無法自行行解決錯錯誤對于以下下錯誤,,一般是是由于ORACLE的的bug引起,,需要通通過ORACLE技術術支持解解決:ORA-00600錯錯誤00600,00000,"internalerrorcode,arguments:[%s],[%s],[%s],[%s],[%s],[%s],[%s],[%s]””//*Cause:ThisisthegenericinternalerrornumberforOracleprogram//exceptions.Thisindicatesthataprocesshasencounteredan//exceptionalcondition.//*Action:Reportasabug-thefirstargumentistheinternalerrornumberORA-07445錯誤誤Jan-15
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海各區(qū)初中言議論文考題選
- 4.3 平面鏡成像 說課稿 2025年初中人教版物理八年級上冊
- 賓館消防安全管理制度
- 合作協議的定價
- 任務未完成檢討書
- 委托書無效可以變更
- 寵物運輸國內服務協議
- 航運貨物延誤答辯狀
- 二零二五年度北京市體育館體育活動組織及推廣合同
- 模具產業(yè)園項目可行性研究報告
- (一模)東北三省三校2025年高三第一次聯合模擬考試 生物試卷(含答案)
- 金屬熔融崗位培訓課件
- 污水處理廠工程設備安裝施工方案及技術措施
- 2025年海南海口市水務局招聘事業(yè)單位人員35人歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2025年關聯公司資金往來協議
- 交警大隊合同范本
- 產業(yè)轉移課件-2024-2025學年高三一輪復習人教版(2019)地理選擇性必修2
- 2025年02月中國科協所屬單位公開招聘社會在職人員14人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年江蘇鹽城市交通投資建設控股集團有限公司招聘筆試參考題庫附帶答案詳解
- 事故隱患內部舉報獎勵制度
- 衛(wèi)生保潔管理方案及措施
評論
0/150
提交評論