




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Oracle教程
目錄
Oracle教程1
一、為什么要學(xué)習(xí)Oracle8
二、Oracle公司8
三、Oracle安裝、啟動及卸載9
3.1.安裝9
3.2.Oracle的卸載、刪除9
四、Oracle體系結(jié)構(gòu)10
4.1.體系結(jié)構(gòu)10
4.2.11
4.3.內(nèi)存結(jié)構(gòu)11
4.4.Oracle實例進程結(jié)構(gòu)12
4.5.Oracle物理組件13
4.6.Oracle邏輯組件13
4.7.模式15
4.8.數(shù)據(jù)文件(*.<^£)15
4.9.控制文件(*改1)和日志文件(*.log)16
4.10.邏輯存儲結(jié)構(gòu)16
4.11.數(shù)據(jù)字典17
五、Oracle術(shù)語解釋詳解(摘自網(wǎng)絡(luò))20
4.1.數(shù)據(jù)庫名21
4.2.數(shù)據(jù)庫實例名23
4.3.數(shù)據(jù)庫域名24
4.4.數(shù)據(jù)庫服務(wù)名24
六、SYS和SYSTEM用戶25
七、啟動Oracle25
八、Oracle管理工具介紹26
九、查看Oracle27
1.查看當(dāng)前的Oracle實例名稱和主機名稱:27
2.查看用戶帳戶及狀態(tài)27
十、Oracle用戶解鎖27
1.對scott用戶解鎖27
2.更改scott用戶的密碼:27
3.鎖定scott用戶:27
+-、使用OEM27
十二、SQL/PLUS連接數(shù)據(jù)庫28
12.1.SQL*Plus工具28
12.2.連接時28
12.3.連接遠程數(shù)據(jù)庫29
十三、SQL*PLUS常用命令30
十四、表空間49
14.1.創(chuàng)建表空間49
14.2.表空間狀態(tài)屬性53
14.3.刪除表空間56
14.4.增加表空間尺寸56
14.5.查看剩余空間56
14.6.合并空閑塊57
14.7.設(shè)置默認表空間57
14.8.撤銷表空間58
14.9.查看當(dāng)前用戶的缺省表空間61
十五、用戶手里61
15.1.創(chuàng)建用戶61
15.2.刪除用戶63
15.3.修改用戶63
15.4.修改口令63
15.5.使密碼失效64
15.6.修改默認表空間64
15.7.鎖定用戶64
15.8.權(quán)限的概述65
15.9.系統(tǒng)權(quán)限66
15.10.又寸象權(quán)限70
15.11.查看和撤消權(quán)限72
15.12.角色75
15.13.創(chuàng)建角色77
15.14.為角色授予權(quán)限78
15.15.為用戶授予角色78
15.16.修改和刪除角色79
十六、數(shù)據(jù)類型81
16.1.關(guān)于number、int、integer的說明83
16.2.binary_float和binary_double83
16.3.偽列84
-Ht.表和約束84
17.1.創(chuàng)建表84
17.2.管理表中的列86
17.3.重命名表87
17.4.移動表87
17.5.刪除表88
17.6.約束分類88
17.7.查看約束93
17.8.指定級聯(lián)操作類型94
十八、SQL基礎(chǔ)95
18.1.SQL簡介95
18.2.數(shù)據(jù)定義語言97
18.3.數(shù)據(jù)操縱語言97
18.4.事務(wù)控制語言98
18.5.數(shù)據(jù)控制語言99
18.6.SQL操作符99
18.7.MEGER語句103
十九、Oracle函數(shù)106
19.1.字符函數(shù)106
19.2.數(shù)字函數(shù)108
19.3.聚合函數(shù)109
19.4.日期時間函數(shù)110
19.5.轉(zhuǎn)換函數(shù)111
19.6.日期時間格式參數(shù)113
19.7.分析函數(shù)114
19.8.通用函數(shù)115
19.9.GROUPBY子句116
19.10.HAVING子句117
19.11.實用方法118
19.12,練習(xí)118
二十、子查詢119
20.1.使用子查詢120
20.2.IN\NOTIN操作符122
20.3.ANY和ALL操作符123
20.4.常見笥旬錯誤124
20.5.多列子查詢125
20.6.關(guān)聯(lián)子查詢126
20.7.嵌套子查詢127
二十一、高級查詢128
22.1.UNION操作符128
22.2.層次化查詢129
22.3.格式化查詢131
22.4.遍歷查詢133
22.5.擴展GroupBy子句134
二十二、模式對象137
23.1.同義詞137
23.2.序列138
23.3.索弓|140
23.4.視圖155
二十三、分區(qū)表159
24.1,分區(qū)159
24.2.創(chuàng)建分區(qū)表161
24.3.范圍分區(qū)(Range)161
24.4.列表分區(qū)(List)164
24.5.散列分區(qū)(Hash)165
24.6.組合范圍散列分區(qū)167
24.7.復(fù)合范圍散列分區(qū)168
24.8.維護表分區(qū)169
二十四、PL/SQL基礎(chǔ)173
24.1.PL/SQL概述173
24.2.PL/SQL代碼編寫規(guī)則173
24.3.PL/SQL程序塊175
24.4.常量和數(shù)據(jù)類型177
24.5.變量179
24.6.運算符和注釋181
24.7.IF條件語句182
24.8.CASE語句184
24.9.循環(huán)語句186
24.10.復(fù)合變量190
24.11.記錄類型192
24.12.表類型193
24.13.集合類型195
24.14.集合方法199
24.15.游標(biāo)205
24.16.異常處理222
二十五、PL/SQL高級228
25.1.子程序228
25.2.存儲過程229
25.3.函數(shù)236
25.4.程序包240
25.5.觸發(fā)器243
一、為什么要學(xué)習(xí)Oracle
1.目前主流數(shù)據(jù)庫:
微軟:SQLServer、access
瑞典MySql:AB公司MySql
IBM公司:DB2
美國SyBase公司:SyBase
美國Oracle公司:Oracle
該使用什么樣的數(shù)據(jù)庫?
一般考慮這些方面:
/負載量多大
/
/安全性
2.商場需求量大
二、Oracle公司
/Oracle:神喻甲骨文
/地位:全球第一大數(shù)據(jù)庫廠商、全球第二大獨立軟件供應(yīng)商
/歷史:
1970年數(shù)據(jù)庫起家
1980年oracle6版本
1990年oracle7挑戰(zhàn)杯,向多元化產(chǎn)品進軍。以數(shù)據(jù)庫為優(yōu)先發(fā)展方向。
1995年oracle8版本
1999年oracle8i版本
2002年oracle9i版本
2003年oraclelOg版本
/產(chǎn)品:
■JdeveloperJBuilder
■Developer2000——VB
■Designer2000——數(shù)據(jù)庫建模
■數(shù)據(jù)庫
oraclelOg
■應(yīng)用軟件
ERP(應(yīng)業(yè)資源計劃)
OracleApplicationHi
三、Oracle安裝、啟動及卸載
3.1.安裝
>操作系統(tǒng)最好為windows2000
>內(nèi)存256M以上
>硬盤2G以上
>建議:
1.不要重復(fù)安裝
2.如果是vista或windows7操作系統(tǒng),以系統(tǒng)管理員身份登錄
3.安裝目錄中不要包含中文、空格
32Oracle的卸載、刪除
相對來說,Oracle的卸載比較麻煩。
1.運行Oracle的universalinstaller
2.運行regedit,進入注冊表,刪除Oracle相關(guān)信息。
3.進入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,右鍵,刪除
?_JKOM±J
?JMacrmda
X二JMacrovtftor
.」Ma^Oraon.coin
,CJMOOQUI
?:nMcroto^
.」MortKtKcmSrfttRt
SOFTWARE
??1ACDSystemsM(W
..Adobeltt(D
?_|Ahe.ad
./Ap?cbeGroup
?_1ApectwSoftwareFo?
?,_JBorland
?】Classes6」50ftg復(fù)皿名眼O
倒U]Cterts.
?_|C-Media
__IC-MedwAudbo
4.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下以O(shè)racle開
頭的鍵值。
?」口址3刖
?JCrddeCt^omeWgert
,」OadeOriHomeWCtertQche
SJOrKteOr^omeWnPServer
.jOr?ie<>4HomeW?gng5erver
.JOr?ieOr<HomeW9Wee(&x?
.JOradeOuHomeWSWeerM
?J0?leOr?H(?e90TN5Wenef
彳」Qxfe5er<"Cl
.i
5.重啟計算機,然后刪除硬盤上的Oracle安裝目錄。如果該目錄不讓刪除,那么把
該目錄改成別的名字,再重啟計算機,再刪除它。
四、Oracle體系結(jié)構(gòu)
1.Oracle是對象關(guān)系型數(shù)據(jù)庫系統(tǒng)
2.Oracle數(shù)據(jù)庫基于客戶端/服務(wù)器技術(shù)
4.1.體系結(jié)構(gòu)
1.Oracle服務(wù)器由Oracle數(shù)據(jù)庫和Oracle實例組成
Oracle數(shù)據(jù)庫:是數(shù)據(jù)的集合,一個邏輯單元,一系列的數(shù)據(jù)文件、日志文件、
控制文件等。物理文件,存在硬盤上。
Oracle實例:用于維護數(shù)據(jù)庫。管理數(shù)據(jù)庫的后臺進程和內(nèi)存結(jié)構(gòu)的集合稱為,
一系列的進程,在內(nèi)存中。
2.Oracle數(shù)撼Jg包括
物理結(jié)情:物理結(jié)構(gòu)包含數(shù)據(jù)庫中的一組操作系統(tǒng)文件。
:邏輯結(jié)構(gòu)指數(shù)據(jù)庫創(chuàng)建之后形成的邏輯概念之間的關(guān)系
42會話
會話是用戶與Oracle服務(wù)器的單個連接
當(dāng)用戶與服務(wù)器建立連接時創(chuàng)建會話
當(dāng)用戶與服務(wù)器斷開連接時關(guān)閉會話
4.3.內(nèi)存結(jié)構(gòu)
系統(tǒng)全局區(qū)(SGA):當(dāng)Oracle實例啟動時分配系統(tǒng)全局區(qū)
程序全局區(qū)(PGA):當(dāng)服務(wù)器進程啟動時分配程序全局區(qū)
1)系統(tǒng)全局區(qū)(SGA)
內(nèi)存結(jié)構(gòu):
a)共享池:
共享池是對SQL、PL/SQL程序進行語法分析、編譯、執(zhí)行的內(nèi)存區(qū)域
共享池由庫緩存和數(shù)據(jù)字典緩存組成。
共享池的大小直接影響數(shù)據(jù)庫的性能
b)矍攵摞,爰彳薊扇
用于存儲從磁盤數(shù)據(jù)文件中讀入的數(shù)據(jù),所有用戶共享。
服務(wù)器進程將讀入的數(shù)據(jù)保存在數(shù)據(jù)緩沖區(qū)中,當(dāng)后續(xù)的請求需要這些數(shù)據(jù)時
可以在內(nèi)存中找到,不需要再從磁盤讀取,提高了讀取速度。
數(shù)據(jù)緩沖區(qū)的大小對數(shù)據(jù)庫的讀取速度有直接的影響。
C)日志
日志記錄數(shù)據(jù)庫的所有修改信息,日志信息首先產(chǎn)生于日志緩沖區(qū)。
當(dāng)日志緩沖區(qū)的日志數(shù)據(jù)達到一定數(shù)量時,由后臺進程將日志數(shù)據(jù)寫入日志文
件中。
相對來說,日志緩沖區(qū)對數(shù)據(jù)庫的性能影響較小。
2)程序全局H
a)包含單個服務(wù)器進程所需的數(shù)據(jù)和控制信息
b)PGA是在用戶進程連接到數(shù)據(jù)庫并創(chuàng)建一個會話時自動分配的,保存每個與
Oracle數(shù)據(jù)庫連接的用戶進程所需的信息
c)PGA為非共享區(qū),只能單個進程使用,當(dāng)一個用戶會話結(jié)束,PGA釋放
4.4.Oracle實例進程結(jié)構(gòu)
^例迤程分^:
1.用戶迤程
用戶進程是一個需要與Oracle服務(wù)器進行交互的程序。當(dāng)用戶運行一個應(yīng)用
程序準(zhǔn)備向數(shù)據(jù)庫服務(wù)器發(fā)送請求時,即創(chuàng)建了用戶進程
2.服矜器迤程
服務(wù)器進程用于處理連接到該實例的用戶進程的請求。當(dāng)用戶連接至Oracle
數(shù)據(jù)庫實例創(chuàng)建會話時,即產(chǎn)生服務(wù)器進程
3.后耋迤程
后臺進程是Oracle數(shù)據(jù)庫為了保持最佳系統(tǒng)性能和協(xié)調(diào)多個用戶請求而設(shè)置
的。Oracle實例啟動時即創(chuàng)建一系列后臺進程
后臺進程
VDBWR
SMON
一、PMON進程監(jiān)控進程
清理出現(xiàn)故障的進程。
釋放所有當(dāng)前掛起的鎖定。
釋放故障進程使用的資源
二、SMON系統(tǒng)監(jiān)控進程
在實例失敗之后,重新打開數(shù)據(jù)庫時自動恢復(fù)實例。
整理數(shù)據(jù)文件的自由空間,將相鄰區(qū)域結(jié)合起來。
釋放不再使用的臨時段
三、DBWR數(shù)據(jù)寫入進程
管理數(shù)據(jù)緩沖區(qū),將最近使用過的塊保留在內(nèi)存中。
將修改后的緩沖區(qū)數(shù)據(jù)寫入數(shù)據(jù)文件中。
四、LGWR日志寫入進程
負責(zé)將日志緩沖區(qū)中的日志數(shù)據(jù)寫入日志文件。
系統(tǒng)有多個日志文件,該進程以循環(huán)的方式將數(shù)據(jù)寫入文件
4.5.Oracle物理組件
物理組件就是Oracle數(shù)據(jù)庫所使用的操作系統(tǒng)物理文件。物理文件可分為三類:
/數(shù)據(jù)文件用于存儲數(shù)據(jù)庫數(shù)據(jù),如表、索引數(shù)據(jù)等。
/控制文件是記錄數(shù)據(jù)庫物理結(jié)構(gòu)的二進制文件
/日志文件記錄對數(shù)據(jù)庫的所有修改信息,用于故障恢復(fù)
4.6.Oracle邏輯組件
數(shù)據(jù)庫的邏輯結(jié)構(gòu)是從邏輯的角度分析數(shù)據(jù)庫的組成。Oracle的邏輯組件包括:
1.表空間:
A、表空間是數(shù)據(jù)庫中最大的邏輯單位,一個Oracle數(shù)據(jù)庫至少包含一個表空間,
就是名為SYSTEM的系統(tǒng)表空間。
B、每個表空間是由一個或多個數(shù)據(jù)文件組成的,一個數(shù)據(jù)文件只能與一個表空間
相關(guān)聯(lián)。
C、表空間的大小等于表空間中所有數(shù)據(jù)文件大小之和
創(chuàng)建表空間的語法是:
CREATETABLESPACEtablespacename
DATAFILE'filename'[SIZEinteger[K|M]]
[AUTOEXTEND[OFF|ON]];
2.段
A、段是構(gòu)成表空間的邏輯存儲結(jié)構(gòu),段由一組區(qū)組成。
B、按照段所存儲數(shù)據(jù)的特征,將段分為四種類型,即數(shù)據(jù)段、索引段、回退段和
臨時段。
3.區(qū)
A、區(qū)為段分配空間,它由連續(xù)的數(shù)據(jù)塊組成。
B、當(dāng)段中的所有空間已完全使用,自動為該段分配新區(qū)。
C、區(qū)不能跨數(shù)據(jù)文件存在,只能存在于一個數(shù)據(jù)文件中
4.數(shù)據(jù)塊
A、數(shù)據(jù)塊是Oracle服務(wù)器所能分配、讀取或?qū)懭氲淖钚〈鎯卧?/p>
B、Oracle服務(wù)器以塊為單位管理數(shù)據(jù)文件的存儲空間。
>理解:
數(shù)據(jù)庫:相當(dāng)于小區(qū)
表空間:相于小區(qū)中的房子,小區(qū)至少應(yīng)該有一棟房子。
段:小區(qū)中的一個單元。
區(qū):單元中的一棟房子
數(shù)據(jù)塊:房子中的房間
4.7.模式
模式是對用戶所創(chuàng)建的數(shù)據(jù)庫對象的總稱。
模式對象包括表、視圖、索引、同義詞、序列、過程和程序包等
4.8.數(shù)據(jù)文件(*.北門
數(shù)據(jù)文件(DataFi⑹是指存儲數(shù)據(jù)庫數(shù)據(jù)的文件。數(shù)據(jù)庫中的所有數(shù)據(jù)最終都保存在數(shù)
據(jù)文件中,例如,表中的記錄和索引等。如果數(shù)據(jù)文件中的某些數(shù)據(jù)被頻繁訪問,則這些數(shù)
據(jù)會被存儲在內(nèi)存緩沖區(qū)中。讀取數(shù)據(jù)時,Oracle系統(tǒng)會首先從內(nèi)存的數(shù)據(jù)緩沖區(qū)中查找
相關(guān)數(shù)據(jù)信息,如果找不到,則從數(shù)據(jù)庫文件中的把數(shù)據(jù)讀取出來,存放在內(nèi)存的數(shù)據(jù)緩沖
區(qū)中,供查詢合用;存儲數(shù)據(jù)時,修改后的數(shù)據(jù)信息,也是先存放在內(nèi)存的數(shù)據(jù)緩沖區(qū)中,
在滿足寫入條件(例如執(zhí)行提交操作)時,由Oracle的后臺進行DBWR將數(shù)據(jù)寫入數(shù)據(jù)文
件。
數(shù)據(jù)文件一般有以下幾個特點:
/一個表空間由一個或多個數(shù)據(jù)文件組成。
/一個數(shù)據(jù)文件只對應(yīng)一個數(shù)據(jù)庫。而一個數(shù)據(jù)庫通常包含多個數(shù)據(jù)文件。
/數(shù)據(jù)文件可以通過設(shè)置其參數(shù),實現(xiàn)其自動擴展的功能。
如果想要了解數(shù)據(jù)文件的信息,可以查詢數(shù)據(jù)字典dba_data_files和
v$datafileo
可以通過查詢視圖來查看數(shù)據(jù)庫包含哪些數(shù)據(jù)文件:
selectfile_namefromdba_data_files;
4.9.控制文件(*丘1)和日志文件(*.log)
>控制文件
控制文件(ControlFile)是一個很小的二進制文件,用于描述和維護數(shù)據(jù)庫的物理
結(jié)構(gòu)。在Oracle數(shù)據(jù)庫中,控制文件相當(dāng)重要,它存放有數(shù)據(jù)庫中數(shù)據(jù)文件和日志文
件的信息。Oracle數(shù)據(jù)庫在啟動時需要訪問控制文件,在數(shù)據(jù)庫的使用過程中,數(shù)據(jù)
庫需要不斷更新控制文件,由此可見,一旦控制文件受損,那么數(shù)據(jù)庫將無法工常工作。
查看控制文件的語句:
selectnamefromv$controlfile;
A日志文件(重做日志文件)
重做日志文件(Red。LogFile)是記錄數(shù)據(jù)庫中所有修改信息的文件,簡稱日志文件。
其中,修改信息包括數(shù)據(jù)庫中數(shù)據(jù)的修改信息和數(shù)據(jù)庫結(jié)構(gòu)的修改信息等,例如刪除
表中的一行數(shù)據(jù)或刪除表中的一個列,如果只是進行了查詢操作,則該操作不會被記錄
到日志文件中。日志文件是數(shù)據(jù)庫系統(tǒng)的最重要文件之一,它可以保證數(shù)據(jù)庫安全,是
進行數(shù)據(jù)庫備份與恢復(fù)的重要手段。如果日志文件受損,數(shù)據(jù)庫同樣可能無法正常運行。
4.10.邏輯存儲結(jié)構(gòu)
數(shù)據(jù)庫--表空間--段一區(qū)一數(shù)據(jù)塊
>表空間
1.表空間是Oracle中最大邏輯存儲結(jié)構(gòu),它與物理上的一個或多個數(shù)據(jù)文件相對應(yīng),
每個Oracle數(shù)據(jù)庫都至少有一個表空間,表空間的大小等構(gòu)成該表空間的所有數(shù)
據(jù)文件大小的總和。表空間用于存儲用戶在數(shù)據(jù)庫中創(chuàng)建的所有內(nèi)容,例如用戶在
創(chuàng)建表時,可以指定一個表空間存儲該表,如果用戶沒有指定表空間,則Oracle
系統(tǒng)會將用戶創(chuàng)建的內(nèi)容存儲到默認的表空間中。
2.系統(tǒng)默認安裝的表空間:
表空間說明
system系統(tǒng)表空間,用于存儲系統(tǒng)的數(shù)據(jù)字典,系統(tǒng)和管理信息和用戶數(shù)據(jù)
表等。
sysaux輔助系統(tǒng)表空間。用于減少系統(tǒng)表空間的負荷,提高系統(tǒng)作業(yè)效率。
該表空間由Oracle系統(tǒng)自動維護,一般不用于存儲用戶數(shù)據(jù)。
temp臨時表空間。用于存儲臨時數(shù)據(jù),例如存儲排序時產(chǎn)生默認數(shù)據(jù)。一
般情況下,數(shù)據(jù)庫中所有用戶都使用temp做為默認的臨時表空間。
undotbsl撤銷表空間。用于在自動撤銷管理方式下存儲撤銷信息。在撤銷表空
間中,除了回退段以外,不能建立任何其他類型的段,所以,用戶不
可以在撤銷表空間中創(chuàng)建任何數(shù)據(jù)庫對象。
users用戶表空間。用于存儲永久性用戶對象和私有信息。通常可以將自定
義的一些表信息創(chuàng)建在users表空間中。
3.查看Oracle數(shù)據(jù)庫中存在表空間信息:
selecttablespacenamefromdbatablespaces;
4.11.數(shù)據(jù)字典
Oracle數(shù)據(jù)字典(DataDictionary)是存儲在數(shù)據(jù)庫中的所有對象信息的知識庫,
Oracle數(shù)據(jù)庫管理系統(tǒng)使用數(shù)據(jù)字典獲取對象信息和安全信息,而用戶和數(shù)據(jù)庫系統(tǒng)管理
員則用數(shù)據(jù)字典來查詢數(shù)據(jù)庫信息。
Oracle數(shù)據(jù)字典保存有數(shù)據(jù)庫中對象和段的信息,例如表、視較長、索引、包、存儲
過程以及與用戶、權(quán)限、角色、審計和約束等相關(guān)的信息。如查看Oracle用戶是dba_users
視圖。
數(shù)據(jù)字典視圖類型
視圖類型說明
USER視圖USER視圖的名稱以user_為前綴,用來記錄用戶對象的信
息。例如user_tables視圖。(只能獲得用戶定義的表信息)
ALL視圖ALL視圖的名稱以all_為前綴,用來記錄用戶對象的信息以
及被授權(quán)訪問的對象信息。例如all_synonyms視圖,用來
查看所有同義詞。
DBA視圖DBA視圖的名稱以dba_為前綴,用來記錄數(shù)據(jù)庫實例的所
有對象的信息。例如dba_tables視圖,可以獲取數(shù)據(jù)庫實
例的所有表信息。
V$視圖V$視圖的名稱以v$為前綴,用來記錄與數(shù)據(jù)庫活動相關(guān)的
性能統(tǒng)計動態(tài)信息。例如v$datafile視圖,可以獲得一些
數(shù)據(jù)文件的統(tǒng)計信息。
GV$視圖GV$視圖的名稱以gv$為前綴用來記錄分布式環(huán)境下所有
實例的動態(tài)信息。例如gv$lock視圖??梢垣@得數(shù)據(jù)庫實
例的信息。
基本數(shù)據(jù)字典
字典名稱說明
dba_tables所有用戶的所有表的信息
dba_tab_columns所有用戶的表的字段信息
dba_views所有用戶的所有視圖信息
dba_synonyms所有用戶的同義詞信息
dba_sequences所有用戶的序列信息
dba_constraints所有用戶的表的約束信息
dbajndexes所有用戶的表的索引簡要信息
dba_ind_columns所有用戶的索引的字段信息
與數(shù)據(jù)庫組件相關(guān)的數(shù)據(jù)字典
組件數(shù)據(jù)字典中的表或視圖說明
數(shù)據(jù)庫v$datafile記錄系統(tǒng)的運行■情況
dba_tablespaces系統(tǒng)表空間的基本信息
表空間
dba_free_space系統(tǒng)表空間的空閑空間的信息
v$controlfile系統(tǒng)控制文件的基本信息
控制文件v$controlfile_record_section系統(tǒng)控制文件中記錄文檔段的信息
v$parameter系統(tǒng)各參數(shù)的基本信息
dba_data_files系統(tǒng)數(shù)據(jù)文件以及表空間的基本信息
數(shù)據(jù)文件v$filestat來自控制文件的數(shù)據(jù)文件信息
v$datafile_header記錄數(shù)據(jù)文件頭部分的基本信息
常用動態(tài)性能視圖
視圖名稱說明
v$fixed_table顯示當(dāng)前發(fā)行的固定對象的說明
v$instance顯示當(dāng)前實例的信息
v$latch顯示鎖存器的統(tǒng)計數(shù)據(jù)
v$librarycache顯示有關(guān)庫緩存性能的統(tǒng)計數(shù)據(jù)
v$rollstat顯示聯(lián)機的回滾段的名字
v$rowcache顯示活動數(shù)據(jù)字典的統(tǒng)計
v$sga顯示有關(guān)系統(tǒng)全局區(qū)的總結(jié)信息
v$sgastat顯示有關(guān)系統(tǒng)全局區(qū)的詳細信息
v$sort_usage顯示臨時段的大小及會話
v$sqlarea顯示SQL區(qū)的SQL信息
實例
1.查看dba_tables中scott的對象
/,
selecttablenameztablespacename,ownerfromdbatableswhereowner=scott;
2.獲得當(dāng)前會話信息
selectusername,terminalfromv$sessionwhereusernameisnotnull;
3.獲得當(dāng)前數(shù)據(jù)實例的使用情況
selectinstancename,hostname,statusfromv$instance;
4.相看表或視圖結(jié)構(gòu)
describev$instance;或descv$instance;
五、Oracle術(shù)語解釋詳解儒自網(wǎng)絡(luò))
數(shù)據(jù)庫名、實例名、數(shù)據(jù)庫域名、全局數(shù)據(jù)庫名、服務(wù)名,這是幾個令很多初學(xué)者容易
混淆的概念。相信很多初學(xué)者都與我一樣被標(biāo)題上這些個概念搞得一頭霧水。我們現(xiàn)在就來
把它們弄個明白。
4.1.數(shù)據(jù)庫名
4.1.1.什么是數(shù)據(jù)庫名?
數(shù)據(jù)庫名就是一個數(shù)據(jù)庫的標(biāo)識,就像人的身份證號一樣。他用參數(shù)DB_NAME
表示,如果一臺機器上裝了多全數(shù)據(jù)庫,那么每一個數(shù)據(jù)庫都有一個數(shù)據(jù)庫名。
在數(shù)據(jù)庫安裝或創(chuàng)建完成之后,參數(shù)DB_NAME被寫入?yún)?shù)文件pfile中,格式如下:
[code:l:laafl56970]
db_name="orcr#(不允許修改)
db_domain=
instance_name=orcl
service_names=
control_file=(
[/code:l:laafl56970]
在每一個運行的0RACLE8i數(shù)據(jù)庫中都有一個數(shù)據(jù)庫名(db_name),如果一個服務(wù)
器程序中創(chuàng)建了兩個數(shù)據(jù)庫,則有兩個數(shù)據(jù)庫名。其控制參數(shù)據(jù)分屬在不同的
pfile中控制著相關(guān)的數(shù)據(jù)庫。
在創(chuàng)建數(shù)據(jù)庫時就應(yīng)考慮好數(shù)據(jù)庫名,并且在創(chuàng)建完數(shù)據(jù)庫之后,數(shù)據(jù)庫名不能修改,
即使要修改也會很麻煩。因為,數(shù)據(jù)庫名還被寫入控制文件中,控制文件是以二進制型式存
儲的,用戶無法修改控制文件的內(nèi)容。假設(shè)用戶修改了參數(shù)文件中的數(shù)據(jù)庫名,即修改
DB_NAME的值。但是在Oracle啟動時,由于參數(shù)文件中的DB_NAME與控制文件中的
數(shù)據(jù)庫名不一致,導(dǎo)致數(shù)據(jù)庫啟動失敗,將返回ORA-01103錯誤。
4.1.2.數(shù)據(jù)庫名的作用
數(shù)據(jù)庫名是在安裝數(shù)據(jù)庫、創(chuàng)建新的數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫控制文件、修改數(shù)據(jù)結(jié)構(gòu)、備
份與恢復(fù)數(shù)據(jù)庫時都需要使用到的。
有很多Oracle安裝文件目錄是與數(shù)據(jù)庫名相關(guān)的,如:
winnt:d:\oracle\product\10.1.0\oradata\DB_NAME\...
Unix:/home/app/oracle/product/10.1.0/oradata/DB_NAME/...
pfile:
winnt:d:\oracle\product\10.1.0\admin\DB_NAME\pfile\ini.ora
Unix:
/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORACLE_SID.ora
跟蹤文件目錄:
winnt:/home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/...
另外,在創(chuàng)建數(shù)據(jù)時,careatedatabase命令中的數(shù)據(jù)庫名也要與參數(shù)文件中
DB_NAME參數(shù)的值一致,否則將產(chǎn)生錯誤。
同樣,修改數(shù)據(jù)庫結(jié)構(gòu)的語句alterdatabase,當(dāng)然也要指出要修改的數(shù)據(jù)庫的名稱。
如果控制文件損壞或丟失,數(shù)據(jù)庫將不能加載,這時要重新創(chuàng)建控制文件,方法是以
nomount方式啟動實例,然后以createcontrolfile命令創(chuàng)建控制文件,當(dāng)然這個命令中
也是指指
DB_NAMEO
還有在備份或恢復(fù)數(shù)據(jù)庫時,都需要用到數(shù)據(jù)庫名??傊瑪?shù)據(jù)庫名很重要,要準(zhǔn)確理
解它的作用。
4.1.3.查詢當(dāng)前數(shù)據(jù)名
方)4-:selectnamefromv$database;
方法二:showparameterdb
方法三:查看參數(shù)文件
4.14修改數(shù)據(jù)庫名
前面建議:應(yīng)在創(chuàng)建數(shù)據(jù)庫時就確定好數(shù)據(jù)庫名,數(shù)據(jù)庫名不應(yīng)作修改,因為修改數(shù)據(jù)
庫名是一件比較復(fù)雜的事情。那么現(xiàn)在就來說明一下,如何在已創(chuàng)建數(shù)據(jù)之后,修改數(shù)據(jù)庫
名。步驟如下:
1.關(guān)閉數(shù)據(jù)庫。
2.修改數(shù)據(jù)庫參數(shù)文件中的DB_NAME參數(shù)的值為新的數(shù)據(jù)庫名。
3.以NOMOUNT方式啟動實例,修建控制文件(有關(guān)創(chuàng)建控制文件的命令語法,請
參考o(jì)racle文檔)
42數(shù)據(jù)庫實例名
4.3.1.什么是數(shù)據(jù)庫實例名?
數(shù)據(jù)庫實例名是用于和操作系統(tǒng)進行聯(lián)系的標(biāo)識,就是說數(shù)據(jù)庫和操作系統(tǒng)之間的交互
用的是數(shù)據(jù)庫實例名。實例名也被寫入?yún)?shù)文件中,該參數(shù)為instance_name,在winnt
平臺中,實例名同時也被寫入注冊表。
數(shù)據(jù)庫名和實例名可以相同也可以不同。在一般情況下,數(shù)據(jù)庫名和實例名是一對一的
關(guān)系,但如果在oracle并行服務(wù)器架構(gòu)(即oracle實時應(yīng)用集群)中,數(shù)據(jù)庫名和實例名是
一對多的關(guān)系。這一點在第一篇中已有圖例說明。
4.3.2.查詢當(dāng)前數(shù)據(jù)庫實例名
方法一:selectinstance_namefromv$instance;
方法二:showparameterinstance
方法三:在參數(shù)文件中查詢。
4.3.3.數(shù)據(jù)庫實例名與ORACLE_SID
雖然兩者都表是oracle實例,但兩者是有區(qū)別的。instance_name是oracle數(shù)據(jù)庫
參數(shù)。而ORACLE_SID是操作系統(tǒng)的環(huán)境變量。ORACLD_SID用于與操作系統(tǒng)交互,也就
是說,從操作系統(tǒng)的角度訪問實例名,必須通過ORACLE_SID。在winnt平臺QRACLE_SID
還需存在于注冊表中。
且ORACLE_SID必須與instance_name的值一致,否則,你將會收到一個錯誤,在
unix平臺,是"ORACLEnotavailable”在winnt平臺,是"TNS:協(xié)議適配器錯誤”。
4.3.4.數(shù)據(jù)庫實例名與網(wǎng)絡(luò)連接
數(shù)據(jù)庫實例名除了與操作系統(tǒng)交互外,還用于網(wǎng)絡(luò)連接的oracle服務(wù)器標(biāo)識。當(dāng)你配
置oracle主機連接串的時候,就需要指定實例名。當(dāng)然8i以后版本的網(wǎng)絡(luò)組件要求使用的
是服務(wù)名SERVICE_NAME.這個概念接下來說明。
4.3.數(shù)據(jù)庫域名
4.3.1.什么是數(shù)據(jù)庫域名?
在分布式數(shù)據(jù)庫系統(tǒng)中,不同版本的數(shù)據(jù)庫服務(wù)器之間,不論運行的操作系統(tǒng)是unix
或是windows,各服務(wù)器之間都可以通過數(shù)據(jù)庫鏈路進行遠程復(fù)制,數(shù)據(jù)庫域名主要用于
oracle分布式環(huán)境中的復(fù)制。舉例說明如:
全國交通運政系統(tǒng)的分布式數(shù)據(jù)庫,其中:
福建節(jié)點:fjjtyz
福建廈門節(jié)點:xm.ij.jtyz
江西:jx.jtyz
江西上饒:sr.jx.jtyz
這就是數(shù)據(jù)庫域名。
數(shù)據(jù)庫域名在存在于參數(shù)文件中,他的參數(shù)是db_domain.
4.3.2.查詢數(shù)據(jù)庫域名
方法一:selectvaluefromv$parameterwherename='db_domain,;
方法二:showparameterdomain
方法三:在參數(shù)文件中查詢。
4.3.3.全局數(shù)據(jù)庫名
全局數(shù)據(jù)庫名=數(shù)據(jù)庫名+數(shù)據(jù)庫域名,如前述福建節(jié)點的全局數(shù)據(jù)庫名是:oradb.fj.jtyz
不能超過8個字符,不能是中文
4.4.數(shù)據(jù)庫服務(wù)名
441.什么是數(shù)據(jù)庫服務(wù)名?
從oracle9i版本開始,引入了一個新的參數(shù),即數(shù)據(jù)庫服務(wù)名。參數(shù)名是SERVICE_NAME0
如果數(shù)據(jù)庫有域名,則數(shù)據(jù)庫服務(wù)名就是全局數(shù)據(jù)庫名;否則,數(shù)據(jù)庫服務(wù)名與數(shù)據(jù)庫名相
同。
4.4.2.查詢數(shù)據(jù)庫服務(wù)名
方法一:selectvaluefromv$parameterwherename='service_name';
方法二:showparameterservice_name
方法三:在參數(shù)文件中查詢。
4.4.3.數(shù)據(jù)庫服務(wù)名與網(wǎng)絡(luò)連接
從oracle8i開始的oracle網(wǎng)絡(luò)組件數(shù)據(jù)庫與客戶端的連接主機串使用數(shù)據(jù)庫服務(wù)名。
之前用的是ORACLE_SID,即數(shù)據(jù)庫實例名。
六、SYS和SYSTEM用戶
1.SYS是超級用戶,具有最高權(quán)限,具有sysdba角色,具有createdatabase權(quán)限。
9i和10g中默認的密碼是manager
2.System是管理操作員,權(quán)限也很大,具有sysoper角色。沒有createdatabase
權(quán)限。默認的密碼是chage_on_install
3.一般對數(shù)據(jù)庫維護使用system用戶登錄就可以了。
七、啟動Oracle
成功安裝Oracle后在Windows服務(wù)中會生成很多Oracle開頭的服務(wù)項。其中有二
個核心的服務(wù)需要啟動。
一個是OracleServiceXXX,
另—^是OracleOraHomeXXTNSListener
1.啟動
1、啟動監(jiān)聽(命令:Isnrctlstart[監(jiān)聽名])
2、啟動數(shù)據(jù)庫(命令:oradim-startup-sid[實例名])
2.默認的三個用戶
1、sys(9里默認密碼為chage_on_install)
2、system(9里默認密碼為manager)
3、scott(9里默認密碼為tiger,10里需要解鎖)
3.用戶登錄:
a)使用SQL*PLUS。在程序中找到SQL*PLUS
用戶名:scott
密碼:自己指定
主機字符串:實例名稱,可以為空
b)cmd中執(zhí)行命令:sqlplus用戶名/密碼,如果是SYS,必須以DBA身份登錄,寫
法是:sqlplussys/testassysdba
c)在運行中執(zhí)行sqlplusw
女ME—?ttrMRC^L)工
M址,a
八、Oracle管理工具介紹
>SQL*PLUS
SQL*PLUS是Oracle自帶的工具軟件,主要執(zhí)行SQL語句,pl/sql塊。
步驟:
1.開始--程序--Oracle目錄--applicationdevelopment-SQL*PLUS
2.在運行欄輸入:sqlplusw
3.開始-4U^--Oracle目錄--applicationdevelopment-SQL*PLUSworksheet
輸入用戶名密碼、主機字符串(即實例名稱)
>SQL*PLUSDOS工具
SQL*PLUSDOS下操作Oracle的工具,其功能和SQL*PLUS相似。
1.在運行欄中輸入sqlplus
2.在Oracle主目錄'oraXXXbinV^j1sqlplus.exe
>Oracle企業(yè)管理器(oemoracleenterprisemanager)
開始--程序--Oracle目錄--oracleoraclehomeXX—enterprisemanagerconsole即
可啟動一個圖形界面環(huán)境。
>pl/sqldeveloper
屬于第三方軟件,主要用于開發(fā)、測試,優(yōu)化。raclepl/sql的存儲過程,如觸發(fā)
器。需單獨安裝。
九、查看Oracle
1.查看當(dāng)前的Oracle實例名稱和主機名稱:
selectinstance_name,host_namefromv$instance;
2.查看用戶帳戶及狀態(tài)
selectusernamezaccount_statusfromdba_users;
十、Oracle用戶解鎖
Oracle數(shù)據(jù)庫自帶了許多用戶,例如system.sys和scott等,但是默認情況下,
Oracle只對其中5個用戶進行了解鎖,這5個用戶分別是:sys、system.DBSUNMP.
sysman和mgmt_view,而其它用戶則處于鎖定狀態(tài)。對用戶帳戶解鎖的語法為:
1.對scott用戶解鎖
alteruserscottaccountunlock;
2.更改scott用戶的密碼:
alteruserscottidentifiedbytiger;
3.鎖定scott用戶:
alteruserscottaccountlock;
十一、使用OEM
OracleEnterpriseManager(OEM)提供了基本W(wǎng)eb界面的、可用于管理單個Oracle
數(shù)據(jù)庫的工具。由于OEM采用基于Web的應(yīng)用,它對數(shù)據(jù)庫的訪問也采用HTTP/HTTPS
協(xié)議,即使用3層結(jié)構(gòu)訪問Oracle數(shù)據(jù)庫系統(tǒng)。
在成功安裝Oracle后,OEM也被安裝完畢。
地址:https:〃localhost:1158/em
第一次訪問時,可能會出現(xiàn)證書錯誤的信息,選擇繼續(xù)訪問。進入后可以安裝證書。
十二、SQL/PLUS連接數(shù)據(jù)庫
12.1.SQL*Plus工具
SQL*Plus工具主要用于數(shù)據(jù)查詢和數(shù)據(jù)處理。利用SQL*Plus可以將
SQL和Oracle專有的PL/SQL結(jié)合起來進行數(shù)據(jù)查詢和處理。
SQL*Plus工具可以實現(xiàn)以下功能:
/連接數(shù)據(jù)庫,完成數(shù)據(jù)庫管理。
/對數(shù)據(jù)表可以執(zhí)行插入、修改、刪除、查詢操作、以及執(zhí)行SQL、PL/SQL塊。
/查詢結(jié)果的格式化、運算處理、保存、打印以及輸出Web格式。
/顯示任何一個表的字段定義,并與終端用戶交互。
/運行存儲在數(shù)據(jù)庫中的子程序或包。
啟動/停止數(shù)據(jù)庫實例。
12.2.連接方式
1.開始-4§J?--Oracle目錄--applicationdevelopment-SQL*PLUSworksheet
輸入用戶名密碼、主機字符串(即實例名稱)
2.啟動SQL*Plus,連接到默認數(shù)據(jù)庫
開始-4§J?--Oracle目錄--applicationdevelopment-SQL*PLUS
輸入用戶名、密碼。將連接到默認的數(shù)據(jù)庫。
可以使用selectnamefromv$databases;來查看使用的實例。
3.從命令行連接數(shù)據(jù)庫
在運行欄輸入:sqlplusw
或
D:MJsers\Adninisti*ator>sqlplusscott/tigerPorc1(
@orcl表示連接到ord實例,如果不寫將連接琶默認的實例。
4.使用SQL*Plus命令連接與斷開數(shù)據(jù)庫
>連接:
SQL>CONNECTsys/adminASsysdba;
己連接。
connect也可以簡寫成為conn
>斷開連接
SQL》DISCONNECT;
從OracleDatabase11gEnterpriseEditionRelease11.1.0.6.0-Production
WiththePartitioning,OLAP.DataMiningandRealApplicationTestingoptions
12.3.連接遠程數(shù)據(jù)庫
>方法一
首先配置TNS,方法如下:
TNS連接遠程計算機的設(shè)置。SYNO為遠程計算機的SID
PMSYNO.BJ.COM=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=03)
(PORT=1521)
)
)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SID=SYNO)
)
)
然后建立連接數(shù)據(jù)庫語句:
CREATEDATABASELINKlink_name(任意啟名)
CONNECTTOusername
IDENTIF正DBYpassword
USINGsql_string;
例如:CREATEDATABASELINKpm_synoCONNECTTOpmexpIDENTIFEDBY
pmexpUSINGsyno(前面TNS酉己好的那個);
>方法二(推薦)
本地:sqlplususername/password@servicename
客戶端:
使用NetConfigurationAssitant的工具。NetConfigurationAssitant共提供
了4個配置功能:
監(jiān)聽程序配置,
命名方法配置,
本地網(wǎng)絡(luò)服務(wù)名配置
目錄使用配置。
配置網(wǎng)絡(luò)服務(wù)名,再使用sqlplususername/password@servicename連接
十三、SQL*PLUS常用命令
注意:命令使用分號(;)表示結(jié)束并執(zhí)行
13.1.常用命令
命令說明
HELP[topic]查看命令的使用方法,topic表示需要查看的命令名稱。
例如:HELPDESC
HOST使用該命令可以從SQL*Plus環(huán)境切換到操作系統(tǒng)環(huán)境,
以便執(zhí)行操作系統(tǒng)命令
HOST操作系統(tǒng)命令執(zhí)行操作系統(tǒng)命令,例如:HOSTnotepad.exe
CLEARSCRfEEN]清除屏幕內(nèi)容
SHOW[ALL|USER|SGA查看SQL*Plus的所有系統(tǒng)變量值信息、當(dāng)前是哪個用戶
|ERRORS|REL[EASE]在使用SQL*Plus、顯示SGA大小、查看錯誤信息、數(shù)據(jù)
|PARAMETERS]庫版本信息、系統(tǒng)初始化參數(shù)信息
DESC[RIBE
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 就業(yè)糾紛協(xié)議書模板
- 藥品供應(yīng)保障協(xié)議書
- 贍養(yǎng)義務(wù)贈與協(xié)議書
- 職工績效工資協(xié)議書
- 相鄰?fù)恋刭r償協(xié)議書
- 申請搬遷協(xié)議書模板
- 自動天窗技術(shù)協(xié)議書
- 小區(qū)貓咪收養(yǎng)協(xié)議書
- 借條資產(chǎn)轉(zhuǎn)讓協(xié)議書
- 蔬菜定點采購協(xié)議書
- 發(fā)證機關(guān)所在地區(qū)代碼表
- 奧托尼克斯計米器使用說明書
- 風(fēng)生水起博主的投資周記
- 供水管網(wǎng)施工組織設(shè)計
- 最全的冷軋知識材質(zhì)牌號分類及生產(chǎn)工藝
- 易制毒、易制爆化學(xué)品安全培訓(xùn)
- 氣化風(fēng)機檢修工藝規(guī)程
- 美女金喜善寫真集
- 大學(xué)物理平面電磁波ppt課件
- 八年級下寫字課
- 前列腺癌臨床路徑(最全版)
評論
0/150
提交評論