Oracle數據庫維護培訓-華為_第1頁
Oracle數據庫維護培訓-華為_第2頁
Oracle數據庫維護培訓-華為_第3頁
Oracle數據庫維護培訓-華為_第4頁
Oracle數據庫維護培訓-華為_第5頁
已閱讀5頁,還剩211頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Oracle數據庫維護培訓膠片集成產品部?Oracle體系結構

?

目標通過這部分課程的學習,您將了解以下內容:描述Oracle服務器的體系結構及其主要構件列舉用戶連接到Oracle實例所涉及的結構雙機模式:RAC/HOTSTANDBY?主要組件一覽實例系統全局區重做日志緩沖區共享池數據字典緩沖區庫緩沖區DBWRSMONPMONCKPTLGWROthers用戶端進程服務器進程程序全局區控制文件數據文件歸檔日志文件參數文件密碼文件重做日志文件數據庫數據塊高速緩沖區?Oracle服務器一個Oracle服務器:是一個提供開放式的、全面的、綜合性信息管理服務的數據庫管理系統由一個Oracle數據庫和一個Oracle實例組成Oracle服務器?Oracle實例一個Oracle實例:是一種訪問Oracle數據庫的基本方式總是打開一個且只打開一個數據庫由內存結構和進程結構組成后臺進程內存結構SGARedolog

buffercacheDatabase

buffercacheSharedpoolDBWRSMONPMONCKPTLGWROthersDataDict.

cacheLibrarycache實例?創建連接和會話創建連接創建對話數據庫用戶用戶進程Oracle服務器服務器進程?Oracle數據庫Oracle數據庫:是作為一個單元對待的數據的集合體由三種文件類型組成控制文件數據文件

歸檔日志文件參數文件密碼文件重做日志文件Oracle數據庫?物理結構

Oracle數據庫的物理存儲是由實際的操作系統文件決定控制文件數據文件重做日志文件控制文件數據文件(包括數據字典)標題聯機重做日志文件?內存結構Oracle的內存結構由以下兩個內存區域構成:

系統全局區(SGA):在實例啟動的時候分配,是Oracle實例中的一個基本成分程序全局區(PGA):服務器進程啟動時分配?系統全局區系統全局區(SGA)由幾部分內存區域組成:共享池數據塊高速緩沖區重做日志緩沖區

有兩個可選擇的內存結構能配置在系統全局區內:大型池JAVA池?系統全局區系統全局區分配大小上限由SGA_MAX_SIZE參數決定.系統全局區分配原則依賴其中的組件:分配鄰近的虛擬內存大小基于SGA_MAX_SIZE?共享存儲區用來存儲最近最多執行的SQL語句和最近最多使用的數據定義.它由兩個主要的內存存結構組成:庫緩沖區數據字典緩沖區大小由參數SHARED_POOL_SIZE決定.SharedpoolDatadictionarycacheLibrarycacheALTERSYSTEMSETSHARED_POOL_SIZE=64M;?庫緩存區庫緩沖區存儲最近使用的SQL和PL/SQL語句信息:它能夠使普遍使用的語句能夠共享通過LRU算法進行管理由兩種結構組成:共享SQL區域共享PL/SQL區域其中各自的大小由共享池內部指定?數據字典緩沖區數據字典緩沖區是數據庫里最經常使用的對象定義的集合.它包括數據文件名、表、索引、列、用戶權限和其它數據庫對象等信息.在解析期間,服務器進程會查找數據字典獲取允許接入的關聯對象信息.緩存數據字典信息在內存區能提高查詢數據的響應時間.它的大小由共享池的大小決定.?數據塊高速緩沖區

數據塊高速緩沖區儲存以前從數據文件中取出過的數據塊的拷貝信息.當你得到或修改數據時,它能使性能得到提高.它通過LRU算法進行管理.由DB_BLOCK_SIZE決定大小.Databasebuffer

cache?數據塊高速緩沖區由獨立的子緩存組成:DB_CACHE_SIZEDB_KEEP_CACHE_SIZEDB_RECYCLE_CACHE_SIZE數據庫緩沖區可以動態的改變尺寸.DB_CACHE_ADVICE可以設置以收集統計信息用來預測不同的緩沖大小ALTERSYSTEMSETDB_CACHE_SIZE=96M;?重做日志緩沖區重做日志緩沖區記錄數據塊的所有變化.首要目的是恢復.記錄的信息可用來重做改變.尺寸大小由LOG_BUFFER定義.Redolog

buffercache?大型池大型池是在SGA內一種可選擇的存貯區域,只配置在共享服務器環境中.能減輕在共享池的負擔.用在UGA、備份和恢復等操作中.不使用LRU列表算法.大小由LARGE_POOL_SIZE決定.ALTERSYSTEMSETLARGE_POOL_SIZE=64M;?Java區Java區是為了解開Java命令:如果安裝并使用Java是必需的.在數據庫表格中,它存貯的方式非常像PL/SQL.它的尺寸由JAVA_POOL_SIZE參數決定.?User

process程序全局區PGA是為每個用戶進程連接Oracle數據庫分配的區域StackspaceSessioninformationsortarea,cursorinformationSGASharedSQLareasSGASessioninformationPGADedicatedserverSharedserverServer

processSharedSQLareasStackspacesortarea,cursorinformation?進程結構Oracle進程是一種程序,依賴它要求信息的類型,執行一系列的步驟或者實施一項具體的任務.

用戶進程:當數據庫用戶要求連接到Oracle服務器時開始啟動.服務器進程:連接Oracle實例,當用戶建立一個會話時開始啟動.后臺進程:Oracle實例啟動即可用.?用戶進程用戶進程是要求Oracle服務器交互的一種進程:它必須首先建立一個連接.不直接和Oracle服務器交互.DatabaseuserServer

processUser

processConnectionestablished?服務進程 服務進程是直接和Oracle服務器交互的一段程序.它響應用戶要求,向服務器發起呼叫并返回結果給用戶.可用專用服務器模式,也可用共享服務器模式創建對話.ConnectionestablishedSessioncreatedDatabaseuserUser

processOracleserverServer

process?后臺進程保持物理和內存結構的關系.必須的后臺進程DBWn PMON CKPTLGWR SMON RECO可選擇的后臺進程ARCn LMON SnnnQMNn LMDn CJQ0 PnnnLCKn Dnnn?InstanceSGADatabasebuffer

cacheDBWnControlfilesDatafilesRedologfiles數據庫復寫器DBWn開始寫:檢查點執行臟塊上限數到達緩存區沒有自由空間超時連接RAC要求表空間脫機表空間只讀清空和刪除表表空間開始備份Database?InstanceSGADBWnRedologbuffer日志復寫器LGWR開始寫:提交時三分之一緩沖區滿的時候當有1MB日志的時候 每三秒在DBWn寫之前ControlfilesDatafilesRedologfilesLGWRDatabase?InstanceSGASMON系統監控進程責任:實例恢復:回滾日志文件中的改變信息打開數據庫,讓用戶進入回滾未提交的事務每三秒接合空閑空間回收臨時段ControlfilesDatafilesRedologfilesInstanceSGASMONDatabase?InstanceSGAPMON進程監控器處理失敗后進行清理:回滾事務釋放鎖釋放其它資源重啟死的dispatchsPGAarea?InstanceSGADWW0RedoLogBufferLGWRInstanceSGADBWnLGWRCKPTControlfilesDatafilesRedologfiles檢查點負責:給DBWn發信號修改數據文件塊頭修改控制文件信息?歸檔進程(ARCn)

可選擇的后臺進程當ARCHIVELOG模式被設置時自動歸檔聯機重做日志文件保存所有數據庫變化ControlfilesDatafilesRedologfilesArchivedRedologfilesARCn?邏輯結構Oracle體系的邏輯結構描述了數據庫的物理空間怎樣運用,包括表空間、段、片區和塊.TablespaceDatafileSegmentBlocksExtentSegment?RAC方式原理結構圖?RAC方式優點良好的可伸縮性高可用性先進的CacheFusion技術降低硬件成本切換時間短缺點管理復雜對網絡有較高要求

?HOTSTANDBY(雙機熱備)方式原理結構圖?HOTSTANDBY(雙機熱備)方式優點管理較為簡單運行較為穩定缺點切換時間較長在系統切換的過程中,客戶端與服務器之間的數據庫連接會中斷,需重新連接備用機閑置,不能實現負載均衡?總結通過這部分課程的學習,您應該已經了解:解釋數據庫文件:數據文件、控制文件、聯機重做日志.解釋系統全局區內存結構:數據塊高速緩沖區、共享池、重做日志緩沖區.解釋主要的后臺進程:

DBWn,LGWR,CKPT,PMON,SMON,和ARCn雙機模式:RAC/HOTSTANDBY?管理表空間和數據文件?目標通過這部分課程的學習,您將了解以下內容:數據庫的邏輯結構創建表空間改變表空間的大小為臨時段分配空間改變表空間的狀態改變表空間的存儲參數設置?概觀ControlfilesDatafilesRedologfilesDatabase?Database邏輯上物理上TablespaceDatafileOSblockOracle

blockSegmentExtent數據庫的存儲層次?系統和非系統表空間系統表空間:隨著數據庫創建被創建包含數據字典信息包含系統回滾段非系統表空間:不同的segments分開存放(如:回滾段,臨時段,應用數據)控制分配給用戶對象的空間容量?表空間的管理本地管理的表空間:自由擴展信息被記錄在本身的位圖中位圖中的每一位都對應一個數據塊或一組數據塊位圖中的標志位顯示數據塊使用或未使用狀態信息字典管理的表空間:缺省的表空間管理方式自由擴展信息被記錄在數據字典中?本地管理的表空間簡化了數據字典中的內容空間分配和回收不產生回滾信息沒有接合鄰近extents的要求CREATETABLESPACEuserdataDATAFILE'/u01/oradata/userdata01.dbf'SIZE500MEXTENTMANAGEMENTLOCALUNIFORMSIZE256K;?字典管理的表空間Extents在數據字典中管理每個存儲在表空間的segments都可以有不同的存儲參數設置有鄰近接合extents的要求CREATETABLESPACEuserdataDATAFILE'/u01/oradata/userdata01.dbf'SIZE500MEXTENTMANAGEMENTDICTIONARY DEFAULTSTORAGE(initial1MNEXT1M);?回滾段表空間用來存儲回滾段信息不能包含其它對象Extents本地管理在創建時僅僅能使用DATAFILEandEXTENTMANAGEMENT條件CREATEUNDOTABLESPACEundo1DATAFILE'/u01/oradata/undo101.dbf'SIZE40M;?臨時表空間用來做排序操作不能包含固定的對象最好使用本地表空間管理CREATETEMPORARYTABLESPACEtempTEMPFILE'/u01/oradata/temp01.dbf'SIZE500MEXTENTMANAGEMENTLOCALUNIFORMSIZE10M;?缺省臨時表空間的限制直到新的缺省表空間被使用時才能刪除不能下線.不能將缺省的臨時表空間修改成永久表空間?刪除表空間DROPTABLESPACEuserdataINCLUDINGCONTENTSANDDATAFILES;從數據字典中刪除表空間信息通過ANDDATAFILES條件可在操作系統上刪除表空間的數據文件:?改變表空間的大小

增加數據文件改變數據文件大小:自動手動app_data_02.dbfapp_data_01.dbfapp_data_03.dbf100M100M200M100MTablespaceAPP_DATA?app_data_02.dbfapp_data_01.dbfapp_data_03.dbf100M100M200M200Mapp_data_04.dbf手動改變數據文件大小

ALTERDATABASE DATAFILE'/u03/oradata/userdata02.dbf'RESIZE200M;100MTablespaceAPP_DATA?TablespaceAPP_DATAapp_data_02.dbfapp_data_01.dbfapp_data_03.dbf100M100M200M100M在表空間中增加一個數據文件ALTERTABLESPACEapp_dataADDDATAFILE'/u01/oradata/userdata03.dbf'SIZE200M;?移動數據文件(修改表空間)表空間必須為下線狀態。目標數據文件必須存在.ALTERTABLESPACEuserdataRENAMEDATAFILE '/u01/oradata/userdata01.dbf'TO '/u01/oradata/userdata01.dbf';?獲取表空間信息表空間信息:DBA_TABLESPACESV$TABLESPACE數據文件信息:DBA_DATA_FILESV$DATAFILE臨時文件信息:DBA_TEMP_FILESV$TEMPFILE?總結通過這部分內容的學習,您應該已經了解:怎樣使用表空間分開存放數據改變表空間大小:增加數據文件擴展數據文件使用本地管理表空間使用臨時表空間?練習練習包括以下幾個主題:創建表空間修改表空間56管理重做日志文件?目標通過這部分課程的學習,您將了解以下內容:在線重做日志文件的作用在線重做日志文件的結構控制日志文件切換和檢查點執行多路復用在線重做日志文件?使用重做日志文件重做日志文件記錄數據所有的修改信息并提供一種介質失敗時的恢復機制.重做日志文件分組管理.一個Oracle數據庫要求至少有兩組重做日志文件.組中每個日志文件被稱作一個組成員.RedologfilesDatabase?重做日志文件的結構Group2Group3Group1MemberDisk1Disk2MemberMemberMemberMemberMember?重做日志文件怎樣工作重做日志文件循環使用當一個重做日志文件充滿時,LGWR將日志寫入到下個重做日志組.這個被叫做日志切換檢查點執行動作被觸發相關信息寫入控制文件?強迫日志切換并執行檢查點日志切換能使用命令ALTERSYSTEMSWITCHLOGFILE.檢查點被迫使執行:設置FAST_START_MTTR_TARGET參數ALTERSYSTEMCHECKPOINT命令ALTERSYSTEMCHECKPOINT;?log2b.rdolog1b.rdo增加在線重做日志組Group1Group2Group3ALTERDATABASEADDLOGFILEGROUP3('$HOME/ORADATA/u01/log3a.rdo','$HOME/ORADATA/u02/log3b.rdo')SIZE1M;log3b.rdolog2a.rdolog3a.rdolog1a.rdo?增加在線重做日志組成員ALTERDATABASEADDLOGFILEMEMBER'$HOME/ORADATA/u04/log1c.rdo'TOGROUP1,'$HOME/ORADATA/u04/log2c.rdo'TOGROUP2,'$HOME/ORADATA/u04/log3c.rdo'TOGROUP3;log2c.rdolog2a.rdoGroup1log1c.rdolog1b.rdolog1a.rdoGroup2log2c.rdolog2b.rdolog2a.rdoGroup3log3c.rdolog3b.rdolog3a.rdo?log2a.rdolog1a.rdoGroup1Group2Group3log3a.rdo刪除在線重做日志組ALTERDATABASEDROPLOGFILEGROUP3;?log1a.rdolog1a.rdo刪除在線重做日志組成員ALTERDATABASEDROPLOGFILEMEMBER'$HOME/ORADATA/u04/log3c.rdo';log2c.rdolog1c.rdoGroup1Group2log1b.rdolog1b.rdo?清空,重新指定位置或更名在線重做日志文件

清空在線重做日志文件:重新指定位置、更名在線重做日志文件能通過增加新日志文件,刪除舊日志文件代替.ALTERDATABASECLEARLOGFILE'$HOME/ORADATA/u01/log2a.rdo';?獲取日志組及其成員信息通過查詢下列數據字典獲取日志組及其成員信息V$LOGV$LOGFILE?歸檔日志文件裝滿的在線重做日志文件能被歸檔.歸檔在線重做日志文件兩種優勢:恢復:一套一致的數據文件完整備份與在線重做日志文件、歸檔日志文件一起能保證所有已經提交的事務恢復到先前狀態.備份:能在數據庫打開的情況下進行.缺省數據庫以非歸檔模式創建.?歸檔日志文件歸檔日志文件能通過ARCn或手工SQL歸檔得到.控制文件中記錄有歸檔日志名稱、日志序列號,在線日志文件成功歸檔時最高、最低的SCN.一個裝滿的在線日志文件需要在檢查點發生、在線日志文件被ARCn歸檔完成以后才能重新使用,否則等待.歸檔日志文件能多路復用.?總結通過這部分課程的學習,您應該已經了解:在線重做日志文件的作用怎樣獲取在線重做日志文件信息控制日志切換和檢查點執行多路復用管理多個在線重做日志文件?練習這部分練習包括以下主題:創建和增加重做日志文件組及其成員.刪除重做日志文件組及其成員.?管理用戶和權限?目標通過這部分課程的學習,您將了解以下內容:創建新的數據庫用戶修改和刪除存在的數據庫用戶監控已存在用戶的信息識別系統和對象權限授予和回收權限?數據庫模式SchemaObjectsTablesTriggersConstraintsIndexesViewsSequencesStoredprogramunitsSynonymsUser-defineddatatypesDatabaselinks模式是一種命名的對象集合一個用戶被創建,對應的模式就被創建一個用戶僅僅對應一個模式用戶名其實就等同于模式名?創建用戶所涉及內容確定用戶需要將對象存儲在哪個表空間決定每個表空間中該用戶的使用限額.指派缺省表空間和臨時表空間.開始創建一個用戶.賦予權限和角色給用戶.?創建用戶:數據庫級鑒別

設定初始口令:CREATEUSERaaronIDENTIFIEDBYsoccerDEFAULTTABLESPACEdataTEMPORARYTABLESPACEtempQUOTA15mONdataPASSWORDEXPIRE;?刪除用戶使用CASCADE條件刪除用戶及其用戶中包含的所有對象.當前正連接到Oracle服務器的用戶不能被刪除

DROPUSERaaron;DROPUSERaaronCASCADE;?獲取用戶相關信息獲取用戶相關信息能通過查詢以下數據字典.DBA_USERSDBA_TS_QUOTAS?系統權限有100多種ANY關鍵字是指用戶在任何模式下都具有GRANT命令由于授予權限REVOKE命令回收權限?系統權限舉例Category Examples

INDEX

CREATEANYINDEX

ALTERANYINDEX

DROPANYINDEX TABLE CREATETABLE

CREATEANYTABLE

ALTERANYTABLE

DROPANYTABLE

SELECTANYTABLE

UPDATEANYTABLE

DELETEANYTABLESESSION CREATESESSION

ALTERSESSION

RESTRICTEDSESSIONTABLESPACE CREATETABLESPACE

ALTERTABLESPACE

DROPTABLESPACE

UNLIMITEDTABLESPACE?授予系統權限GRANTCREATESESSIONTOemi;GRANTCREATESESSIONTOemiWITHADMINOPTION;?回收系統權限REVOKECREATETABLEFROMemi;?授予對象權限GRANTEXECUTEONdbms_outputTOjeff;GRANTUPDATEONemi.customersTOjeffWITHGRANTOPTION;?回收對象權限REVOKESELECTONemi.ordersFROMjeff;?獲取權限信息查詢數據字典DBA_SYS_PRIVSSESSION_PRIVSDBA_TAB_PRIVSDBA_COL_PRIVS?總結通過這部分課程的學習,您應該已經了解:創建用戶時指定適當的口令機制控制用戶對空間的使用控制系統和對象權限?練習這部分練習包括以下主題:創建用戶顯示用戶在數據字典中的相關信息移去用戶表空間配額?問題和解答?管理一個ORACLE實例?目標通過這部分課程的學習,您將了解以下內容:創建和管理初始化參數文件啟動和關閉實例監控和使用診斷文件?OracleInstanceSGARedolog

bufferDatabuffer

cacheSharedpoolDatadict.

cacheLibrarycacheDBW0SMONPMONCKPTLGWROthersspfiledb01.ora初始化參數文件

SQL>CONNECT/ASSYSDBASQL>STARTUP?初始化參數文件

訪問實例的入口存在兩種類型參數:顯性的:在文件中有個入口隱性的:在文件中沒有入口,但被指派了缺省的值在不同的環境下可使用不同的初始化文件優化單個數據庫的執行.改變文件中參數設置并使其生效依賴使用的初始化參數文件類型;靜態初始化參數文件PFILE

延續性初始化參數文件SPFILE?PFILE

initSID.ora

PFILE是一個能被操作系統編輯器修改的文本文件.手動對該文件進行修改.下次數據庫啟動修改才能生效.它的缺省路徑是$ORACLE_HOME/dbs.?PFILE舉例#InitializationParameterFile:initdb01.oradb_name=db01instance_name=db01control_files=(/u03/oradata/db01/control01db01.ctl,/u03/oradata/db01/control02db01.ctl)db_block_size=4096db_block_buffers=500shared_pool_size=31457280#30MSharedPooldb_files=1024max_dump_file_size=10240background_dump_dest=/u05/oracle9i/admin/db01/bdumpuser_dump_dest=/u05/oracle9i/admin/db01/udumpcore_dump_dest=/u05/oracle9i/admin/db01/cdumpundo_management=autoundo_tablespace=undtbs...?SPFILE

spfileSID.ora是一個不用重啟數據庫而能將改變生效的二進制文件保存在ORACLE服務器端能通過ALTERSYSTEM命令直接對參數進行修改能指定改變臨時在內存中生效還是從現在開始永久生效修改的值能被刪除重置到實例缺省的值ALTERSYSTEMSETundo_tablespace='UNDO2';?創建SPFILESPFILE能使用命令CREATESPFILE命令從initSID.ora中創建,并且在數據庫開啟前或開啟后都能執行CREATESPFILEFROMPFILE;97SPFILE舉例*.background_dump_dest='$ORACLE_HOME/admin/db01/bdump'*.compatible='9.0.0'*.control_files='/u03/oradata/db01/ctrl01db01.ctl','/u03/oradata/db01/ctrl02db01.ctl'*.core_dump_dest='$ORACLE_HOME/admin/db01/cdump'*.db_block_buffers=500*.db_block_size=4096*.db_files=40*.db_name='db01'*.instance_name='db01'*.remote_login_passwordfile='exclusive'*.shared_pool_size=31457280#30MSharedPool*.undo_management='AUTO'db01.undo_tablespace='UNDOTBS01'db02.undo_tablespace='UNDOTBS02'...?啟動一個數據庫

NOMOUNTOPENMOUNTNOMOUNTSHUTDOWN實例啟動STARTUPSHUTDOWN?啟動一個數據庫

MOUNTOPENMOUNTNOMOUNTSHUTDOWN控制文件打開實例啟動STARTUPSHUTDOWN?啟動一個數據庫

OPENOPENMOUNTNOMOUNTSHUTDOWN實例中控制文件描述的所有文件被打開控制文件打開實例啟動STARTUPSHUTDOWN?STARTUP命令STARTUP啟動實例并打開數據庫:STARTUPPFILE=$ORACLE_HOME/dbs/initdb01.ora?TheALTERDATABASECommand改變數據庫的狀態(UNMOUNTTOMOUNT):ALTERDATABASEdb01MOUNT;打開數據庫:ALTERDATABASEdb01OPEN;?關閉數據庫關閉模式:NORMALTRANSACTIONALIMMEDIATEABORTAxxxxTxxooIxxxo關閉模式允許新的接入等待直到當前的會話都結束等待直到當前的事務都結束強制執行checkpoint并關閉所有文件NxoooYESNOxo?關閉對象DuringaShutdownNormal,ShutdownTransactionalorShutdownImmediate一致性的數據庫(干凈的數據庫)這種方式關閉:數據塊高速緩沖區內容寫入數據文件未提交的事務回滾釋放資源這之后重新啟動數據庫:不用做實例恢復?關閉對象DuringaShutdownAbortorInstanceFailureorStartupForce不一致的數據庫(臟數據庫)這樣關閉:已經修改的數據塊緩沖區的內容不寫入數據文件未提交的事務不被回滾這之后重新啟動數據庫:改變的信息將被重新寫入重做日志文件必須使用回滾段來回滾未提交的改變釋放資源?通過檢查診斷文件來管理實例診斷文件包含實例運行過程中所遇到的重要的事件信息.作為日常管理數據庫的基礎,能為解決問題提供幫助.存在以下幾種診斷文件:警告日志文件(alertSID.log)后臺跟蹤文件用戶跟蹤文件?警告日志文件警告日志文件記錄了數據庫運行中的一些操作命令和主要事件結果.它被用來診斷日常數據庫運行錯誤信息.每條都對應有時間戳信息.它所在路徑定義在初始化參數BACKGROUND_DUMP_DEST中.?后臺跟蹤文件后臺跟蹤文件記錄有被后臺進程檢測到的錯誤信息.當后臺進程遇到錯誤時才被創建它所在路徑定義在初始化參數BACKGROUND_DUMP_DEST中?用戶跟蹤文件用戶跟蹤文件當用戶進程通過服務器進程連接到Oracle服務器時產生。一個用戶跟蹤文件包含跟蹤到的SQL執行語句或用戶通訊錯誤信息.當用戶會話過程中遇到錯誤信息時產生.它的路徑定義在USER_DUMP_DEST中.它的大小定義在MAX_DUMP_FILE_SIZE中,缺省為10M.?打開或關閉用戶跟蹤

用戶跟蹤文件能在會話或實例級別使用下列命令、參數打開或關閉:會話級別使用ALTERSESSION命令:ALTERSESSIONSETSQL_TRACE=TRUE會話級別也可以通過執行DBMS包:dbms_system.SET_SQL_TRACE_IN_SESSION實例級別可通過設置初始化文件中的參數: SQL_TRACE=TRUE?總結通過這部分內容的學習,您應該了解:創建和管理初始化參數文件啟動和關閉實例、數據庫監控和使用診斷文件?總結練習練習包括以下主題:創建SPFILE文件通過不同的方式啟動和關閉數據庫113SQL*Plus使用介紹?目標通過這部分課程的學習,您將了解以下內容:登錄到SQL*Plus環境編輯SQL命令SQL*Plus命令格式化并輸出結果結合腳本文件執行?登錄到SQL*Plus.描述表的結構.編輯SQL語句.在SQL*Plus中執行SQL.保存或插入SQL語句到文件SQL*Plus主要內容?登錄到SQL*Plus從Windows環境:

通過命令行:sqlplus[username[/password

[@database]]]?NameNull?Type-------------------------------------------DEPARTMENT_IDNOTNULLNUMBER(4)DEPARTMENT_NAMENOTNULLVARCHAR2(30)MANAGER_IDNUMBER(6)LOCATION_IDNUMBER(4)顯示表的結構內容SQL>DESCRIBEdepartments?SQL*Plus編輯命令A[PPEND]text C[HANGE]/old/new C[HANGE]/text/CL[EAR]BUFF[ER] DEL DELn

DELmn?SQL*Plus編輯命令I[NPUT]I[NPUT]textL[IST]L[IST]nL[IST]mnR[UN]nntext0text?

1SELECTlast_name2*FROMemployeesSQL>LIST1*SELECTlast_nameSQL>A,job_id1*SELECTlast_name,job_id1SELECTlast_name,job_id2*FROMemployees使用LIST,n,andAPPENDSQL>1SQL>L?

1*SELECT*fromemployeesSQL>L

1*SELECT*fromdepartmentsSQL>c/employees/departments

1*SELECT*fromdepartments使用CHANGE命令SQL>L?SQL*Plus文件命令SAVEfilenameGETfilenameSTARTfilename@filenameEDITfilenameSPOOLfilenameEXIT?Createdfilemy_querySQL>STARTmy_querySQL>L1SELECTlast_name,manager_id,department_id2*FROMemployeesSQL>SAVEmy_query使用SAVE和START命令LAST_NAMEMANAGER_IDDEPARTMENT_ID------------------------------------------------King90Kochhar10090...20rowsselected.?小結SQL*Plus環境下:執行SQL語句編輯SQL語句格式化輸出與腳本文件交互?邏輯備份恢復簡介?目標邏輯備份的概念Oracle數據庫邏輯備份使用工具Oracle數據庫邏輯備份形式?用途物理備份的補充不同版本數據庫的遷移不同平臺數據庫的遷移?與物理備份的比較占用較小的空間更為靈活,有四種方式需要確認字符集?備份工具備份工具EXPORT(使用命令EXP)恢復工具IMPORT(使用命令IMP)?備份形式全庫備份按用戶備份按表備份表空間備份?OracleExport和Import工具作用歸檔歷史數據存儲表的定義在不同平臺及版本間轉換數據在不同數據庫間移植表空間?運行EXPORT工具的方法以交互式對話的方式命令行參數文件通過OEM啟動?全數據庫模式TablesdefinitionsTablesdataGrantsIndexesTablesconstraintsExport模式表模式TabledefinitionsTabledata(allorselectedrows)Owner’stablegrantsOwner’stableindexesTableconstraints用戶模式TablesdefinitionsTablesdataOwner’sgrants

Owner’sindexesTablesconstraints表空間模式TabledefinitionsGrantsIndexesTableconstraintsTriggers?Export命令語法舉例exphr/hrTABLES=(employees,departments)rows=y file=exp1.dmpexpkeyword=(value,value2,…,valuen)expsystem/managerOWNER=hrdirect=y

file=expdat.dmpexpsystem/managerFULL=yinctype=cumulativefile=expcum1.dmpexpsystem/managerTRANSPORT_TABLESPACE=yTABLESPACES=(ts_emp)log=ts_emp.log?使用Import工具恢復獲取建表定義從一個有效的輸出文件中獲取數據如有用戶錯誤,可以從相應文件中恢復?Import模式模式 描述Table 獲取指定的表.User 獲取一個用戶的所有對象Tablespace 獲取一個表空間的所有對象FullDatabase 獲取輸出文件的所有對象?Import工具的命令行語法舉例imphr/hrTABLES=(employees,departments)rows=yfile=exp1.dmpimpkeyword=valueorkeyword=(value,value2,…valuen)impsystem/managerFROMUSER=hrfile=exp2.dmpimpsystem/managerTRANSPORT_TABLESPACE=yTABLESPACES=ts_employees?Import處理順序新表產生導入數據建立索引導入觸發器導入一致性約束導入其余形式的索引?國際化語言支持Export文件定義字符集Import工具把原字符集轉化為本數據庫的字符集多字節的字符集必須對應相同特征的字符集?總結和練習Export和Import工具的使用Export和Import工具概念和結構執行Export和Import操作使用Export和Import的一些原則?數據庫的日常檢查?數據庫的日常檢查檢查數據庫狀態確認數據庫是否在open狀態,正常提供服務。oracle%sqlplus"/assysdba"SQL>selectstatus,instance_rolefromv$instance;STATUSINSTANCE_ROLE------------------------------OPENPRIMARY_INSTANCE?數據庫的日常檢查數據庫版本檢查數據庫應該打了最新的patchset;8i要求是;9i要求是或者更高的補丁版本。SQL>select*fromv$version;?查看SGA區域SGA區各項buffer之和應該小于系統物理內存的一半檢查數據庫SGA區:SQL>showsga檢查系統物理內存:Solaris:$/usr/sbin/prtconf|grep-i"Memorysize"HP:$grepPhysical/var/adm/syslog/syslog.logAIX:$/usr/sbin/lsattr-E-lsys0-arealmem數據庫的日常檢查?回滾段競爭檢查8i:返回值應該低于2%。如果該值過高,8i需要手工建立更多的回滾段。SQL>select'Theaverageofwaits/getsis'||round((sum(waits)/sum(gets))*100,2)||'%'Fromv$rollstat;9i:Nospace值應該為0。如果持續存在非零值,建議增加回滾表空間的大SQL>selectdistinctnospaceerrcntasnospaceFromv$undostatWherebegin_time>sysdate-(1/12);數據庫的日常檢查?查看日志文件數據庫運行時,可以通過查詢v$log_history來觀察logswitch的切換時間。推薦聯機日志最好是業務非高峰期每小時切換一次,業務高峰期20分鐘左右切換一次。SQL>selectto_char(first_time,'yyyy-mm-ddhh24:mi:ss')change_timefromv$log_history;CHANGE_TIME-------------------2004-04-0610:02:522004-04-0610:10:452004-04-0610:17:01數據庫的日常檢查?查看表空間查看各個表空間所占的大小,剩余空間,使用空間百分比等信息特別是當業務表空間的剩余空間低于50M或者使用空間百分比大于90%時,需要考慮增加表空間的大小。SQL>selecta.tablespace_name,a.bytestotalbytes,sum(b.bytes)freebytesfromdba_data_filesa,dba_free_spacebwherea.file_id=b.file_idgroupbya.tablespace_name,a.bytes;TABLESPACE_NAMETOTALBYTESFREEBYTES-----------------------------------------CWMLITE2097152011141120數據庫的日常檢查?檢查job狀態Broken列應該為N;如果Broken列為Y,檢查oracle告警日志,分析job失敗的原因。解決后運行:execdbms_job.run(:job);SQL>selectjob,what,to_char(next_date,’yyyy/mm/ddhh24:mi:ss’),broken,failuresfromdba_jobs;數據庫的日常檢查?查看數據庫連接用戶查看當前數據庫連接的用戶進程的具體信息,包括連接的數據庫用戶名,機器名,運行的程序名,進程狀態。selectusername,machine,program,statusfromv$sessionwhereosuser<>'oracle';USERNAMEMACHINEPROGRAMSTATUS---------------------------------------------------------------CORPRINGCHINA\MENGWEIINACTIVESYSTEMCHINA\H36922dbsnmp.exeINACTIVE數據庫的日常檢查?Network配置

目標監聽管理本地服務名配置處理簡單的連接問題數據庫故障緊急處理?監聽進程listener.oraListener客戶端服務端tnsnames.orasqlnet.ora?配置listener.ora文件listener.ora的缺省配置:Listenername LISTENERPort 1521Protocols TCP/IPandIPCSIDname 缺省實例Hostname 缺省主機名?listener.ora例子1. LISTENER=2. (ADDRESS_LIST=3. (ADDRESS=(PROTOCOL=TCP)(Host=stc-sun02)(Port=1521)) )4. SID_LIST_LISTENER=5.(SID_LIST=6. (SID_DESC=7.(ORACLE_HOME=/home/oracle)(GLOBAL_DBNAME=ORCL.)9. (SID_NAME=ORCL) )10. ...sampleadditionalSIDdescription... )?監聽工具(LSNRCTL)工具可通過下面命令使用UNIX命令語法:提示符:管理非缺省的監聽$lsnrctl<commandname>LSNRCTL><commandname>LSNRCTL>setcurrent_listenerlistener02?監聽程序的管理查看監聽程序的狀態:%lsnrctlstatus從其他集群節點上測試監聽程序:%tnspingtns_alias啟動監聽程序進程:%lsnrctlstart關閉監聽程序進程:%lsnrctlstop如果數據庫配置文件listener.ora中配置的監聽名稱不是缺省的LISTENER時,啟動、關閉監聽必須帶上監聽名稱,例如:lsnrctlstartlistener_rac1?配置本地網絡服務名?服務名添加?指定oracle版本?輸入數據庫服務名?網絡協議?主機名和Listener端口?測試和連接?連接測試結果?自己命名網絡服務名?保存?tnsnames.ora#TNSNAMES.ORANetworkConfigurationFile:/u03/ora9i/rel12/network/admin/tnsnames.ora#GeneratedbyOracleconfigurationtools.MY_SERVICE.US.ORACLE.COM=(DESCRIPTION=(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1521)))(CONNECT_DATA=

(SERVICE_NAME=TEST.)))?sqlnet.ora#SQLNET.ORANetworkConfigurationFile:/u03/ora9i/rel12/network/admin/sqlnet.ora#GeneratedbyOracleconfigurationtools.NAMES.DEFAULT_DOMAIN=NAMES.DIRECTORY_PATH=(TNSNAMES,HOSTNAME)SQLNET.EXPIRE_TIME=0sqlplussystem/manager@MY_SERVICESQL*Plus:Release.0-BetaonTueFeb2710:11:002001(c)Copyright2000OracleCorporation.Allrightsreserved.Connectedto:Oracle9iEnterpriseEditionRelease.0-BetaJServerRelease.0-BetaSQL>?客戶端常見問題處理ORA-12154“TNS:couldnotresolveservicename”ORA-12198“TNS:couldnotfindpathtodestination”ORA-12203“TNS:unabletoconnecttodestination”ORA-12533“TNS:illegalADDRESSparameters”ORA-12541“TNS:nolistener”常見錯誤:?數據庫故障緊急處理

數據庫故障緊急處理錯誤信息查看工具oerroracle提供了一個實用程序oerr,利用它可以得到oracle錯誤信息的說明。UNIX平臺下可以使用oerr工具快速獲得oracle錯誤信息的詳細描述。oerr工具的具體語法為:oerr錯誤類型錯誤代碼例如:查詢ORA-2336,鍵入"oerrora2236"?數據庫故障緊急處理Oracle常見錯誤ORA-1652到ORA-1655ORA-165X錯誤信息是指表空間沒有足夠的空間可分配,包括ora-1652、ora-1653、ora-1654和ora-1655。ORA-01555(snapshottooold)9i引入了undotablespace,只要把undotablespace設的足夠大,并把undo_retention設的足夠大(大于完成大事務所需的時間),就有可能徹底解決ORA-1555錯(但太大會引起系統性能下降)?數據庫故障緊急處理Oracle常見錯誤ORA-04031如果shared_pool_size參數值已經很大(大于350M),那ORA-4031錯發生的原因很可能是因為oracle數據庫的BUG或是應用程序未能很好的使用綁定變量(bindvariable)。清空當前的shared_pool,可以暫時解決ora-4031錯的問題ORA-600內部錯誤第一個參數提供了實際錯誤信息(例如1579代表塊中斷錯誤),而其他參數提供相關其他信息(例如上述塊中斷錯誤中,顯示Oracle想要讀的塊號和實際讀的塊號)ORA-600錯誤會導致系統生成一個或多個跟蹤文件?數據庫故障緊急處理業務恢復處理RAC數據庫出現故障時,要迅速查看數據庫告警日志文件,確認出現問題的原因,影響的范圍,故障的現象。比如:數據庫故障是出現一次還是反復出現數據庫故障是否能夠比較容易的恢復,繞過,解決數據庫故障發生后業務是否能正常運行如果RAC數據庫的某個節點數據庫異常終止服務,但其他節點正常運行時,可以先嘗試手工啟動出現問題的數據庫,恢復數據庫到運行狀態。?數據庫故障緊急處理手工收集現場信息錯誤現象的具體描述數據庫告警日志文件:alert_{ORACLE_SID}.log數據庫跟蹤文件:*.TRC初始化參數文件:SPFILE不能直接閱讀,需要轉為文本網絡配置文件:listener.ora,tnsnames.ora,sqlnet.ora數據庫版本操作系統的類型和版本?數據庫故障緊急處理使用ORACLERDA收集現場信息RDA是由ORACLE開發的一個shell程序,用于全面收集oracle軟件的環境信息,供遠程故障診斷工程師參考。RDA安裝:為RDA建立一個獨立的目錄,不要在同一目錄中包含有就版本的RDA。腳本執行完畢將在RDA_Output目錄下產生htm和txt文檔形式的信息報告,以及這些文檔的一個.tar.Z的打包。使用RDA需要注意的問題:確定數據庫是否已經起來并能夠連接上確認FTP過程使用BIN方式,并且下載沒有錯誤。確定tar解開后的shell文件具有可執行權限。?總結主機名方法本地服務名方法使用配置助理處理簡單常見問題數據庫故障緊急處理?數據庫推薦書目介紹幾本oracle入門的好書Oracle8i備份恢復手冊Oracle8I初學者指南Oracle8iPLSQL程序設計Oracle8數據庫管理員手冊Oracle9statspack高性能調整OCP的教學用書ORACLE隨機手冊?數據庫推薦網站?問題和解答?演講完畢,謝謝觀看!附錄資料:不需要的可以自行刪除?oracle數據庫培訓內容*基本概念*Oracle的體系結構SQL*Plus的使用及常用命令*SQL*NET的配置和使用數據庫的備份(exp/imp)其它常見問題?一、基本概念什么是數據庫:是存儲在一起的相關數據的集合。這些數據無有害或不必要的冗余,為多種應用服務。數據的存儲獨立于使用它的應用程序。對數據庫插入新數據、修改和檢索原有數據均能用一種公用的和可控的方法進行。數據庫能做什么:數據庫的基本功能就是存儲數據,而且能夠為用戶提供便捷、快速的查找、修改、添加和刪除數據等功能。什么是SQL語言:是運用于數據庫的語言。它除了具有數據庫查詢、插入、刪除、修改等功能外,可以獨立使用,也可以嵌入其它主語言中使用。它的語法類似于英語。?什么是oracle:oracle是以高級結構化查詢語言(SQL)為基礎的大型關系數據庫,通俗地講它是用方便邏輯管理的語言操縱大量有規律數據的集合。是目前最流行的客戶/服務器(CLIENT/SERVER)體系結構的數據庫之一。?二、Oracle的體系結構(1)物理結構

ORACLE數據庫在物理上是存儲于硬盤的各種文件。它是活動的,可擴充的,隨著數據的添加和應用程序的增大而變化。datafilesredologfilescontrolfilesparameterfile

數據文件日志文件控制文件參數文件

datafilesredologfilescontrolfileparameterfiles*.dbf*.logInitoraid.ora*.ctl?(2)session(連接)

Oracle是多用戶、多任務、可分布式管理的數據庫,同

時可有許多個用戶對數據庫操作。oracleuseruserusersession……?

ORACLE數據庫在邏輯上是由許多表空間構成。主要分為系統表空間和非系統表空間。非系統表空間內存儲著各項應用的數據、索引、程序等相關信息。我們準備上馬一個較大的ORACLE應用系統時,應該創建它所獨占的表空間,同時定義物理文件的存放路徑和所占硬盤的大小。Oracle數據存儲單位a、block數據塊:2k最小的I-O單位,伴隨database產生而產生,不可變b、extent一組連續的數據塊:是用戶所能分配存儲的最小單位c、segment段:有共同結構的一個或幾個區域(extent)d、tablespace表空間:一組物理數據的邏輯組合,(象邏輯間數據倉庫)e、file文件:屬于某個表空間的物理文件f、database數據庫:一組表空間所構成的邏輯的可共享的數據。(3)存儲結構?表空間tablespacesystemRBSnosystem把system表空間單獨放在一個硬盤上做成一組鏡像toolsuserstempapplicationdataapplicationindex分開存放減少爭用?segment段的分類data數據段存儲對象object(table,view,index,sequence...)index索引段temporary臨時段用做(join,groupby,orderbysorting操作)rollback回滾段用于記錄修改前后信息bootstrap啟動段存儲數據字典系統信息不能讀寫,放在系統表空間內,約占40幾個block?datasegment中可能有十種不同類型的存儲對象(1)table(2)view實為一個select語句(3)index(一個表不多于3個)(4)cluster(簇)(5)sequence序列(6)synonyms用于定義某個遠程數據庫同義詞,實現分式數據庫管理透明(7)snapsot快照(8)storedprocedure(function)(9)package程序包(10)dbtrigger數據觸發器,處理updata,delete,insert中可能出現的問題?常用的ORACLE的數據庫字段類型字段類型中文說明限制條件其它說明CHAR固定長度字符串最大長度2000bytesVARCHAR2可變長度的字符串最大長度4000bytes可做索引的最大長度749DATE日期(日-月-年)LONG超長字符串最大長度2G(231-1)足夠存儲大部頭著作RAW固定長度的二進制數據最大長度2000bytes可存放多媒體圖象聲音等LONGRAW可變長度的二進制數據最大長度2G同上NUMBER(P,S)數字類型P為整數位,S為小數位INTEGER整數類型小的整數FLOAT浮點數類型NUMBER(38),雙精度REAL實數類型NUMBER(63),精度更高……?三、SQL*Plus的使用及常用命令進入sql*plus;數據查詢操作(select);改變數據操作(insert、update、delete);其它常用sql和sql*plus命令(spool、create、drop、desc、connect、grant……)。?數據查詢操作簡單查詢select列名1,列名2,列名3……from表名where條件orderby列名1,列名2……;?邏輯運算符>>=<<=<>或!=其它(not)inis(not)betweenandandor單值函數nvl----空值替換函數abs---絕對值函數mod---求模函數power---求冪函數sqrt-----平方根函數exp,ln,log----對數函數sin,cos等----三角函數?唯一性查詢關鍵字:distinctselectdistinct列名from表名where條件;?模糊查詢select列名1,列名2,列名3……from表名where列名1like‘_%mm’orderby列名1,列名2……;關鍵字:(not)like通配符:%_?聯接查詢select表名1.列名1,表名2.列名2,列名3……from表名1,表名2……where條件orderby表名1.列名1,表名2.列名2……;?子查詢單值子查詢

多值子查詢select列名1,列名2,列名3……from表名1where列名1=(select列名1from表名2where條件)orderby列名1,列名2……;select列名1,列名2,列名3……from表名1where列名1in(select列名1from表名2where條件)orderby列名1,列名2……;?組值函數avg---平均值函數count---非空值數目max---最大值函數min---最小值函數sum---求和函數distinct---唯一性函數分組查詢select列名1,列名2,sum(列名3)……from表名where條件groupby列名1,列名2……;關鍵字:groupby?改變數據操作Insert插入操作insertinto表名1(列名1,列名2……)values(值1,值2……);注意:⑴值表中的數據用逗號間隔;⑵字符型和日期型要用單引號括起來;⑶缺省的日期格式為dd-man-yy。insertinto表名1usingselect列名1,列名2……from表名2where條件;?Update修改操作可修改單個字段、修改多行、修改單個列。update表名set列名=值或表達式where條件;?Delete刪除deletefrom表名where條件;注意⑴不能只刪除行的一部分⑵where子句決定哪一行將被刪除。如里省略了where子句,則所有的行都將被刪除。?其它常用sql命令Createtable---創建表;例子Droptable--

溫馨提示

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

評論

0/150

提交評論