Oracle數(shù)據(jù)庫(kù)技術(shù)原理介紹_第1頁(yè)
Oracle數(shù)據(jù)庫(kù)技術(shù)原理介紹_第2頁(yè)
Oracle數(shù)據(jù)庫(kù)技術(shù)原理介紹_第3頁(yè)
Oracle數(shù)據(jù)庫(kù)技術(shù)原理介紹_第4頁(yè)
Oracle數(shù)據(jù)庫(kù)技術(shù)原理介紹_第5頁(yè)
已閱讀5頁(yè),還剩87頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Oracle數(shù)據(jù)庫(kù)技術(shù)原理介紹Page 2日程安排數(shù)據(jù)庫(kù)版本說明系統(tǒng)建設(shè)標(biāo)準(zhǔn)管理oracle實(shí)例管理表空間和數(shù)據(jù)文件Oracle網(wǎng)絡(luò)服務(wù)備份和恢復(fù)DATA GURAD無(wú)響應(yīng)故障現(xiàn)象分析Page 3數(shù)據(jù)庫(kù)版本說明1. Major Database Release Number 第一個(gè)數(shù)字位,它代表的是一個(gè)新版本軟件,也標(biāo)志著一些新的功能。如11g,10g。2. Database Maintenance Release Number 第二個(gè)數(shù)字位,代表一個(gè)maintenance release 級(jí)別,也可能包含一些新的特性。3. Fusion Middleware Release Number 第

2、三個(gè)數(shù)字位,反應(yīng)Oracle 中間件(Oracle Fusion Middleware)的版本號(hào)。4. Component-Specific Release Number 第四個(gè)數(shù)字位,主要是針對(duì)組件的發(fā)布級(jí)別。不同的組件具有不同的號(hào)碼。 比如Oracle 的patch包。5. Platform-Specific Release Number 第五個(gè)數(shù)字位,這個(gè)數(shù)字位標(biāo)識(shí)一個(gè)平臺(tái)的版本。 通常表示patch 號(hào)。Page 4數(shù)據(jù)庫(kù)版本說明版本ReleasePatchsetPSU(Patchset Update)Bundle PatchCPU PatchMerge PatchOneoff Pat

3、ch說明即產(chǎn)品版本,例如10gR2、11gR1、11gR2,12cR2,Release版本包含功能和架構(gòu)的變化;即補(bǔ)丁集,是基于產(chǎn)品版本之上,定期發(fā)布的補(bǔ)丁合集,包含多數(shù)重要補(bǔ)丁,并在某些功能上進(jìn)行改進(jìn)。為增量補(bǔ)丁集,只在UNIX和LINUX操作系統(tǒng)上存在。在Patchset的基礎(chǔ)上,修正一段時(shí)間內(nèi)累積的bug,解決單個(gè)補(bǔ)丁之間沖突的問題,同時(shí)也包含最新的安全補(bǔ)丁。也為增量補(bǔ)丁集,用于Windows系統(tǒng)上,在Patchset的基礎(chǔ)上,修正一段時(shí)間內(nèi)累積的bug,解決單個(gè)補(bǔ)丁之間沖突的問題,同時(shí)也包含最新的安全補(bǔ)丁。即關(guān)鍵性補(bǔ)丁升級(jí),基于Patchset之上的關(guān)鍵性補(bǔ)丁集,目前主要用于包含最新的

4、安全補(bǔ)丁和部分與之沖突的補(bǔ)丁。即融合補(bǔ)丁,基于Patchset或者PSU(Bundle Patch)之上的補(bǔ)丁,通常用于解決多個(gè)有沖突的補(bǔ)丁,而由ORACLE產(chǎn)品部進(jìn)行補(bǔ)丁融合。即單一補(bǔ)丁,基于基于Patchset或者PSU(Bundle Patch)之上的補(bǔ)丁,用于解決單個(gè)問題。Page 5系統(tǒng)建設(shè)標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)ORACLE倡導(dǎo)Best Practices最佳使用體驗(yàn):定期會(huì)更新各個(gè)主流平臺(tái)與ORACLE各版本的認(rèn)證關(guān)系,并提供必須的配置要求;定期會(huì)更新PSU及Bundle Patch,集中修復(fù)出現(xiàn)概率較高的問題;使用超過ORACLE服務(wù)支持期的數(shù)據(jù)庫(kù)版本,將得不到最佳使用體驗(yàn)的保障。我們推薦對(duì)

5、數(shù)據(jù)庫(kù)新建系統(tǒng)使用最新或者次新的Patchset版本(原則是PSU已更新到第三個(gè)版本以上),并安裝最新的PSU或者Bundle Patch集,而對(duì)于Oneoff Patch,應(yīng)遵從不輕易安裝的原則;Page 6內(nèi)容提要數(shù)據(jù)庫(kù)版本說明系統(tǒng)建設(shè)標(biāo)準(zhǔn)管理oracle實(shí)例管理表空間和數(shù)據(jù)文件Oracle網(wǎng)絡(luò)服務(wù)備份和恢復(fù)DATA GURADPage 7初始化參數(shù)文件訪問實(shí)例的入口存在兩種類型參數(shù):顯性的隱性的在不同的環(huán)境下可使用不同的初始化文件優(yōu)化單個(gè)數(shù)據(jù)庫(kù)的執(zhí)行.改變文件中參數(shù)設(shè)置并使其生效依賴使用的初始化參數(shù)文件類型;靜態(tài)初始化參數(shù)文件 PFILE 延續(xù)性初始化參數(shù)文件 SPFILEPage 8P

6、FILEinitSID.oraPFILE 是一個(gè)能被操作系統(tǒng)編輯器修改的文本文件.手動(dòng)對(duì)該文件進(jìn)行修改.下次數(shù)據(jù)庫(kù)啟動(dòng)修改才能生效.它的缺省路徑是 $ORACLE_HOME/dbs.Page 9SPFILEspfileSID.ora從Oracle 9i開始,oracle引入了二進(jìn)制文件SPFILE來(lái)替代原有的PFILE文件。 在RAC環(huán)境下,SPFILE必須和控制文件,數(shù)據(jù)文件一樣建立在共享存儲(chǔ)上,以便所有的實(shí)例都可以訪問。 當(dāng)使用不帶子句startup命令直接啟動(dòng)數(shù)據(jù)庫(kù)時(shí),Oracle 將從默認(rèn)目錄下的服務(wù)器參數(shù)文件(SPFILE) 中讀取初始化參數(shù)。 默認(rèn)位置目錄是:$ORACLE_HOM

7、E/dbs/spfile.ora Page 10SPFILE舉例*.control_files=/u03/oradata/db01/ctrl01db01.ctl,/u03/oradata/db01/ctrl02db01.ctl*.db_block_buffers=500*.db_block_size=4096*.db_files=40*.db_name=db01*.instance_name=db01*.shared_pool_size=31457280 # 30M Shared Pool*.undo_management=AUTOdb01.undo_tablespace=UNDOTBS01d

8、b02.undo_tablespace=UNDOTBS02Sga_target=10737418240Memory_target=10737418240Page 11SPFILE和PFILE的相互轉(zhuǎn)換無(wú)論數(shù)據(jù)庫(kù)是關(guān)閉或者打開,SPFILE和PFILE都能夠相互轉(zhuǎn)換。CREATE SPFILE FROM PFILE;CREATE PFILE=/tmp/test.ora FROM SPFILE;Page 12SPFILE文件的使用可以在不用停機(jī)的情況下動(dòng)態(tài)調(diào)整數(shù)據(jù)庫(kù)SGA區(qū)及其它很多參數(shù),大大提高了系統(tǒng)的可用性。在9i以后ALTER SYSTEM引入一個(gè)新選項(xiàng)SCOPE,用來(lái)選擇參數(shù)更改的范圍ME

9、MORY:只改變當(dāng)前實(shí)例運(yùn)行;SPFILE:只改變SPFILE的設(shè)置;BOTH:改變實(shí)例及SPFILE,缺省方式。RAC環(huán)境下,ALTER SYSTEM還可以加上SID參數(shù),指定初始化參數(shù)影響的實(shí)例。SID的缺省值為*,表示對(duì)所有實(shí)例都有效。 Page 13SPFILE文件的使用動(dòng)態(tài)修改實(shí)例RAC1的shared pool的大小:SQL alter system set shared_pool_size=120M scope=memory sid=rac1;查詢V$SPPARAMETER,實(shí)時(shí)的得到所有當(dāng)前使用的spfile的參數(shù)值 SQL select sid,name,value from

10、 v$spparameter where name=shared_pool_size; SID NAME VALUE rac1 shared_pool_size 104857600Page 14啟動(dòng)一個(gè)數(shù)據(jù)庫(kù)NOMOUNTOPENMOUNTNOMOUNTSHUTDOWN實(shí)例啟動(dòng)STARTUPSHUTDOWNPage 15啟動(dòng)一個(gè)數(shù)據(jù)庫(kù)MOUNTOPENMOUNTNOMOUNTSHUTDOWN控制文件打開實(shí)例啟動(dòng)STARTUPSHUTDOWNPage 16啟動(dòng)一個(gè)數(shù)據(jù)庫(kù)OPENOPENMOUNTNOMOUNTSHUTDOWN實(shí)例中控制文件描述的所有文件被打開控制文件打開實(shí)例啟動(dòng)STARTUPSH

11、UTDOWNPage 17STARTUP 命令啟動(dòng)實(shí)例并打開數(shù)據(jù)庫(kù):STARTUPSTARTUP PFILE=$ORACLE_HOME/dbs/initdb01.orastartup nomount創(chuàng)建一新的數(shù)據(jù)庫(kù)重建控制文件startup mount為數(shù)據(jù)文件更名;增加、刪除或改名事務(wù)日志文件;使事務(wù)日志歸檔模式選項(xiàng)有效或失效;進(jìn)行完整數(shù)據(jù)庫(kù)的恢復(fù)操作Page 18The ALTER DATABASE Command改變數(shù)據(jù)庫(kù)的狀態(tài)(UNMOUNT TO MOUNT):打開數(shù)據(jù)庫(kù):ALTER DATABASE db01 MOUNT;ALTER DATABASE db01 OPEN;Page

12、19關(guān)閉數(shù)據(jù)庫(kù)關(guān)閉模式:NORMALTRANSACTIONALIMMEDIATEABORTAxxxxTxxooIxxxo關(guān)閉模式允許新的接入等待直到當(dāng)前的會(huì)話都結(jié)束 等待直到當(dāng)前的事務(wù)都結(jié)束強(qiáng)制執(zhí)行 checkpoint 并關(guān)閉所有文件NxoooYESNOxoPage 20正常關(guān)閉During aShutdown Normal,Shutdown TransactionalorShutdown Immediate一致性的數(shù)據(jù)庫(kù)(干凈的數(shù)據(jù)庫(kù))這種方式關(guān)閉:數(shù)據(jù)塊高速緩沖區(qū)內(nèi)容寫入數(shù)據(jù)文件未提交的事務(wù)回滾釋放資源這之后重新啟動(dòng)數(shù)據(jù)庫(kù):不用做實(shí)例恢復(fù)Page 21異常關(guān)閉During aShutdo

13、wn AbortorInstance FailureorStartup Force不一致的數(shù)據(jù)庫(kù)(臟數(shù)據(jù)庫(kù))這樣關(guān)閉:已經(jīng)修改的數(shù)據(jù)塊緩沖區(qū)的內(nèi)容不寫入數(shù)據(jù)文件未提交的事務(wù)不被回滾這之后重新啟動(dòng)數(shù)據(jù)庫(kù):改變的信息將被重新寫入重做日志文件必須使用回滾段來(lái)回滾未提交的改變釋放資源Page 22通過檢查診斷文件來(lái)管理實(shí)例診斷文件包含實(shí)例運(yùn)行過程中所遇到的重要的事件信息. 作為日常管理數(shù)據(jù)庫(kù)的基礎(chǔ),能為解決問題提供幫助.存在以下幾種診斷文件:警告日志文件(alertSID.log)后臺(tái)跟蹤文件用戶跟蹤文件Page 23警告日志文件 警告日志文件記錄了數(shù)據(jù)庫(kù)運(yùn)行中的一些操作命令和主要事件結(jié)果.它被用來(lái)診

14、斷日常數(shù)據(jù)庫(kù)運(yùn)行錯(cuò)誤信息.每條都對(duì)應(yīng)有時(shí)間戳信息.后臺(tái)跟蹤文件后臺(tái)跟蹤文件記錄有被后臺(tái)進(jìn)程檢測(cè)到的錯(cuò)誤信息.當(dāng)后臺(tái)進(jìn)程遇到錯(cuò)誤時(shí)才被創(chuàng)建Page 24用戶跟蹤文件用戶跟蹤文件當(dāng)用戶進(jìn)程通過服務(wù)器進(jìn)程連接到Oracle服務(wù)器時(shí)產(chǎn)生。一個(gè)用戶跟蹤文件包含跟蹤到的SQL執(zhí)行語(yǔ)句或用戶通訊錯(cuò)誤信息. 當(dāng)用戶會(huì)話過程中遇到錯(cuò)誤信息時(shí)產(chǎn)生.Page 25內(nèi)容提要數(shù)據(jù)庫(kù)版本說明系統(tǒng)建設(shè)標(biāo)準(zhǔn)管理oracle實(shí)例管理表空間和數(shù)據(jù)文件Oracle網(wǎng)絡(luò)服務(wù)備份和恢復(fù)DATA GURADPage 26概觀Control filesData files Redo log filesDatabasePage 27數(shù)據(jù)庫(kù)的

15、存儲(chǔ)層次Database邏輯上物理上TablespaceData fileOS blockOracle blockSegmentExtentPage 28表空間和數(shù)據(jù)文件Oracle在表空間里存儲(chǔ)邏輯信息數(shù)據(jù),在數(shù)據(jù)文件里存儲(chǔ)物理信息數(shù)據(jù)表空間:只能同時(shí)屬于一個(gè)數(shù)據(jù)庫(kù)可以由一個(gè)或多個(gè)數(shù)據(jù)文件組成可以被更進(jìn)一步的劃分為細(xì)小的邏輯存儲(chǔ)單元 數(shù)據(jù)文件:只能同時(shí)屬于一個(gè)表空間和同一個(gè)數(shù)據(jù)庫(kù)它是用戶對(duì)象數(shù)據(jù)的容器DatabaseTablespaceDatafilesPage 29系統(tǒng)和非系統(tǒng)表空間系統(tǒng)表空間:隨著數(shù)據(jù)庫(kù)創(chuàng)建被創(chuàng)建包含數(shù)據(jù)字典信息包含系統(tǒng)回滾段非系統(tǒng)表空間:不同的segments分開存放(

16、如:回滾段, 臨時(shí)段, 應(yīng)用數(shù)據(jù) )控制分配給用戶對(duì)象的空間容量數(shù)據(jù)庫(kù)預(yù)配置的表空間UNDOTBS1USERSEXAMPLESYSTEMSYSAUXTEMPPage 31表空間的管理本地管理的表空間 :自由擴(kuò)展信息被記錄在本身的位圖中位圖中的每一位都對(duì)應(yīng)一個(gè)數(shù)據(jù)塊或一組數(shù)據(jù)塊 位圖中的標(biāo)志位顯示數(shù)據(jù)塊使用或未使用狀態(tài)信息字典管理的表空間:缺省的表空間管理方式自由擴(kuò)展信息被記錄在數(shù)據(jù)字典中Page 32本地管理的表空間簡(jiǎn)化了數(shù)據(jù)字典中的內(nèi)容空間分配和回收不產(chǎn)生回滾信息沒有接合鄰近extents的要求CREATE TABLESPACE userdata DATAFILE /u01/oradata/

17、userdata01.dbf SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;Page 33字典管理的表空間Extents 在數(shù)據(jù)字典中管理每個(gè)存儲(chǔ)在表空間的segments都可以有不同的存儲(chǔ)參數(shù)設(shè)置有鄰近接合extents的要求CREATE TABLESPACE userdata DATAFILE /u01/oradata/userdata01.dbf SIZE 500M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE ( initial 1M NEXT 1M );Page 34回滾段表空間用來(lái)

18、存儲(chǔ)回滾段信息不能包含其它對(duì)象Extents 本地管理在創(chuàng)建時(shí)僅僅能使用 DATAFILE and EXTENT MANAGEMENT 條件CREATE UNDO TABLESPACE undo1 DATAFILE /u01/oradata/undo101.dbf SIZE 40M;Page 35回滾段表空間在9i中,可以有兩種解決方法來(lái)維護(hù)事務(wù)的讀一致性:回滾段,或者Undo Tablespace來(lái)進(jìn)行的自動(dòng)重做管理,但是這兩種方法不能同時(shí)使用。建議在9i 中使用回滾表空間來(lái)管理數(shù)據(jù)庫(kù)。一個(gè)數(shù)據(jù)庫(kù)可以建立多個(gè)undotablespace,但每個(gè)instance同時(shí)只能使用一個(gè)undotabl

19、espace??梢杂胊lter system命令來(lái)修改數(shù)據(jù)庫(kù)當(dāng)前的undotablespace。alter system set undo_tablespace=undotbs2 scope=both;Page 36回滾段表空間影響undotablespace的關(guān)鍵初始化參數(shù) undo_management 缺省值為auto。建議繼續(xù)使用該缺省值,即使用undo tablespace,不用手工建立回滾段。 undo_tablespace 必須被設(shè)置為一個(gè)有效的undotablespace名稱。 undo_retentionundo_tablespace中保留多長(zhǎng)時(shí)間的回滾(undo)信息。在9

20、i R2中缺省值為10800,一般情況下夠用,不建議修改該參數(shù)。Page 37臨時(shí)表空間用來(lái)做排序操作不能包含固定的對(duì)象最好使用本地表空間管理CREATE TEMPORARY TABLESPACE temp TEMPFILE /u01/oradata/temp01.dbf SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M;Page 38缺省臨時(shí)表空間的限制直到新的缺省表空間被使用時(shí)才能刪除不能下線.不能將缺省的臨時(shí)表空間修改成永久表空間Page 39刪除表空間從數(shù)據(jù)字典中刪除表空間信息通過 AND DATAFILES條件可在操作系統(tǒng)上刪除表空

21、間的數(shù)據(jù)文件:DROP TABLESPACE userdata INCLUDING CONTENTS AND DATAFILES;Page 40改變表空間的大小增加數(shù)據(jù)文件 改變數(shù)據(jù)文件大小:自動(dòng)手動(dòng)app_data_02.dbfapp_data_01.dbfapp_data_03.dbf100M100M200M100MTablespace APP_DATAPage 41手動(dòng)改變數(shù)據(jù)文件大小app_data_02.dbfapp_data_01.dbfapp_data_03.dbf 100M100M200M200Mapp_data_04.dbf ALTER DATABASE DATAFILE /

22、u03/oradata/userdata02.dbf RESIZE 200M;100MTablespace APP_DATAPage 42在表空間中增加一個(gè)數(shù)據(jù)文件Tablespace APP_DATAapp_data_02.dbfapp_data_01.dbfapp_data_03.dbf100M100M200M100MALTER TABLESPACE app_data ADD DATAFILE /u01/oradata/userdata03.dbf SIZE 200M;Page 43移動(dòng)數(shù)據(jù)文件(修改表空間)表空間必須為下線狀態(tài)。目標(biāo)數(shù)據(jù)文件必須存在.ALTER TABLESPACE us

23、erdata RENAME DATAFILE/u01/oradata/userdata01.dbf TO/u01/oradata/userdata01.dbf;Page 44獲取表空間信息表空間信息:DBA_TABLESPACESV$TABLESPACE數(shù)據(jù)文件信息:DBA_DATA_FILESV$DATAFILE臨時(shí)文件信息:DBA_TEMP_FILESV$TEMPFILEOracle Net ServiceNet service 概述Tnsnames.oraListener.oraSqlnet.oraPage 45Oracle Net Service負(fù)責(zé)處理客戶到服務(wù)器和服務(wù)器到客戶通信,

24、并且能夠多在客戶端、中間層應(yīng)用、WEB服務(wù)器和ORACLE服務(wù)器上配置。Oracle Net提供客戶端到服務(wù)端的訪問Oracle Net ListenerOracle Connection ManagerNetworking Tools NETCA,OEM,NETMGRPage 46listener.ora 接受連接請(qǐng)求的協(xié)議地址 配置監(jiān)聽的數(shù)據(jù)庫(kù)服務(wù) 監(jiān)聽的參數(shù)tnsnames.ora 本地命名方法(Local naming)的配置文件sqlnet.ora 配置客戶端名稱解析的優(yōu)先順序 Logging and tracing 特性 外部命名參數(shù) Oracle Advanced Securit

25、y parameters 訪問控制Page 471.動(dòng)態(tài)注冊(cè):在instance啟動(dòng)的時(shí)候PMON進(jìn)程根據(jù)pfile/spfile中的instance_name,service_names兩個(gè)參數(shù)將實(shí)例和服務(wù)動(dòng)態(tài)注冊(cè)到監(jiān)聽程序2.靜態(tài)注冊(cè):實(shí)例啟動(dòng)時(shí)讀取listener.ora文件的配置,將instance和service注冊(cè)到監(jiān)聽程序SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=scottg)# GLOBAL_DBNAME作為默認(rèn)的service_name(ORACLE_HOME=/u01/oracle/product/11.2.0

26、/dbhome_1)(SID_NAME=scott)Page 48LISTENER.ORAPage 49TNSNAMES.ORA連接時(shí)故障切換特性(Connect Time Failover)此特性允許客戶在TNSNAMES.ORA中指定多個(gè)監(jiān)聽器,如果連接到第一個(gè)監(jiān)聽器失敗,則嘗試連接下一個(gè)監(jiān)聽器。failover參數(shù)缺省是ONORCL =(DESCRIPTION =(FAILOVER = ON(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP) ( HOST = DBPROD ) ( PROT = 1521 )(ADDRESS = (PROTOCOL = T

27、CP) ( HOST = DBFAIL ) ( PROT = 1521 ) ) (CONNECT_DATA = (SERVICE_NAME = PROD ) ( SERVER = DECIATED)Page 50客戶負(fù)載平衡(Client Load Balancing)該特性允許客戶從一個(gè)監(jiān)聽器列表中隨機(jī)地挑選,以達(dá)到平衡連接請(qǐng)求的效果。該用特性需要添加LOAD_BALANCE參數(shù),具體示例如下:ORCL =(DESCRIPTION =(LOAD_BALANCE= ON)(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP) (HOST = MWEISHAN-DE

28、LL) (PORT=1522)(ADDRESS = (PROTOCOL = TCP) (HOST = MWEISHAN-DELI) (PROT=1521)(CONNECT_DATA =(SERVICE_NAME=ORCL)Page 51sqlnet.oraSQLNET.AUTHENTICATION_SERVICES設(shè)置使用何種驗(yàn)證方式,可選值none(使用用戶名/密碼的方式連接數(shù)據(jù)庫(kù))all(使用所有方式的驗(yàn)證,包括OS驗(yàn)證)nts(OS驗(yàn)證方式,連入OS后可以不用密碼連接數(shù)據(jù)庫(kù))Page 52SQLNET.INBOUND_CONNECT_TIMEOUT設(shè)置連入數(shù)據(jù)庫(kù)后必須在多長(zhǎng)時(shí)間內(nèi)完成認(rèn)證

29、(如:輸入用戶名/密碼),超過此時(shí)間沒有完成的話,數(shù)據(jù)庫(kù)會(huì)斷開此連接,并將客戶端的IP地址和ORA-12170: TNS:Connect timeout occurred錯(cuò)誤信息記錄到sqlnet.log,而且客戶端會(huì)收到ORA-12547: TNS:lost contact或ORA-12637: Packet receive failed錯(cuò)誤信息。這個(gè)設(shè)置主要是為了防止denial-of-service攻擊Page 53SQL truncate 、delete 與drop 區(qū)別相同點(diǎn):1.truncate 和不帶 where 子句的 delete、以及 drop 都會(huì)刪除表內(nèi)的數(shù)據(jù)。2.dr

30、op、truncate 都是 DDL 語(yǔ)句(數(shù)據(jù)定義語(yǔ)言),執(zhí)行后會(huì)自動(dòng)提交。不同點(diǎn):1. truncate 和 delete 只刪除數(shù)據(jù)不刪除表的結(jié)構(gòu)(定義),drop 語(yǔ)句將刪除表的結(jié)構(gòu)被依賴的約束(constrain)、觸發(fā)器(trigger)、索引(index);依賴于該表的存儲(chǔ)過程/函數(shù)將保留,但是變?yōu)?invalid 狀態(tài)。2. delete 語(yǔ)句是數(shù)據(jù)庫(kù)操作語(yǔ)言(dml),這個(gè)操作會(huì)放到 rollback segement 中,事務(wù)提交之后才生效;如果有相應(yīng)的 trigger,執(zhí)行的時(shí)候?qū)⒈挥|發(fā)。truncate、drop 是數(shù)據(jù)庫(kù)定義語(yǔ)言(ddl),操作立即生效,原數(shù)據(jù)不放到

31、rollback segment中,不能回滾,操作不觸發(fā) trigger。Page 543. delete 語(yǔ)句不影響表所占用的extent,高水線(high watermark)保持原位置不動(dòng);drop 語(yǔ)句將表所占用的空間全部釋放;truncate 會(huì)將高水線復(fù)位(回到最開始)。4. 速度,一般來(lái)說: drop truncate delete5. 安全性:小心使用 drop 和 truncate,尤其沒有備份的時(shí)候; 使用上,想刪除部分?jǐn)?shù)據(jù)行用 delete,注意帶上 where 子句. 回滾段要足夠大;想刪除表,當(dāng)然用 drop;想保留表而將所有數(shù)據(jù)刪除,如果和事務(wù)無(wú)關(guān),用 trunca

32、te 即可。如果和事務(wù)有關(guān),或者想觸發(fā) trigger,還是用 delete。如果是整理表內(nèi)部的碎片,可以用 truncate 跟上 reuse storage,再重新導(dǎo)入/插入數(shù)據(jù)。6. delete是DML語(yǔ)句,不會(huì)自動(dòng)提交。drop/truncate都是DDL語(yǔ)句,執(zhí)行后會(huì)自動(dòng)提交。7. TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語(yǔ)句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統(tǒng)和事務(wù)日志資源少。DELETE 語(yǔ)句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項(xiàng)。TRUNCATE TABLE

33、通過釋放存儲(chǔ)表數(shù)據(jù)所用的數(shù)據(jù)頁(yè)來(lái)刪除數(shù)據(jù),并且只在事務(wù)日志中記錄頁(yè)的釋放。Page 55什么是備份和恢復(fù) 備份和恢復(fù)指的是為了以下目的而使用的一些策略和過程: 防止數(shù)據(jù)庫(kù)丟失數(shù)據(jù) 在數(shù)據(jù)丟失后重建數(shù)據(jù)庫(kù) Page 56使用 Oracle Recovery Manager RMAN: 是提供高級(jí)功能的命令行客戶機(jī) 具有功能強(qiáng)大的控制能力和腳本編寫語(yǔ)言 具有公布的、支持通過接口與多數(shù)常用備份軟件連接的 API 可備份數(shù)據(jù)、控制文件、歸檔日志文件和服務(wù)器參數(shù)文件 可將文件備份到磁盤或磁帶 Enterprise Manager 使用 Recovery Manager (RMAN) 執(zhí)行備份和恢復(fù)操作。

34、 Page 57EXPDP/IMPDPData Pump(數(shù)據(jù)泵) 是從oracle10g 引入的全新的,用于快速遷移數(shù)據(jù)的方式。Data Pump與exp/imp最大的區(qū)別是,Data Pump是一個(gè)位于服務(wù)器端的工具,通過Data Pump導(dǎo)出的轉(zhuǎn)儲(chǔ)文件只能位于數(shù)據(jù)庫(kù)服務(wù)器端,而不能將該轉(zhuǎn)儲(chǔ)文件導(dǎo)出導(dǎo)客戶端。Data Pump 有以下優(yōu)點(diǎn):1) 任務(wù)可以暫停,重啟2) 可以只處理某些對(duì)象,不處理某些對(duì)象,或者只處理某些對(duì)象中滿足條件的數(shù)據(jù)。3) 在不實(shí)際執(zhí)行導(dǎo)出的情況下,估計(jì)需要的磁盤空間4) 只導(dǎo)出元數(shù)據(jù)5) 通過db link,直接將遠(yuǎn)程數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)入到當(dāng)前數(shù)據(jù)庫(kù)6) 導(dǎo)入時(shí)可以修

35、改數(shù)據(jù)所在的schema名稱,表空間名稱以及數(shù)據(jù)文件名稱。7) 通過采樣,導(dǎo)出部分?jǐn)?shù)據(jù)。8) 并行操作。Page 58使用 ASM 存儲(chǔ) expdp 導(dǎo)出文件經(jīng)過測(cè)試,expdp導(dǎo)出文件完全可以放在ASM磁盤組中,但是日志文件需要放在文件系統(tǒng)上。SQL select directory_name, directory_path from dba_directories;DIRECTORY_NAME DIRECTORY_PATHDATA_PUMP_DIR /home/oracleOBAK+ORADATA/obakoracleoracle $ expdp scott/tiger DUMPFILE=

36、eygle.dmp DIRECTORY=OBAK CONTENT=METADATA_ONLY logfile=DATA_PUMP_DIR:expdp01.logPage 59Oracle 備份方法概覽 備份策略: 整體:備份屬于數(shù)據(jù)庫(kù)的控制文件和所有數(shù)據(jù)文件 部分:備份數(shù)據(jù)庫(kù)的一部分 備份類型: 完全:非增量 RMAN 備份 增量:只備份以前某次備份以來(lái)更改的信息 備份模式: 脫機(jī):一致性備份,也稱為冷備份 聯(lián)機(jī):非一致性備份,也稱為熱備份 Page 60RMAN 備份類型 完全備份包含所有用過的數(shù)據(jù)文件塊級(jí)別 0 增量備份等同于標(biāo)記為級(jí)別 0 的完全備份累積級(jí)別 1 增量備份只包含自上一次級(jí)

37、別 0 增量備份以來(lái)修改過的塊差異級(jí)別 1 增量備份只包含自上一次增量備份以來(lái)修改過的塊Page 61差異增量備份 累積增量備份 完全備份或“級(jí)別 0 增量備份” 示例run allocate channel c1 device type disk; allocate channel c2 device type disk; backup format /rmanbackup/dbbak/gzdb_full_%T_%d_%s_%p_%u.dbf database;sql alter system archive log current ; backup format/rmanbackup/db

38、bak/gzdb_arch_%T_%p_%u.dbf archive log all delete input;backup current controlfile format /rmanbackup/dbbak/controlfile_%T_%U_%t.crl; backup spfile format /rmanbackup/dbbak/spfile_%T_%U_%t.ora; release channel c1; release channel c2; Page 62完全恢復(fù)和不完全恢復(fù) 恢復(fù)類型有兩種: 完全恢復(fù):將數(shù)據(jù)庫(kù)恢復(fù)到當(dāng)前狀態(tài),包括到請(qǐng)求恢復(fù)時(shí)間點(diǎn)為止提交的所有數(shù)據(jù)更改。

39、 不完全恢復(fù):將數(shù)據(jù)庫(kù)恢復(fù)到請(qǐng)求恢復(fù)操作之前過去的指定時(shí)間點(diǎn)。 Page 63執(zhí)行完全恢復(fù):在 ARCHIVELOG 模式下丟失了非關(guān)鍵數(shù)據(jù)文件 如果數(shù)據(jù)文件丟失或損壞,而且該文件不屬于 SYSTEM 或 UNDO 表空間,則還原和恢復(fù)缺失的數(shù)據(jù)文件。 Page 64執(zhí)行完全恢復(fù):在 ARCHIVELOG 模式下丟失了系統(tǒng)關(guān)鍵數(shù)據(jù)文件 如果數(shù)據(jù)文件丟失或損壞,而且該文件屬于 SYSTEM 或 UNDO 表空間,則執(zhí)行以下步驟: 1. 實(shí)例是否自動(dòng)關(guān)閉未定。如果未自動(dòng)關(guān)閉,請(qǐng)使用 SHUTDOWN ABORT 關(guān)閉實(shí)例。 2. 裝載數(shù)據(jù)庫(kù)。 3. 還原和恢復(fù)缺失的數(shù)據(jù)文件。 4. 打開數(shù)據(jù)庫(kù)。

40、Page 65將數(shù)據(jù)庫(kù)還原到新主機(jī) 為了還原數(shù)據(jù)庫(kù),請(qǐng)?jiān)谶€原主機(jī)上執(zhí)行以下步驟: 1.配置 ORACLE_SID 環(huán)境變量。 2.啟動(dòng) RMAN 并在 NOCATALOG 模式下連接到目標(biāo)實(shí)例。 3.設(shè)置數(shù)據(jù)庫(kù)標(biāo)識(shí)符 (DBID)。 4.在 NOMOUNT 模式下啟動(dòng)實(shí)例。 5.創(chuàng)建 RUN 塊,以便: 從備份集中還原服務(wù)器參數(shù)文件 關(guān)閉實(shí)例 (SHUTDOWN ABORT) 6.編輯還原的初始化參數(shù)文件。 7. 在 NOMOUNT 模式下啟動(dòng)實(shí)例。8.創(chuàng)建 RUN 塊,以便: 還原控制文件 裝載數(shù)據(jù)庫(kù) 9.創(chuàng)建 RMAN 恢復(fù)腳本來(lái)還原和恢復(fù)數(shù)據(jù)庫(kù)。 10.執(zhí)行 RMAN 腳本。 11.使用

41、 RESETLOGS 選項(xiàng)打開數(shù)據(jù)庫(kù)。 Page 66執(zhí)行災(zāi)難恢復(fù) 災(zāi)難意味著丟失了整個(gè)目標(biāo)數(shù)據(jù)庫(kù)、恢復(fù)目錄數(shù)據(jù)庫(kù)、所有當(dāng)前控制文件、所有聯(lián)機(jī)重做日志文件和所有參數(shù)文件。 災(zāi)難恢復(fù)包括還原和恢復(fù)目標(biāo)數(shù)據(jù)庫(kù)。 備份集的最低要求: 備份部分?jǐn)?shù)據(jù)文件 相應(yīng)的歸檔重做日志文件 至少一個(gè)控制文件自動(dòng)備份 Page 67基本過程: 還原服務(wù)器參數(shù)文件的自動(dòng)備份啟動(dòng)目標(biāo)數(shù)據(jù)庫(kù)實(shí)例從自動(dòng)備份還原控制文件裝載數(shù)據(jù)庫(kù)還原數(shù)據(jù)文件恢復(fù)數(shù)據(jù)文件使用 RESETLOGS 選項(xiàng)打開數(shù)據(jù)庫(kù)Page 68Oracle DataguardOracle Dataguard是Oracle提供的企業(yè)級(jí)高可用解決方案。簡(jiǎn)單地說,DG由

42、一個(gè)Primary Database和Standby.Database(一個(gè)或多個(gè))組成。而Standby Database又可分為L(zhǎng)ogical Standby(邏輯)和Physical Standby(物理)。與RMAN之類備份工具不同的是,DataGuard著重提供7*24企業(yè)級(jí)高可用應(yīng)用環(huán)境。DataGuard Service:Redo Transport Service(日記傳輸服務(wù))Log Apply Service(日記應(yīng)用服務(wù)??梢允荝edo或 Archived Log)Role Transition Service(包括Switchover、Failover。角色的轉(zhuǎn)發(fā)不會(huì)導(dǎo)

43、致數(shù)據(jù)丟失)Page 69Oracle DataGuard包括Physical和Logical兩種應(yīng)用方式。這兩種Standby Database的關(guān)鍵區(qū)別在應(yīng)用Log 服務(wù)這個(gè)步驟。Physical Standby:使用介質(zhì)恢復(fù)的方式,將Redo應(yīng)用至Standby。Page 70Logical Standby:將Redo轉(zhuǎn)換成SQL語(yǔ)句,然后執(zhí)行SQL應(yīng)用至Standby。Page 71DataGuard提供三種不同側(cè)重點(diǎn)的實(shí)現(xiàn)模式:Maximum Protection:盡可能的保護(hù)數(shù)據(jù)的完整性。即在Primary執(zhí)行的一個(gè)事務(wù)時(shí),至少要在一個(gè)Standby上也執(zhí)行成功后,這個(gè)事務(wù)才算co

44、mmit成功了。如果一個(gè)事務(wù)在Primary執(zhí)行成功,但在Standby上執(zhí)行失敗,那么DG就會(huì) 回 滾這個(gè)事務(wù)。Maximum Available:盡可能保護(hù)數(shù)據(jù)庫(kù)的可用性。與Maximum Protection類似,一個(gè)事務(wù)都要在Primary、Standby上執(zhí)行。不同之處在于如果這個(gè)事務(wù)在Standby執(zhí)行失敗,Primary不會(huì)回滾這個(gè)事務(wù),而是以繼續(xù)執(zhí)行其他事務(wù)。當(dāng)錯(cuò)誤修正后,DG會(huì)自動(dòng)重新向Standby再傳送一次Redo。Maximum Performance:Oracle默認(rèn)DG模式。即在Primary執(zhí)行的一個(gè)事務(wù)時(shí),至少要在一個(gè)Standby上也執(zhí)行。至在Standby上

45、的執(zhí)行過程是異步的。Page 72 數(shù)據(jù)容災(zāi)及高可用 支持Oracle全部數(shù)據(jù)類型傳送,并且可以預(yù)防存儲(chǔ)設(shè)備級(jí)數(shù)據(jù)塊錯(cuò)誤。 減輕Primary數(shù)據(jù)庫(kù)的負(fù)載。 基于數(shù)據(jù)塊的復(fù)制,比Logical Standby性能要好些。Page 73Physical Standy 的優(yōu)點(diǎn)Logical Standby的優(yōu)點(diǎn) 數(shù)據(jù)容災(zāi)及高可用 有效的利用standby 的硬件資源(如:在Standby數(shù)據(jù)庫(kù)建立額外的Shema、Table等對(duì)象,供其他系統(tǒng)使用)。 減輕Primary數(shù)據(jù)庫(kù)的負(fù)載。Page 74DataGuard三種日志:Redo、Archived、Standby Logs。Redo Logs:

46、聯(lián)機(jī)重做日志。Primary、Logical數(shù)據(jù)庫(kù)是肯定有的。對(duì)于Physical則不需要。Archived Redo Logs:歸檔日志。Primary、Logical、Physical都必須有。也就是說DataGuard必須運(yùn)行歸檔模式下。Standby Logs:與Redo日志相似,只不過Standby Logs只用來(lái)接收Primary傳過來(lái)的Redo Logs。Page 75傳統(tǒng)的 Data Guard最常見的 Oracle Data Guard 使用是同步物理備用數(shù)據(jù)庫(kù)與相應(yīng)的生產(chǎn)數(shù)據(jù)庫(kù),以實(shí)現(xiàn)數(shù)據(jù)保護(hù)和高可用性。 在 Oracle 數(shù)據(jù)庫(kù) 11 g 之前,物理備用數(shù)據(jù)庫(kù)通常以連續(xù)的

47、“重做應(yīng)用”模式工作(即,不斷地應(yīng)用來(lái)自生產(chǎn)數(shù)據(jù)庫(kù)的更改),以確保在生產(chǎn)站點(diǎn)中斷幾秒鐘內(nèi)完成數(shù)據(jù)庫(kù)故障切換。 必須先停止重做應(yīng)用才能對(duì) DataGuard 10 g 備用數(shù)據(jù)庫(kù)進(jìn)行讀取訪問,這最終會(huì)導(dǎo)致副本具有陳舊數(shù)據(jù),并增加了完成故障切換操作所需的時(shí)間。Page 76Oracle Active Data GuardOracle Active Data Guard 允許物理備用數(shù)據(jù)庫(kù)對(duì)只讀訪問開放 報(bào)告、簡(jiǎn)單或復(fù)雜查詢、排序、基于 Web 的訪問等。同時(shí)還可以應(yīng)用來(lái)自生產(chǎn)數(shù)據(jù)庫(kù)的更改。對(duì)物理副本的所有查詢讀取都是實(shí)時(shí)執(zhí)行,并且可以返回最新結(jié)果。這意味著,需要進(jìn)行最新只讀訪問的所有操作都可以卸載

48、到副本,從而可以增強(qiáng)和保護(hù)生產(chǎn)數(shù)據(jù)庫(kù)的性能。Page 77Oracle Active Data Guard 的獨(dú)特優(yōu)勢(shì)Active Data Guard 是 Data Guard 技術(shù)的發(fā)展,它提供了獨(dú)特的性能優(yōu)勢(shì),同時(shí)又能利用 Oracle Data Guard 11g 中包含的所有其他增強(qiáng)功能 。例如,可以將任何 Data Guard 11g 物理備用數(shù)據(jù)庫(kù)輕松轉(zhuǎn)換為快照備用數(shù)據(jù)庫(kù)??煺諅溆脭?shù)據(jù)庫(kù)已開放讀寫操作,是理想的測(cè)試系統(tǒng),能夠獨(dú)立于主數(shù)據(jù)庫(kù)處理事務(wù)??煺諅溆脭?shù)據(jù)庫(kù)通過不斷從生產(chǎn)數(shù)據(jù)庫(kù)接收數(shù)據(jù) 、然后進(jìn)行歸檔以供今后使用來(lái)維護(hù)保護(hù)。測(cè)試完成后,可以通過一個(gè)命令廢棄在開放讀寫操作時(shí)所作

49、的更改,并迅速地將備用數(shù)據(jù)庫(kù)與主數(shù)據(jù)庫(kù)重新同步。Page 78Oracle數(shù)據(jù)庫(kù)無(wú)響應(yīng)故障的處理思路和方法Oracle 數(shù)據(jù)庫(kù)無(wú)響應(yīng)故障,簡(jiǎn)單地講就是數(shù)據(jù)庫(kù)實(shí)例不能響應(yīng)客戶端發(fā)起的請(qǐng)求,客戶端提交一個(gè) SQL 后,就一直處于等待數(shù)據(jù)庫(kù)實(shí)例返回結(jié)果的狀態(tài)。更嚴(yán)重的現(xiàn)象是客戶端根本不能連接到數(shù)據(jù)庫(kù),發(fā)起一個(gè)連接請(qǐng)求后,一直處于等待狀態(tài)。Page 79從故障范圍來(lái)看,無(wú)響應(yīng)故障可以分為以下幾種情況:1.單個(gè)或部分會(huì)話(進(jìn)程)Hang 住這種情況屬于小范圍的故障,業(yè)務(wù)影響相對(duì)較小,一般來(lái)說只會(huì)影響業(yè)務(wù)系統(tǒng)的個(gè)別模塊。在一個(gè)多應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)上面,如果 Hang 住的會(huì)話比較多,則影響的可能是其中的一個(gè)

50、應(yīng)用系統(tǒng)。這里有一個(gè)例外,如果Hang 住的進(jìn)程是系統(tǒng)后臺(tái)進(jìn)程,如 pmon、smon 等,則影響的范圍就非常大了,最終甚至?xí)绊懻麄€(gè)數(shù)據(jù)庫(kù)及所有應(yīng)用系統(tǒng)。還有值得注意的是,即使是少部分會(huì)話 Hang 住,也要及時(shí)處理,否則極有可能會(huì)擴(kuò)散到整個(gè)系統(tǒng)。Page 802. 單個(gè)數(shù)據(jù)庫(kù)實(shí)例 Hang 住這種情況造成的影響非常大。在這個(gè)實(shí)例上的所有應(yīng)用系統(tǒng)均受到嚴(yán)重影響,并且在找到根源并最終解決問題之前,數(shù)據(jù)庫(kù)實(shí)例往往須要重啟。3. RAC 中的多個(gè)實(shí)例或所有實(shí)例都 Hang 住在這種情況下,即使是 RAC,都已經(jīng)沒辦法提供高可用特性了。使用這個(gè)數(shù)據(jù)庫(kù)的所有應(yīng)用系統(tǒng)將不能繼續(xù)提供服務(wù),這種情況往往須要

51、重啟。Page 81Oracle 數(shù)據(jù)庫(kù)無(wú)響應(yīng),一般主要由以下幾種原因引起:1. 數(shù)據(jù)庫(kù)主機(jī)負(fù)載過高,嚴(yán)重超過主機(jī)承受能力比如應(yīng)用設(shè)計(jì)不當(dāng),數(shù)據(jù)庫(kù)性能低下,活動(dòng)會(huì)話數(shù)的大量增加,導(dǎo)致數(shù)據(jù)庫(kù)主機(jī)的負(fù)載迅速增加,數(shù)據(jù)庫(kù)不能正常操作,并最終 Hang 住;主機(jī)物理內(nèi)存嚴(yán)重不足,引起大量的換頁(yè),特別是在 SGA 中的內(nèi)存被大量換出到虛擬內(nèi)存時(shí),數(shù)據(jù)庫(kù)實(shí)例往往就會(huì) Hang 住。Page 822.日常維護(hù)不當(dāng)、不正確的操作引起數(shù)據(jù)庫(kù) Hang 住比如歸檔日志的存儲(chǔ)空間滿,導(dǎo)致數(shù)據(jù)庫(kù)不能歸檔,引起數(shù)據(jù)庫(kù) Hang住;在一個(gè)大并發(fā)的繁忙的系統(tǒng)上,對(duì) DML 操作比較多的大表進(jìn)行 move、增加外鍵約束等操作也可能使系統(tǒng)在短時(shí)間內(nèi)負(fù)載大幅升高,并引起數(shù)據(jù)庫(kù)系統(tǒng) Hang 住;不正確的資源計(jì)劃(Resource Plan)配置,使進(jìn)程得不到足夠的 CPU 等。Page 833. Oracle 數(shù)據(jù)庫(kù)的 Bug幾乎每個(gè)版本都存在著會(huì)導(dǎo)致數(shù)據(jù)庫(kù)系統(tǒng) Hang 住的 Bug,這些 Bug 會(huì)在一些特定的條件下觸發(fā),特別是在 RAC 數(shù)據(jù)庫(kù)中,引起數(shù)據(jù)庫(kù)Hang住的 Bug 比較多。4

溫馨提示

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

評(píng)論

0/150

提交評(píng)論