oracle數(shù)據(jù)庫基本知識_第1頁
oracle數(shù)據(jù)庫基本知識_第2頁
oracle數(shù)據(jù)庫基本知識_第3頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫基本知識目錄一、幾種常見數(shù)據(jù)庫介紹及比較二、Oracle安裝及注意事項:三、數(shù)據(jù)庫的基本元素四、數(shù)據(jù)庫的基本維護一、幾種常見數(shù)據(jù)庫介紹及比較1幾種常見關(guān)系性數(shù)據(jù)庫:IBMDB2,ORACLE.MSSQL,SYBASE,Informix.MySQL2來自互聯(lián)網(wǎng)方面的幾種評價:MSSQL:秀才-把別人寫的書看懂成為自己的東西,衣飾一般都比較考究,但是只懂一國語言,而且喜歡貶低別人。SYBASE:農(nóng)夫-干活不要命,大有拼命三郎的氣勢,但是感覺總是差點文化涵養(yǎng)。養(yǎng)魚,養(yǎng)豬都可以但是卻忘了打打廣告。ORACLE:將軍-有大家風范,對秀才和農(nóng)夫的爭論不屑一顧。凡是有了戰(zhàn)役舍我其誰。但是別忘了還有的士

2、兵也想當將軍的。Informix:宰相-管你誰對誰錯,反正我就是只顧一個皇帝UNIX,我的地位別人休想輕易替代。MySQL:韋小寶-我就是要在你們中間搗蛋,雖然年紀小,但是發(fā)育也很完善。大家都喜歡。3.2001年度全球數(shù)據(jù)庫市場的份額:DB2占到了34.6%(受收購Informix市場份額影響),Oracle占32%、微軟占16.4%、Sybase占2.6%、其他為14.4%)二、Oracle安裝及注意事項:作為數(shù)據(jù)庫服務(wù)器堅決不要安裝金山毒霸和KV3000等防毒軟件,可以使用NU20001. oracle常見版本:7.34,8.05,8l,9l,10g安裝,不同版本會略有不同注要以7.34和

3、8I為例,并且在不同的操作系統(tǒng)上8I以后的安裝和在NT/W2K上類似,在UNIX系統(tǒng)上安裝前需要配置相應(yīng)的環(huán)境變量,NT、W2K下(1)運行安裝程序進行安裝,7.34不能在W2K下安裝,需要用第二種方式(2)導(dǎo)入注冊表,復(fù)制相應(yīng)的目錄注意:如果同時在一個操作系統(tǒng)上同時安裝7.34和8I需要現(xiàn)安裝7.34在安裝8I安裝過程:略安裝注意事項:安裝語言選擇:ENGLISHDEFAULT_HOME:DEFAULT_HOME默認8I和7.34同時安裝需要修改8I的此項選項為一個其他的名字不能相同如叫8I等,8I安裝后需要修改相應(yīng)的注冊表的字符集HKEY_LOCAL_MACHINESOFTWAREORAC

4、LE的NLS_LANG的值為:AMERICAN_AMERICA.WE8ISO8859P1,否則sql語句查詢的結(jié)果為亂碼。安裝過程一般選擇自定義安裝,不要在建立相應(yīng)的系統(tǒng)默認的數(shù)據(jù)庫。2. 創(chuàng)建數(shù)據(jù)庫7.34(實例管理器NTInstaneeManager),81(數(shù)據(jù)庫助手DatabaseConfigurationAssistant)5.書寫相應(yīng)的參數(shù)后選擇advaneed(高級)進入高級設(shè)置,選擇OK進入數(shù)據(jù)庫創(chuàng)建過程設(shè)置相應(yīng)的參數(shù)后選擇0K返回6. 選擇0K進行創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫注意事項:7.34初始化文件一定要在制定的目錄下存在并且相應(yīng)的文件路徑一定要存在。并且初始化文件的回滾段一定要

5、注釋掉,等建立晚回滾段后在放開并且重新啟動數(shù)據(jù)庫后生效。81可以一切都不存在,并且自動創(chuàng)建30個回滾段SYSTEM和RBS0-RBS28,安裝完成后運行CATALOG.SQL和CATPROC.SQL進行重新創(chuàng)建系統(tǒng)的同義詞和過程函數(shù)等三、數(shù)據(jù)庫的基本元素表空間:相當于其他數(shù)據(jù)庫的數(shù)據(jù)設(shè)備,用來存放數(shù)據(jù)庫中其他存儲元素如:表、索引、回滾段等常用的表空間:system(系統(tǒng)表空間,用于存儲系統(tǒng)表、用戶信息、過程、包、用戶自定義函數(shù)、同義詞、序列等,只要定義和創(chuàng)建將不再變化)、temp_spc(臨時表空間,在進行數(shù)據(jù)查詢時使用,尤其是使用子查詢)、data_spc(數(shù)據(jù)表空間,用于存儲用戶表等數(shù)據(jù)信

6、息)、indx_spc(索引表空間,用于存儲用戶表索引)、rbsg_spc(回滾表空間,用于存放回滾段)可以想象為:用戶數(shù)據(jù)存儲的物理載體(1)倉U建表空間createtablespacetemp_spcdatafile'd:mchtdatatempmcht.odb'size100MAUTOEXTENDOFF|ON(可以依次有多個數(shù)據(jù)文件,文件名最好用1,2,3,等劃分以便容易識別,中間用逗號分割)DEFAULTSTORAGE(INITIAL64KNEXT64Kpctincrease0)online;如果沒有制定數(shù)據(jù)文件的擴展名將使用.ORA,81默認為.DBF注意:數(shù)據(jù)文件的

7、大小AIX系統(tǒng)不能大一1G,NT/2K的FAT32分區(qū)格式不能大于4G,NTFS分區(qū)不受限制。(2)為表空間增加數(shù)據(jù)文件ALTERTABLESPACEtemp_spcadddatafile'd:mchtdatatempmcht2.odb'size100Monline;建議:將表空間存放在不同的磁盤上,平衡I/O用戶:數(shù)據(jù)庫在使用的過程中,都要以某用戶身份進行登陸,然后在進行此用戶下的工作,相當于數(shù)據(jù)庫管理員,擁有不同的權(quán)限:創(chuàng)建數(shù)據(jù)庫后默認的三個用戶:internal(超級用戶,在用戶管理中不可見)密碼為建庫時的密碼,system密碼為manager,sys用戶密碼為chang

8、e_onnstall,可以想象為:用戶數(shù)據(jù)存儲的邏輯載體(1)刪除用戶dropuserdbauserpszxcascade;刪除用戶后,屬于該用戶的所有數(shù)據(jù)均被刪除女口:表、索引、序列、過程、函數(shù)、包等一定要注意另加小心(2)創(chuàng)建用戶createuserdbauserpszxidentifiedbyfuturepszxDEFAULTTABLESPACEdata_spcTEMPORARYTABLESPACEtemp_spcQUOTAUNLIMITEDONsystem(oracle8以后不再用)QUOTAUNLIMITEDONtemp_spcQUOTAUNLIMITEDONrbsg_spcQUOT

9、AUNLIMITEDONdata_spcQUOTAUNLIMITEDONindx_spcQUOTAUNLIMITEDONpers_spc;(3)分配權(quán)限角色GRANTDBAtodbauserpszx;GRANTSELECTANYTABLETOdbauserpszx;GRANTINSERTANYTABLETOdbauserpszx;GRANTDELETEANYTABLETOdbauserpszx;GRANTUPDATEANYTABLETOdbauserpszx;GRANTSELECTANYSEQUENCETOdbauserpszx;GRANTCREATEUSERTOdbauserpszx;GRA

10、NTCREATEANYTABLETOdbauserpszx;GRANTCREATEANYSEQUENCETOdbauserpszx;GRANTCREATEANYINDEXTOdbauserpszx;GRANTDROPUSERTOdbauserpszx;GRANTDROPANYTABLETOdbauserpszx;GRANTDROPANYSEQUENCETOdbauserpszx;GRANTDROPANYINDEXTOdbauserpszx;GRANTGRANTANYROLETOdbauserpszx;GRANTEXECUTEANYPROCEDURETOdbauserpszx;回滾段(1) 創(chuàng)建

11、回滾段createpublicrollbacksegmentfpos_rs2tablespacerbsg_spcstorage(initial1Mnext1Moptimal10Mminextents2maxextents500);注意:optimal回滾斷最佳的大小為減少系統(tǒng)資源競爭,改善系統(tǒng)性能一般采用多個回滾段,當多個事務(wù)并發(fā)進行時將產(chǎn)生多個回滾信息,系統(tǒng)事務(wù)對回滾段的調(diào)用是系統(tǒng)隨機的除非特殊制定SETTRANSACTIONUSEROLLBACKSEGMENTfpos_rsl;(2) 回滾段狀態(tài)(在線online,不在線offline)只有在線的回滾段段系統(tǒng)事務(wù)方可調(diào)用ALTERROLLB

12、ACKfpos_rslONLINE|OFLINE;修改初始化文件INITPFILE.ORA文件rollback_segments=(fpos_rs2,fpos_rs3,fpos_rs4,fpos_rs5,fpos_rs6,fpos_rs7,fpos_rs8,fpos_rs9,fpos_rs10,fpos_rs11,fpos_rs12,fpos_rs13,fpos_rs14,fpos_rs15,fpos_rs16,fpos_rsl)1. 數(shù)據(jù)庫連接(DB_LINK)實現(xiàn)數(shù)據(jù)庫的互聯(lián)(1) 數(shù)據(jù)庫的被連接端必須有相應(yīng)的用戶存在(2) 數(shù)據(jù)庫的主聯(lián)接端建立相應(yīng)的連接對象CREATEPUBLICDAT

13、ABASELINKpszx_db.worldCONNECTTOdblinkusrIDENTIFIEDBYfuture*19990501USING'pszx_db'刪除數(shù)據(jù)庫連接DROPPUBLICDATABASELINKpszx_db.world;數(shù)據(jù)庫連接建立之后可以對連接里的內(nèi)容進行訪問了SELECT*FROMSYS_GLJGFROMDBAUSETPSZX.SYS_GLJGPSZX_DB如要屏蔽訪問的負雜性可以創(chuàng)建同義詞表:數(shù)據(jù)庫存放用戶數(shù)據(jù)的最主要的方式(1)創(chuàng)建表CREATETABLEAPP_BINARY(APPCHAR(2)NOTNULL,MODULEVARCHAR2

14、(12)NOTNULL,SEQNONUMBERNOTNULL,LENGTHNUMBER,BINLONGRAW,CONSTRAINTPK_APP_BINARYPRIMARYKEY(APP,MODULE,SEQNO)TABLESPACEDATA_SPCPCTFREE10PCTUSED40INITRANS1MAXTRANS255STORAGE(INITIAL24MNEXT64KMINEXTENTS1MAXEXTENTS505PCTINCREASE0)ENABLECONSTRAINTPK_APP_BINARYUSINGINDEXPCTFREE10INITRANS2MAXTRANS255TABLESPA

15、CEINDX_SPCSTORAGE(INITIAL80KNEXT64KMINEXTENTS1MAXEXTENTS505PCTINCREASE0);說明:PCTFREE10當表的數(shù)據(jù)塊的使用超過90%是自動使用下一個數(shù)據(jù)塊PCTUSED40當表的數(shù)據(jù)塊的使用小于40時系統(tǒng)不會分配新的數(shù)據(jù)塊(大將會節(jié)省空間,增大insert和upate的系統(tǒng)消耗)INITIAL初始空間大小NEXT下一擴展空間的大小MINEXTENTS初始分配的區(qū)域數(shù)目MAXEXTENTS最大可分配的區(qū)域數(shù)目PCTINCREASE數(shù)據(jù)段每個區(qū)域大小的增大比率(2)刪除表DROPTABLE表名;(3)表改名RENAME表名TO新表名

16、(也可以修改索引)(4)增加列ALTERTABLE表名ADD字段名類型);(5)刪除例ALTERTABLE表名DROP字段名;7.34不能刪除列,8I的初始化參數(shù)compatible=時才可刪除列(6)增加主鍵ALTERTABLE表名ADDCONSTRAINT主鍵名PRIMARY(字段,);(7)分區(qū)建表(8的新功能)分區(qū)是將一個對象的數(shù)據(jù)分開存儲的一種機制,減少磁盤I/O將一個較大的表中數(shù)據(jù)分成一些較小的表CREATETABLEPERSONS(NONUMBERPRIMARKKEY,NAMEVARCHAR2(20),SEXCHAR(1),BIRDAYDATE)小于NO98010時用PART1小

17、于NO98020時用PART2小于NO98030時用PART3PARTITIONBYRANGE(NO)(PARTTIONPART1VALUESLESSTHEN(98010)TABLESPACESZJ1,PARTTIONPART2VALUESLESSTHEN(98020)TABLESPACESZJ2,PARTTIONPART3VALUESLESSTHEN(98020)TABLESPACESZJ3,小于NO98030時用小于NO98030時用PARTTIONPART4VALUESLESSTHEN(MAXVALUE)PART4);查詢SELECT*FROMPERSONS(PART2,PART3)WH

18、ERENOBETWEEN98015AND98025一般分區(qū)的表空間建立在不同的磁盤上(8) 常用字段數(shù)據(jù)類型CHAR最長2000BVARCHAR2(8I、91將采用VARCHAR)4000B(7.342000B)LONG變長字符2GBNUMBER(s,d)數(shù)字最長38位DATE日期BLOB二進制大集4GB(RAW丄ONGRAW將在未來版本中淘汰)ROWID物理地址類型(9) 回滾(回退)COMMIT和提交ROLLBACK:我們對數(shù)據(jù)庫的操作是由事務(wù)來控制管理的,在一個事務(wù)中,應(yīng)該及時對所作的操作進行提交,以方式操作無效,也可取消非法的操作數(shù)據(jù)庫事務(wù):是一個邏輯的工作單元回滾和提交到上次回滾或提

19、交點的事務(wù)操作注意事項:有一些特殊的事務(wù)是回自動提交(隱式提交),在操作的過程種一定注意:QUIT、EXIT、CREATETABLE、ALTERTABLE、DROPTABLE、CREATEVIEW、ALTERVIEW、DROPVIEW、GRANT、REVOKE、CONNECT、DISCONNECT、AUDIT(審計)、NOAUDIT.(10) 清空表:TRUNCATETABLE表名;注意事項:清空表的操作不能回滾,所要清空的表不能被其他事務(wù)鎖定,不能清空試圖和同義詞,清空表不觸發(fā)觸發(fā)器。2. 索引,為增加查詢的速度,會影響數(shù)據(jù)的更新負荷(要適度的建立索引)創(chuàng)建索引CREATEINDEXINDE

20、X_JXC_COM_DAY_TRANSIDONJXC_COM_DAY(TRANS_ID)TABLESPACEINDX_SPCPCTFREE10INITRANS2MAXTRANS255STORAGE(INITIAL20MNEXT5MMINEXTENTS1MAXEXTENTS505PCTINCREASE0);創(chuàng)建索引PARALLEL(DEGREE5)并行的5個進程共同創(chuàng)建索引(不使用于創(chuàng)建主健)NOLOGGING參數(shù)可選Oracle8l支持函數(shù)索引Oracle8I支持聯(lián)機索引online參數(shù)創(chuàng)建索引(因為創(chuàng)建索引時表自動加鎖不允許更新而使用ONLINE參數(shù)則可以聯(lián)機創(chuàng)建索引了)(1) 查詢中使用索

21、引,oracle自動分析語句使用最佳的索引,主要依據(jù)sql查詢語句的WHERE條件,也可強制使用索引如:select-+INDEX(IDX_JMD_MFDATE)也可/*+INDEX(IDX_JMD_MFDATE)*/JMDMFIDGZ,ROUND(SUM(JCHSJJJE),2)HSJE,ROUND(SUM(JCBHSJJJE),2)BHSJEFROMJXCMFRAMEDAYWHEREJMDWMIDIN('1','2','3')ANDJMDDATE=TO_DATE('HSJSRQ','YYYYMMDD')GROU

22、PBYJMDMFID具體的查詢語句用PL/SQL的EXPLANPLANWINDOW進行查詢索引的使用情況,大數(shù)據(jù)量的表一定注意索引的使用情況強制使用索引時盡量使用/*+INDEX(JXCMFRAMEDAYIDX_JMD_MFDATE)*/避免所選擇的語句被注釋并且多表聯(lián)立(或通過同義詞訪問)時盡量強制使用索引多個表的索引使用格式/*+INDEX(表1索引1)INDEX(表2索引2)*/(2) 分區(qū)局部索引CREATEINDEXPERSONS_NOONPERSONS(NO)LOCAL(PARTIONPART1TABLESPACESZJ1,PARTIONPART2TABLESPACESZJ2,PA

23、RTIONPART3TABLESPACESZJ3,PARTIONPART4TABLESPACESZJ4);分區(qū)全局索引CREATEINDEXPERSONS_NOONPERSONS(NO)GLOBALPARTIONBYRANGE(NO)(PARTIONPART1VALUESLESSTHEN(98010)TABLESPACESZJ_INDEX1,PARTIONPART2VALUESLESSTHEN(98020)TABLESPACESZJ_INDEX2,PARTIONPART3VALUESLESSTHEN(98030)TABLESPACESZJ_INDEX3,PARTIONPART4VALUESLE

24、SSTHEN(MAXVALUE)TABLESPACESZJ_INDEX4);(3) 創(chuàng)建索引注意事項:索引的表不能被其他事務(wù)鎖定,8I支持ORACLE系統(tǒng)函數(shù)的結(jié)果當成字段進行索引。7.34不支持3. 視圖:是包含一個或多個表(視圖)中數(shù)據(jù)的簡化描述執(zhí)行一個查詢結(jié)果,并將它看成一個表(虛擬表)例:CREATEVIEWSYS_GZASSelectCODE,NAME,SJCODE,ISSPB,ISWSFB,FLAG,TYPE,GDFL,BDFL,JHLRL,JHZZTS,YYMJ,SEQNO,STATUS,ISZG,ZGGYS,GYSSEQ,SYSREG,SUBJECT,ISXH,ISCS,ISM

25、GYSFROMsys_gljgWHEREflag='Y'ANDfgljgjcbm(code,1)=fgetmc;Oracle8I支持實例化視圖CREATEMATERIALIZEDVIEW*TABLESPACEDATA_SPCPCTFREE10INITRANS2MAXTRANS255STORAGE(INITIAL20MNEXT5MMINEXTENTS1MAXEXTENTS505PCTINCREASE0);materializedview還需要另外的寫盤時間同義詞:減少不同用戶間數(shù)據(jù)訪問的復(fù)雜性,增加遠程分布數(shù)據(jù)的透明度和安全層沒有創(chuàng)建同義詞時FUTUREPOS用戶在對DBAUSE

26、RMCHT用戶中的表SYS_GLJG進行訪問的時候SELECT*FROMDBAUSERMCHT.SYS_GLJG;建立同義詞之后可以自由訪問CREATE【PUBLIC】SYNONYMPSZX_SYS_GLJGFORSYS_GIJGPSZX_DBWORID;創(chuàng)建了一個全局同義詞。那些可以建立同義詞:表,視圖,序列,過程,函數(shù),建立了數(shù)據(jù)庫鏈接之后的以上內(nèi)容均可序列:多用戶產(chǎn)生的唯一整數(shù)的數(shù)據(jù)庫對象,用戶可用序列自動產(chǎn)生主關(guān)鍵字的值。CREATESEQUENCESEQ_JXC_COM_DAY序列名稱INCREMENTBY1步長MINVALUE1最小值NOCYCLE沒有周期CACHE20高速緩存OR

27、DER;序列的訪問selectseq_jxc_com_day.nextvalintol_jxcseqfromdual;語句運行后自動加一seq_jxc_com_day.CURRVAL返回剛才的值不加1自定義函數(shù),編譯后可想ORACLE自己的函數(shù)一樣使用,函數(shù)必須有返回值,函數(shù)不能更新數(shù)據(jù)表的內(nèi)容例:CREATEORREPLACEFUNCTIONfONull(n1INNUMBER)RETURNNumberASBEGINIFn1=0THENReturnNULL;ELSEReturnn1;ENDIF;END;/過程:用來完成用戶一系列的操作,過程可以調(diào)用其他的過程、函數(shù)、包等。CREATEORREP

28、LACEPROCEDUREsp_cmd_com_sc(v_codeinchar)ASlbzchar(1);lnnumber;BEGIN-調(diào)用刪除編碼過程deletefromqt_commodwherecode=v_code;commit;-是否日終處理命令SELECTRTRIM(LTRIM(VALUE)INTOlbzFROMsys_paraWHEREcode='29'iflbz='Y'thenbeginselectseqnointolnfrompszx_command_rzwherecomm='SCCOM'andpara=""

29、|v_code|""exceptionwhenno_data_foundthenINSERTINTOpszx_command_rzVALUES(seq_pszx_command_rz.NEXTVAL,SYSDATE,'SCCOM',”|v_code”');commit;return;end;endif;sp_scspbm(v_code);commit;EXCEPTIONWHENOTHERSTHENsp_ht_error('r','sp_cmd_com_sc',v_code,sqlcode,sqlerrm);raise;

30、ENDsp_cmd_com_sc;/12包:數(shù)據(jù)庫中的實體,包含一系列的公共常量、變量、數(shù)據(jù)類型、光標(游標)過程及函數(shù)的定義,具有模塊化的優(yōu)點,包包括:包頭和包體13.JOB:為系統(tǒng)設(shè)定定時執(zhí)行的過程建立JOBvariablejobnonumber;BEGINdbms_job.submit(:jobno,'sp_pszx_rz_job;',TRUNC(sysdate)+1.21,'TRUNC(SYSDATE+1)+0.21');END;/printjobno;/手工執(zhí)行JOB:EXECUTEDBMS_JOB.RUN(JOB號);刪除JOB:EXECUTEDBM

31、S_JOB.REMOVE(JOB號);查詢JOB號及其實行情況SELECT*FROMUSER_JOBS;當自動執(zhí)行的作業(yè)錯誤超過16次,系統(tǒng)將該作業(yè)標記為壞,14觸發(fā)器:是一一個PL/SQL過程,與一個表相關(guān)聯(lián),當向一個表發(fā)出SQL語句滿足某一觸發(fā)器的觸發(fā)條件時,系統(tǒng)便自動執(zhí)行觸發(fā)器的觸發(fā)體。一個表可以有多個觸發(fā)器建立觸發(fā)器:CREATEORREPLACETRIGGER<觸發(fā)器名>觸發(fā)條件觸發(fā)體CREATEORREPLACETRIGGERdelete_commod_xstm1afterdeleteoncommod_xstm1foreachrowbegindeletefromqt_c

32、ommodwherecode=:old.xstmanddptm=:old.dptm;deletefromcommod_xstm2wherexstm=:old.xstm;end;/(1)觸發(fā)時間BEFORE、AFTER(2)觸發(fā)事件INSERT、UPDATE、DELETE(3)觸發(fā)子類型行觸發(fā)(ROW)和語句觸發(fā)(STATEMENT),行觸發(fā)的UPDATE觸發(fā)器可以指定更新的字段,當對制定的字段進行更新時觸發(fā)該觸發(fā)器,例:CREATEORREPLACETRIGGER"UPDATE_COMMOD_XSTM1"AFTERUPDATEOF"DPTM","

33、;GZ","HL"ON"DBAUSERMCHT"."COMMOD_XSTM1"REFERENCINGOLDASOLDNEWASNEWFOREACHROWdeclarevcodevarchar2(13);vdzxlvarchar2(15);vppvarchar2(15);vppnamevarchar2(30);begin過程體end;/(4) 觸發(fā)器關(guān)鍵值有兩個關(guān)鍵值分別對應(yīng)被觸發(fā)行中的老表值和新表值用OLD和NEW來表示,insert老表值為NULL,delete新表值為NULL,只有update才同時存在新老表值。15游標

34、:大型數(shù)據(jù)庫沒有記錄的的概念,要想實現(xiàn)對符合條件的指定數(shù)量的數(shù)據(jù)記錄進行操作,需要用到游標CREATEORREPLACEPROCEDUREsp_cwzzpz_rowno(V_FTransIDINvarchar2)ASCURSORcur_cwzz_fnumISSELECTdistinetfnumFROMCWZZ_pzWHEREFTranslD=V_FTransIDorderbyfnum;CURSORcur_cwzz(V_FNUMvarchar2)ISSELECT*FROMCWZZ_PZWHEREFTranslD=V_FTransIDandFnum=V_FNUMorderbyfdcdesc,fac

35、ctid,fobjid1forupdate;Irowinteger;Ifnuminteger;row_cwzzcwzz_pz%rowtype;BEGINOPENcur_cwzz_fnum;LOOPFETCHcur_cwzz_fnumINTOIfnum;EXITWHENcur_cwzz_fnum%NOTFOUNDORcur_cwzz_fnum%NOTFOUNDISNULL;lrow:=0;OPENcur_cwzz(lfnum);LOOPFETCHcur_cwzzINTOrow_cwzz;EXITWHENcur_cwzz%NOTFOUNDORcur_cwzz%NOTFOUNDISNULL;upda

36、tecwzz_pzsetFENTRYID=lrowwherecurrentofcur_cwzz;lrow:=lrow+1;ENDLOOP;closecur_cwzz;ENDLOOP;closecur_cwzz_fnum;COMMIT;END;/四、數(shù)據(jù)庫的基本維護是SGA(系統(tǒng)全局區(qū)):是一個分配給oracle的包含一個oracle實例的數(shù)據(jù)庫的控制信息的內(nèi)存斷,它主要包括:數(shù)據(jù)庫高速緩存、重演日志緩存、共享池、數(shù)據(jù)字典緩存等SGA=(db_block_buffers*blocksize)+(shared_pool_size+large_pool_size+java_pool_size+log

37、_buffers)+1MB理論上SGA可占OS系統(tǒng)物理內(nèi)存的1/21/3,我們可以根據(jù)需求調(diào)整我推薦SGA=0.45*(OSRAM)假設(shè)服務(wù)器運行ORACLB1.X版本,OS系統(tǒng)內(nèi)存為2GMEM,db_block_size是8192bytes,除了運行ORACLED據(jù)庫外,沒有其它的應(yīng)用程序或服務(wù)器軟件.這樣SGA合計約為921M(0.45*2048M),設(shè)shared_pool_size250M(250*1024*1024bytes)設(shè)databasebuffercache620M(79360*8192bytes)log_buffer=524288large_pool_size=314572

38、8030Mjava_pool_size=2097152020Msort_area_size=524288512k(65k-2M)sort_area_retained_size=524288MTS時sort_area_retained_size=sort_area_size1. 初始化參數(shù)的說明db_name="hdqt_db"數(shù)據(jù)庫的名字instance_name=hdqt實例名service_names=hdqt_db服務(wù)名db_files=1024數(shù)據(jù)庫文件的最大允許數(shù)目control_files=("d:hdqtctrlfilecontrol01.ctl&q

39、uot;,"d:hdqtctrlfilecontrol02.ctl","d:hdqtctrlfilecontrol03.ctl")控制文件存放路徑從oracle8開始,控制文件還存儲數(shù)據(jù)庫恢復(fù)信息。open_cursors=100(1)打開光標數(shù)(2)這個參數(shù)可以同時被每個用戶進程擁有,這個參數(shù)的最大值依操作系統(tǒng)不同而不同。(3)在創(chuàng)建一個包含很多表的合成視圖時,如果此參數(shù)很小,則視圖創(chuàng)建會不成功。max_enabled_roles=30最大允許的角色數(shù)db_file_multiblock_read_count=8數(shù)據(jù)文件每次讀取的塊數(shù)db_block_

40、buffers=3000(1)數(shù)據(jù)高速緩沖區(qū)(2)訪問過的數(shù)據(jù)都放在這一片內(nèi)存區(qū)域,該參數(shù)越大,Oracle在內(nèi)存中找到相同數(shù)據(jù)的可能性就越大,也即加快了查詢速度。(3)db_block_buffers以塊為單位,假如DB_BL0CK_SIZE=2K,db_block_buffers=3200,則占用內(nèi)存=3200*2K=6400K。(4)該參數(shù)越大越好但不要超過系統(tǒng)內(nèi)存的一半以下的語句用于查詢數(shù)據(jù)緩沖區(qū)的命中率(0-1)1是最理想的至少要在0.95以上,如較低應(yīng)該增加數(shù)據(jù)緩沖區(qū)的大小SELECTROUND(1-(SUM(DECODE(NAME'physicalreads',v

41、alue,0)/(sum(decode(NAME,'dbblockgets',value,0)+sum(decode(name,'consistentget',value,0),2)fromv$sysstatshared_pool_size=8780992(1)SQL共享緩沖池(2)該參數(shù)是庫高速緩存和數(shù)據(jù)字典的高速緩存。(3)該參數(shù)設(shè)置的太小回嚴重影響數(shù)據(jù)庫的性能,出現(xiàn)無效的單元被調(diào)用提示(4)單位為字節(jié),大小不要超過系統(tǒng)內(nèi)存的一半。large_pool_size=614400大池分配堆的大小java_pool_size=0log_checkpoint_int

42、erval=10000log_checkpoint_timeout=1800processes=50同時連接的進程數(shù),并發(fā)連接到ORACLE上操作系統(tǒng)進程的的最大數(shù)量最大值4322parallel_max_servers=5用戶事例的查詢服務(wù)器的最大數(shù)量log_buffer=32768重演日志緩沖區(qū)(128K*CPU個數(shù))db_domain=:指明數(shù)據(jù)庫的域名(默認的是WORLD),這里可以用您公司的域名。global_names=true如果"數(shù)據(jù)庫鏈路名”和它所要連接的"數(shù)據(jù)庫”擁有相同的名字,則設(shè)置global_names=TRUE,否則,設(shè)置global_names

43、=FALSE,設(shè)置成true時據(jù)庫名:db_name+"."+db_domainoracle_trace_collection_name=""user_dump_dest=d:hdqtudump服務(wù)器跟蹤日志文件存放路徑db_block_size=8192(1)數(shù)據(jù)庫塊大?。?)Oracle默認塊為2KB,太小了,因為如果我們有一個8KB的數(shù)據(jù),則2KB塊的數(shù)據(jù)庫要讀4次盤,才能讀完,而8KB塊的數(shù)據(jù)庫只要1次就讀完了,大大減少了I/O操作。(3)數(shù)據(jù)庫安裝完成后,就不能再改變db_block_size的值了,只能重新建立數(shù)據(jù)庫并且建庫時,要選擇手工安裝

44、數(shù)據(jù)庫。remote_login_passwordfile=exclusive密碼文件的檢查方式:none:導(dǎo)致好像oracle的密碼文件不存在,即不安全的連接,不允許授權(quán)的連接,該選項為默認值。Exclusive:密碼文件只用于一個數(shù)據(jù)庫Shared:密碼文件用于多個數(shù)據(jù)庫os_authent_prefix=""外部身份驗證distributed_transactions=10數(shù)據(jù)庫服務(wù)版本(要創(chuàng)建函數(shù)索引該參數(shù)參數(shù)必須選中)Query_rewrite_enabled=true(要創(chuàng)建函數(shù)索引該參數(shù)參數(shù)必須選中)Query_rewrite_integrity=truste

45、d(要創(chuàng)建函數(shù)索引該參數(shù)參數(shù)必須選中)sort_area_size=65536排序區(qū),當創(chuàng)建已經(jīng)有數(shù)據(jù)的表的索引時必須使用排序空間,在專用服務(wù)器環(huán)境中,由SORT_AREA_SIZE參數(shù)決定的排序區(qū)域是進程全局區(qū)ProcessGlobalArea(PGA)內(nèi)UGA的一部分。在一個共享的服務(wù)器環(huán)境中,排序區(qū)域位于共享池內(nèi)sort_area_retained_size=65536參數(shù)決定排序區(qū)域最終縮小到的大小,以便將內(nèi)存釋放回Oracle服務(wù)器處理的用戶全局區(qū)(UserGlobalArea,UGA)。如果排序區(qū)域太小以至于滿足不了排序操作要求,那么數(shù)據(jù)就會被分成更小的塊,叫做排序分段(sortr

46、uns),并且被存儲在位于硬盤上的臨時排序段中。這種折衷辦法會影響硬盤的整體I/Ojob_queue_processes=7數(shù)據(jù)庫實例中作業(yè)隊列進程的數(shù)量,系統(tǒng)缺省值為0,正常定義范圍為036,根據(jù)任務(wù)的多少,可以配置不同的數(shù)值job_queue_interval=60單位:秒定義系統(tǒng)每隔N秒喚醒該進程一次。系統(tǒng)缺省值為60秒,正常范圍為13600秒。事實上,該進程執(zhí)行完當前任務(wù)后,就進入睡眠狀態(tài),睡眠一段時間后,由系統(tǒng)的總控負責將其喚醒。open_links同時打開的鏈接數(shù)dml_locks(1)用戶一次可對表設(shè)定鎖的最大數(shù)目2) 如果有三個用戶修改6個表,則需18個DML鎖來實現(xiàn)并行操作,

47、如果設(shè)定DML_LOCKS不夠大,操作時執(zhí)行將中斷,你可以通過你的應(yīng)用程序的操作規(guī)模和最大的并行使用的用戶數(shù)來估算系統(tǒng)所需要的DML_LOCKS的值,但該值的大小對數(shù)據(jù)庫的其他性能沒有影響,所以一般都把它設(shè)得很大,遠超過實際中可能達到的值,如果在系統(tǒng)運行中經(jīng)常發(fā)生表鎖死的現(xiàn)象,就應(yīng)該考慮加大該值。dbwr_io_slaves后臺寫進程數(shù)log_archive_start=true開啟自動歸檔數(shù)據(jù)庫的手工啟動7.34運行程序SVRMGR23,8I運行SVRMGRLSQL>CONNECTINTERNAL/*MCHT_DB;ORACLE9i用sqlplus連接CONNECT/ASSYSDBA;

48、SQL>STARTUPPFILE=D:MCHTPFILEINITMCHT.ORAOPEN前提條件:在系統(tǒng)的服務(wù)中相應(yīng)的數(shù)據(jù)庫的實例一定要啟動,服務(wù)不一定啟動。啟動的過程中會有數(shù)據(jù)庫啟動的相應(yīng)的提示,如果數(shù)據(jù)庫在啟動的過程中存在啟動不起來的情況也會有相應(yīng)的提示,口:日志文件錯誤、數(shù)據(jù)文件錯誤、參數(shù)配置錯誤、控制文件錯誤等由于系統(tǒng)參數(shù)配置、數(shù)據(jù)庫日志文件損壞、控制文件損壞、數(shù)據(jù)庫數(shù)據(jù)文件損壞等原因造成的數(shù)據(jù)庫不能啟動需要用手工啟動的方式進行啟動數(shù)據(jù)庫,查看出錯的原因并修復(fù)。2. 數(shù)據(jù)備份方式(1)導(dǎo)出備份,將數(shù)據(jù)庫中的內(nèi)容全部導(dǎo)出來形成數(shù)據(jù)文件進行工作站備份可以查看幫助EXP73HELP=Y

49、EXP73(EXP)DBAUSERMCHT/FUTUREMCHTMCHT_DBFULL=Y|NBUFFERS=10000OWNER=DBAUSERMCHTFILE=MCHT.DMPTABLES=表名ROW=Y|NLOG=MCHT丄0G導(dǎo)入IMP73(IMP)可以查看幫助IMP73HELP=YIMP73(IMP)DBAUSERMCHT/FUTUREMCHTMCHT_DBFULL=Y|NBUFFERS=10000FROMUSER=用戶名TOUSER=用戶名FILE=MCHT.DMPTABLES=表名ROW=Y|NLOG=MCHT.LOGIGNORE=Y|NCONSISTENT=Y(默認N)按一致方

50、式導(dǎo)出(不能在增量導(dǎo)出中使用)INCTYPE導(dǎo)出類型INCREMENTAL(增量)CUMULATIVE(積累)COMPLETE(完全)不能導(dǎo)出包含LOBBFILEREF,但是oracle8l已經(jīng)支持了)直接路徑大大提高導(dǎo)出速度Filesize(8I新下特性)=2G規(guī)定導(dǎo)出文件的大?。?)停止服務(wù)后,將數(shù)據(jù)庫的整個目錄進行復(fù)制備份停止啟動備份的過程可以寫一個批處理BF.CMDc:winntsystem32netstoporacleservicemcht/yc:winntsystem32netstoporacleservicemcqt/yc:winntsystem32netstoporacleTN

51、SlistenerXcopyd:pszxd:backuppszx/SNXcopyd:mchtd:backupmcht/S/VXcopyd:mcqtd:backupmcqt/S/Vrem磁帶備份REMc:winntsystem32ntbackup.exebackupd:pszxd:mchtd:mcqt/d"BACKUP"/hc:on/tcopy/l"c:logbackup.log"/tape:0c:winntsystem32netstartoracleTNSlistenerc:winntsystem32netstartoraclestartmcqtc:wi

52、nntsystem32netstartoraclestartmchtat03:00/interactive/every:M,T,W,Th,F,S,Sud:bfbf.cmd在每天的凌晨3點執(zhí)行bf.cmd中的備份內(nèi)容atid/delete刪除計劃調(diào)度隊列中的指定的事務(wù)NT需要啟動SCHEDUCLE計劃任務(wù)調(diào)度服務(wù)。W2K不需要,NT下的AT命令所執(zhí)行的批處理文件中不能訪問網(wǎng)絡(luò)盤,W2K下可以。3. 過程加密ORACLE提供數(shù)據(jù)加密技術(shù),能夠?qū)τ脩舻淖远x函數(shù)、過程、包的原始數(shù)據(jù)文件進行加密處理,從而有效的保證軟件的版權(quán),但是不能對觸發(fā)器進行加密,已經(jīng)加密的文件不能解密WRAP23(WRAP)IN

53、AME=輸入的文件名.SQLONAME=輸出的文件名.BSQ用輸出的文件名.BSQ文件中的語句所建立的過程、包、函數(shù)等在數(shù)據(jù)庫中均是加密的。4. 數(shù)據(jù)庫的偵聽(Listener.oraj)和網(wǎng)絡(luò)連接配置文件(Tnsnamesor0)偵聽:安裝數(shù)據(jù)庫實例的服務(wù)器上必須配置偵聽數(shù)據(jù)庫安裝目錄下的NETWORKADMINListener.ora提供對外服務(wù)的數(shù)據(jù)庫接口,內(nèi)容如下:LISTENER=(ADDRESS_LIST=(ADDRESS=(COMMUNITY=TCP.world)(Host=192.168.0.2)(PROTOCOL=TCP)(Port=1521)(ADDRESS=(COMMUN

54、ITY=TCP.world)(Host=192.168.0.2)(PROTOCOL=TCP)(Port=1526)STARTUP_WAIT_TIME_LISTENER=0CONNECT_TIMEOUT_LISTENER=10TRACE_LEVEL_LISTENER=OFFSID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=PSZX)(SID_DESC=(SID_NAME=MCHT)#PASSWORDS_LISTENER=(oracle)7.34只能有一個偵聽,8I可以有多個偵聽,服務(wù)器每增加一個數(shù)據(jù)庫都需要手工修改配置將數(shù)據(jù)庫的內(nèi)容填入,并重新啟動偵

55、聽服務(wù)。Host(主機地址)可以為主機的名字,也可以為IP地址,特殊的IP:也可,一般W2K在沒用連通網(wǎng)絡(luò)的時候不能獲得本級制定的IP地址(NT沒有此問題)它會造成偵聽不能啟動,數(shù)據(jù)庫不能進行正常的訪問。一般在數(shù)據(jù)庫安裝完成之后系統(tǒng)會自動創(chuàng)建偵聽服務(wù),如果是W2K沒有進行安裝直接導(dǎo)入的注冊表可運行ORACLE安裝目錄下的BIN目錄下的LSNRCTL.EXE文件后運行START回車后自動建立并啟動偵聽服務(wù),如果偵聽服務(wù)已經(jīng)存在,它會啟動該服務(wù)。網(wǎng)絡(luò)連接配置文件:用戶工作站要訪問指定地址的ORACLE數(shù)據(jù)庫服務(wù)器需要配置相應(yīng)的配置文件,可通過ORACLE本身的配置工具也可通過直接修改配置文件的辦法

56、,內(nèi)容:pszx_db.world=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(COMMUNITY=tcp.world)(PROTOCOL=TCP)(Host=192.168.0.2)(Port=1521)(ADDRESS=(COMMUNITY=tcp.world)(PROTOCOL=TCP)(Host=192.168.0.2)(Port=1526)(CONNECT_DATA=(SID=pszx)檢查連接的命令TNSPINGPSZX_DB相應(yīng)的每天啟動的日志信息存放在數(shù)據(jù)庫系統(tǒng)的安裝目錄下的NETWORK'LOG目錄下的listener.log和sqlne

57、t.log文件記載,它會隨著時間的增加而增長,注意刪除,以保留可用空間6.數(shù)據(jù)庫典型數(shù)據(jù)維護方案數(shù)據(jù)文件改名(當然包括日值文件的改名)SVRMGR>connectinternalSVRMGR>shartupmountORCL;SVRMGR>alterdatabaserenamefile'e:test.dbfto'd:test.dbf;注意:一定要加單引號Alterdatabaserenamefiledld_file_name1',old_file_name2'tonew_file_name1new_file_name2'(這是同時修改多

58、個數(shù)據(jù)文件的標準格式,修改完成之后再打開數(shù)據(jù)庫alterdatabaseopen;)查看數(shù)據(jù)文件狀態(tài)SQL>selectfile_name,file_id,tablespace_name,bytes,statusfromdba_data_files;1) ORACLE表空間恢復(fù)方案Selectfile#,online,errorfromv$recover_file查找需要恢復(fù)的文件IDSelectname,file#fromv$datafile;根據(jù)相應(yīng)的ID查找相應(yīng)的文件名RECOVERDATABASE執(zhí)行整個數(shù)據(jù)庫恢復(fù)RECOVERDATAFILE執(zhí)行特定數(shù)據(jù)文件恢復(fù)RECOVERTABLESPACE表空間名恢復(fù)指定表空間在SVRMGRL中前面不用ALTERDATABASE而在sql/pus中用臨時表空間并不包含真正的數(shù)據(jù),將該表空間置為OFFLINE后刪掉重建即可(1)

溫馨提示

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

評論

0/150

提交評論