數(shù)據(jù)庫(kù)給大家的第一反應(yīng)就是跟數(shù)據(jù)有關(guān)的。那么應(yīng)該怎樣認(rèn)識(shí)數(shù)據(jù)庫(kù)呢?它的內(nèi)容是什么呢?世界上的每一樣?xùn)|西都有它的特點(diǎn),Oracle數(shù)據(jù)庫(kù)的特點(diǎn)又有哪些呢?專(zhuān)業(yè)的東西不容易讓人懂,因此通俗易懂的講解才是最好的。它的安裝過(guò)程也需要我們學(xué)習(xí)。
Oracle Database,又名Oracle RDBMS,或簡(jiǎn)稱Oracle。是甲骨文公司的一款關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它是在數(shù)據(jù)庫(kù)領(lǐng)域一直處于領(lǐng)先地位的產(chǎn)品。可以說(shuō)Oracle數(shù)據(jù)庫(kù)系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類(lèi)大、中、小微機(jī)環(huán)境。它是一種高效率的、可靠性好的、適應(yīng)高吞吐量的數(shù)據(jù)庫(kù)方案。
中文名
Oracle數(shù)據(jù)庫(kù)
外文名
Oracle Database
別 名
Oracle RDBMS
簡(jiǎn) 稱
Oracle
優(yōu) 點(diǎn)
數(shù)據(jù)安全性強(qiáng),穩(wěn)定性強(qiáng)
ORACLE數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。比如SilverStream就是基于數(shù)據(jù)庫(kù)的一種中間件。ORACLE數(shù)據(jù)庫(kù)是目前世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù)它實(shí)現(xiàn)了分布式處理功能。但它的所有知識(shí),只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類(lèi)型的機(jī)器上使用它。
Oracle數(shù)據(jù)庫(kù)最新版本為Oracle Database 20c。Oracle數(shù)據(jù)庫(kù)12c 引入了一個(gè)新的多承租方架構(gòu),使用該架構(gòu)可輕松部署和管理數(shù)據(jù)庫(kù)云。此外,一些創(chuàng)新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個(gè)數(shù)據(jù)庫(kù),而Automatic Data Optimization和Heat Map能以更高的密度壓縮數(shù)據(jù)和對(duì)數(shù)據(jù)分層。這些獨(dú)一無(wú)二的技術(shù)進(jìn)步再加上在可用性、安全性和大數(shù)據(jù)支持方面的主要增強(qiáng),使得Oracle數(shù)據(jù)庫(kù)12c 成為私有云和公有云部署的理想平臺(tái)。
在2001年發(fā)布的Oracle9i之前,甲骨文公司把他們的數(shù)據(jù)庫(kù)產(chǎn)品廣泛的移植到了不同的平臺(tái)上。近期,甲骨文公司鞏固了一小部分的操作系統(tǒng)平臺(tái)。
截止至2015年01月,甲骨文公司的Oracle10g/11g/12c支持以下的操作系統(tǒng)和硬件:
· AppleMac OS X Server:PowerPC
· HPHP-UX:PA-RISC,Itanium
· HPTru64 UNIX:Alpha
· HPOpenVMS: Alpha, Itanium
· IBMAIX5L:IBM POWER
· IBMz/OS:zSeries
· Linux:x86.x86-64. PowerPC, zSeries, Itanium
· MicrosoftWindows: x86. x86-64. Itanium
· SunSolaris:SPARC, x86. x86-64 [1]
1、完整的數(shù)據(jù)管理功能: [1]
1)數(shù)據(jù)的大量性
2)數(shù)據(jù)的保存的持久性
3)數(shù)據(jù)的共享性
4)數(shù)據(jù)的可靠性
2、完備關(guān)系的產(chǎn)品:
1)信息準(zhǔn)則---關(guān)系型DBMS的所有信息都應(yīng)在邏輯上用一種方法,即表中的值顯式地表示;
2)保證訪問(wèn)的準(zhǔn)則
3)視圖更新準(zhǔn)則---只要形成視圖的表中的數(shù)據(jù)變化了,相應(yīng)的視圖中的數(shù)據(jù)同時(shí)變化
4)數(shù)據(jù)物理性和邏輯性獨(dú)立準(zhǔn)則
3、分布式處理功能:
ORACLE數(shù)據(jù)庫(kù)自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式數(shù)據(jù)庫(kù)功能了,一個(gè)ORACLE分布式數(shù)據(jù)庫(kù)由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關(guān)系型產(chǎn)品構(gòu)成。
4、用ORACLE能輕松的實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)的操作。
這是一個(gè)技術(shù)發(fā)展的趨勢(shì),不在這里討論。
優(yōu)點(diǎn)
■ 可用性強(qiáng)
■ 可擴(kuò)展性強(qiáng)
■ 數(shù)據(jù)安全性強(qiáng)
■ 穩(wěn)定性強(qiáng)
工具簡(jiǎn)介
·Navicat for Oracle是一套專(zhuān)為Oracle設(shè)計(jì)的強(qiáng)大數(shù)據(jù)庫(kù)管理及開(kāi)發(fā)工具。它可以用于任何版本的Oracle數(shù)據(jù)庫(kù),并支持大部分Oracle的功能,包括觸發(fā)器、索引、檢視等。
·Toad for Oracle是一款老牌的Oracle開(kāi)發(fā)管理工具,比任何一款Oracle開(kāi)發(fā)管理工具功能更多,并針對(duì)使用者不同的角色有多個(gè)分支版本。版本包括:Toad DBA Suite for Oracle是一款專(zhuān)門(mén)為Oracle DBA管理Oracle數(shù)據(jù)庫(kù)工具, Toad Development Suite for Oracle是一款專(zhuān)門(mén)為Oracle開(kāi)發(fā)工具, Toad DBA Suite for Oracle – Exadata Edition是一款專(zhuān)門(mén)為Oracle Exadata一體服務(wù)器及Oracle數(shù)據(jù)庫(kù)管理工具, Toad DBA Suite for Oracle - RAC Edition是一款專(zhuān)門(mén)為Oracle搭建集群RAC的DBA管理工具
比較
在了解了ORACLE數(shù)據(jù)庫(kù)后,我們有必要對(duì)ORACLE和Sybase SQL Server的比較, Oracle采用的是并行服務(wù)器模式,而Sybase SQL Server采用的是虛擬服務(wù)器模式,它沒(méi)有將一個(gè)查詢分解成多個(gè)子查詢,再在不同的CPU上同時(shí)執(zhí)行這些子查詢。我們可以說(shuō)在對(duì)稱多處理方面Oracle的性能優(yōu)于Sybase的性能。業(yè)務(wù)量往往在系統(tǒng)運(yùn)行后不斷提高,如果數(shù)據(jù)庫(kù)數(shù)量達(dá)到GB以上時(shí),我們?cè)谔岣呦到y(tǒng)的性能方面可以從兩方面入手,一種是提高單臺(tái)服務(wù)器的性能,還有就是增加服務(wù)器數(shù)目?;诖?,如果我們是提高單臺(tái)服務(wù)器的性能,選擇Oracle 數(shù)據(jù)庫(kù)較好,因?yàn)樗鼈兡茉趯?duì)稱多CPU的系統(tǒng)上提供并行處理。相反,由于Sybase的導(dǎo)航服務(wù)器使網(wǎng)上的所有用戶都注冊(cè)到導(dǎo)航服務(wù)器并通過(guò)導(dǎo)航服務(wù)提出數(shù)據(jù)訪問(wèn)請(qǐng)求,導(dǎo)航服務(wù)器則將用戶的請(qǐng)求分解,然后自動(dòng)導(dǎo)向由它所控制的多臺(tái)SQL Server,從而在分散數(shù)據(jù)的基礎(chǔ)上提供并行處理能力,我們可以選擇它。這些都是在其他條件和環(huán)境相同的情況下比較的,這樣才有可比性。在數(shù)據(jù)的分布更新方面,Oracle采用的是基于服務(wù)器的自動(dòng)的2PC(兩階段提交),而Sybase采用的則是基于客戶機(jī)DB-Library或CT-Library的可編程的2PC,因此我們?cè)谶x擇數(shù)據(jù)庫(kù)方面,必須根據(jù)需要進(jìn)行選擇,比如,從事的社會(huì)保險(xiǎn)軟件的開(kāi)發(fā),考慮到數(shù)據(jù)量大,并發(fā)操作比較多,實(shí)時(shí)性要求高,我們后臺(tái)基本采取的是ORACLE數(shù)據(jù)庫(kù)。Oracle服務(wù)器由Oracle數(shù)據(jù)庫(kù)和Oracle實(shí)例組成。Oracle實(shí)例由系統(tǒng)全局區(qū)內(nèi)存結(jié)構(gòu)和用于管理數(shù)據(jù)庫(kù)的后臺(tái)進(jìn)程組成。
就業(yè)前景
從就業(yè)與擇業(yè)的角度來(lái)講,計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的大學(xué)生從事oracle方面的技術(shù)是職業(yè)發(fā)展中的最佳選擇。
其一、就業(yè)面廣:ORACLE幫助拓展技術(shù)人員擇業(yè)的廣度,全球前100強(qiáng)企業(yè)99家都在使用ORACLE相關(guān)技術(shù),中國(guó)政府機(jī)構(gòu),大中型企事業(yè)單位都能有ORACLE技術(shù)的工程師崗位,大學(xué)生在校期間興趣廣泛,每個(gè)人興趣特長(zhǎng)各異,不論你想進(jìn)入金融行業(yè)還是電信行業(yè)或者政府機(jī)構(gòu),ORACLE都能夠在你的職業(yè)發(fā)展中給你最強(qiáng)有力的支撐,成為你最貼身的金飯碗。
其二、技術(shù)層次深:如果期望進(jìn)入IT服務(wù)或者產(chǎn)品公司(類(lèi)似畢博、DELL、IBM等),Oracle技術(shù)能夠幫助提高就業(yè)的深度。Oracle技術(shù)已經(jīng)成為全球每個(gè)IT公司必選的軟件技術(shù)之一,熟練掌握Oracle技術(shù)能夠?yàn)閺臉I(yè)人員帶來(lái)技術(shù)應(yīng)用上的優(yōu)勢(shì),同時(shí)為IT技術(shù)的深入應(yīng)用起到非常 關(guān)鍵的作用。掌握 Oracle技術(shù),是IT從業(yè)人員了解全面信息化整體解決方案的基礎(chǔ)。
其三、職業(yè)方向多:Oracle數(shù)據(jù)庫(kù)管理方向、Oracle開(kāi)發(fā)及系統(tǒng)架構(gòu)方向、Oracle數(shù)據(jù)建模數(shù)據(jù)倉(cāng)庫(kù)等方向.
邏輯結(jié)構(gòu)
它由至少一個(gè)表空間和數(shù)據(jù)庫(kù)模式對(duì)象組成。這里,模式是對(duì)象的集合,而模式對(duì)象是直接引用數(shù)據(jù)庫(kù)數(shù)據(jù)的邏輯結(jié)構(gòu)。模式對(duì)象包括這樣一些結(jié)構(gòu):表、視圖、序列、存儲(chǔ)過(guò)程、同義詞、索引、簇和數(shù)據(jù)庫(kù)鏈等。邏輯存儲(chǔ)結(jié)構(gòu)包括表空間、段和范圍,用于描述怎樣使用數(shù)據(jù)庫(kù)的物理空間。
總之,邏輯結(jié)構(gòu)由邏輯存儲(chǔ)結(jié)構(gòu)(表空間,段,范圍,塊)和邏輯數(shù)據(jù)結(jié)構(gòu)(表、視圖、序列、存儲(chǔ)過(guò)程、同義詞、索引、簇和數(shù)據(jù)庫(kù)鏈等)組成,而其中的模式對(duì)象(邏輯數(shù)據(jù)結(jié)構(gòu))和關(guān)系形成了數(shù)據(jù)庫(kù)的關(guān)系設(shè)計(jì)。
oracle 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)
段(Segment):
是表空間中一個(gè)指定類(lèi)型的邏輯存儲(chǔ)結(jié)構(gòu),它由一個(gè)或多個(gè)范圍組成,段將占用并增長(zhǎng)存儲(chǔ)空間。
其中包括:
數(shù)據(jù)段:用來(lái)存放表數(shù)據(jù);
索引段:用來(lái)存放表索引;
臨時(shí)段:用來(lái)存放中間結(jié)果;
回滾段:用于出現(xiàn)異常時(shí),恢復(fù)事務(wù)。
范圍(Extent):是數(shù)據(jù)庫(kù)存儲(chǔ)空間分配的邏輯單位,一個(gè)范圍由許多連續(xù)的數(shù)據(jù)塊組成,范圍是由段依次分配的,分配的第一個(gè)范圍稱為初始范圍,以后分配的范圍稱為增量范圍。
數(shù)據(jù)塊(Block):
是數(shù)據(jù)庫(kù)進(jìn)行IO操作的最小單位,它與操作系統(tǒng)的塊不是一個(gè)概念。oracle數(shù)據(jù)庫(kù)不是以操作系統(tǒng)的塊為單位來(lái)請(qǐng)求數(shù)據(jù),而是以多個(gè)Oracle數(shù)據(jù)庫(kù)塊為單位。
文件結(jié)構(gòu)
數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)是由一些多種物理文件組成,主要有數(shù)據(jù)文件、控制文件、重做日志文件、歸檔日志文件、參數(shù)文件、口令文件、警告文件等。 [1]
控制文件:存儲(chǔ)實(shí)例、數(shù)據(jù)文件及日志文件等信息的二進(jìn)制文件。alter system set control_files=‘路徑’。V$CONTROLFILE。
數(shù)據(jù)文件:存儲(chǔ)數(shù)據(jù),以.dbf做后綴。一句話:一個(gè)表空間對(duì)多個(gè)數(shù)據(jù)文件,一個(gè)數(shù)據(jù)文件只對(duì)一個(gè)表空間。dba_data_files/v$datafile。
日志文件:即Redo Log Files和Archivelog Files。記錄數(shù)據(jù)庫(kù)修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
參數(shù)文件:記錄基本參數(shù)。spfile和pfile。
警告文件:show parameter background_dump_dest---使用共享服務(wù)器連接
跟蹤文件:show parameter user_dump_dest---使用專(zhuān)用服務(wù)器連接 [1]
恢復(fù)意義
當(dāng)我們使用一個(gè)ORACLE數(shù)據(jù)庫(kù)時(shí),總希望數(shù)據(jù)庫(kù)的內(nèi)容是可靠的、正確的,但由于計(jì)算機(jī)系統(tǒng)的故障(硬件故障、網(wǎng)絡(luò)故障、進(jìn)程故障和系統(tǒng)故障)影響數(shù)據(jù)庫(kù)系統(tǒng)的操作,影響數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性,甚至破壞數(shù)據(jù)庫(kù),使數(shù)據(jù)庫(kù)中全部或部分?jǐn)?shù)據(jù)丟失。因此當(dāng)發(fā)生上述故障后,希望能重新建立一個(gè)完整的數(shù)據(jù)庫(kù),該處理稱為數(shù)據(jù)庫(kù)恢復(fù)?;謴?fù)子系統(tǒng)是數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)重要組成部分?;謴?fù)處理隨時(shí)隨地所發(fā)生的故障類(lèi)型所影響的結(jié)構(gòu)而變化。
恢復(fù)方法
IMPORT方法:
利用IMPORT,將最后一次EXPORT出來(lái)的數(shù)據(jù)文件IMPORT到新的數(shù)據(jù)庫(kù)中,這種方式可以將任何數(shù)據(jù)庫(kù)對(duì)象恢復(fù)到它被導(dǎo)出時(shí)的狀態(tài),此后的變化將無(wú)法挽回。IMPORT的命令可以交互式進(jìn)行,各參數(shù)的具體含義見(jiàn)Oracle EXP/IMP參數(shù)詳解。這種方式適用于沒(méi)有采用archive 模式的環(huán)境。 [1]
安全的恢復(fù)方法:
如果數(shù)據(jù)庫(kù)運(yùn)行在archive 模式下,那么一旦數(shù)據(jù)庫(kù)損壞則可以通過(guò)冷備份(熱備份)和歸檔備份將數(shù)據(jù)庫(kù)恢復(fù)到斷點(diǎn)狀態(tài)。
數(shù)據(jù)庫(kù)控制文件恢復(fù)(假設(shè)所有控制文件均被破壞):
數(shù)據(jù)庫(kù)基于文件系統(tǒng): 利用操作系統(tǒng)的tar、cp等命令即可。
數(shù)據(jù)庫(kù)基于裸設(shè)備:dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12
數(shù)據(jù)庫(kù)數(shù)據(jù)文件恢復(fù)數(shù)據(jù)及索引表空間、系統(tǒng)表空間的恢復(fù):回拷相關(guān)的數(shù)據(jù)庫(kù)文件和該數(shù)據(jù)文件備份以來(lái)所有生成的所有邏輯日志文件并執(zhí)行如下命令:
1 2 |
|
如果控制文件被破壞,則:
1 2 |
|
數(shù)據(jù)庫(kù)臨時(shí)文件和回滾表空間的恢復(fù):簡(jiǎn)單地offline drop 并重建即可 。
注意:如果數(shù)據(jù)庫(kù)不運(yùn)行在archive 模式下,則恢復(fù)只能恢復(fù)到上次備份時(shí)的狀態(tài)。
安裝過(guò)程
一、準(zhǔn)備安裝
基本都是按部就班。
使用的OS版本:OEL4
1 2 3 4 |
|
安裝程序路徑:
/mnt/Oracle11g_linux_x86_64/database
創(chuàng)建用戶
1 2 3 4 5 |
|
使用的.bash_profile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
修改的核心參數(shù):
kernel.shmall = 2097152
kernel.shmmax = 2 147483648
kernel.shmmni = 4096
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
使用xclock檢查display正確:
代碼:
1 2 3 4 |
|
total 10
drwxr-xr-x 4 1003 oinstall 96 Mar 23 18:45 doc
drwxr-xr-x 5 1003 oinstall 1024 Mar 23 18:45 install
drwxr-xr-x 2 1003 oinstall 1024 Mar 23 18:45 response
-rwxr-xr-x 1 1003 oinstall 1251 Mar 23 18:45 runInstaller
drwxr-xr-x 12 1003 oinstall 1024 Mar 23 18:45 stage
-rw-r--r-- 1 1003 oinstall 4638 Mar 23 18:45 welcome.html
1 |
|
Starting Oracle Universal Installer...
Checking installer requirements...
Checking operating system version: must be redhat-3. SuSE-9.
redhat-4. UnitedLinux-1.0. asianux-1 or asianux-2
Passed
All installer requirements met.
Preparing to launch Oracle Universal Installer from
/tmp/OraInstall2007-06-28_02-26-12AM. Please wait ...
[oracle@ractest database]$ Oracle Universal Installer, Version 11.1.0.2.0 Production
Copyright (C) 1999. 2007. Oracle. All rights reserved.
Oracle Universal Installer, Version 11.1.0.2.0 Production
Copyright (C) 1999. 2007. Oracle. All rights reserved.
啟動(dòng)圖形以后選擇basic&n
選擇oracle base的時(shí)候,oracle不推薦使用user home作為oracle base,這里我選yes忽略
進(jìn)行prerequirements檢查的時(shí)候,安裝程序認(rèn)為swap不足,我選擇YES忽略
執(zhí)行提示腳本,安裝完畢
代碼:
1 2 3 4 |
|
Changing permissions of /home/oracle/oraInventory to 770.
Changing groupname of /home/oracle/oraInventory to dba.
The execution of the script is complete
1 |
|
Running Oracle 11g root .sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /home/oracle/11g
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root .sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
安裝完畢。
這些信息對(duì)于大家來(lái)說(shuō)應(yīng)該還是有一定的幫助的。學(xué)習(xí)知識(shí)是一個(gè)永無(wú)止境的過(guò)程。人們的進(jìn)步需要不斷吸取知識(shí)之后才能更加優(yōu)秀。