數(shù)據(jù)庫給大家的第一反應就是跟數(shù)據(jù)有關的。那么應該怎樣認識數(shù)據(jù)庫呢?它的內容是什么呢?世界上的每一樣東西都有它的特點,Oracle數(shù)據(jù)庫的特點又有哪些呢?專業(yè)的東西不容易讓人懂,因此通俗易懂的講解才是最好的。它的安裝過程也需要我們學習。
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系數(shù)據(jù)庫管理系統(tǒng)。它是在數(shù)據(jù)庫領域一直處于領先地位的產(chǎn)品。可以說Oracle數(shù)據(jù)庫系統(tǒng)是目前世界上流行的關系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強,適用于各類大、中、小微機環(huán)境。它是一種高效率的、可靠性好的、適應高吞吐量的數(shù)據(jù)庫方案。
中文名
Oracle數(shù)據(jù)庫
外文名
Oracle Database
別 名
Oracle RDBMS
簡 稱
Oracle
優(yōu) 點
數(shù)據(jù)安全性強,穩(wěn)定性強
ORACLE數(shù)據(jù)庫系統(tǒng)是美國ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結構的數(shù)據(jù)庫之一。比如SilverStream就是基于數(shù)據(jù)庫的一種中間件。ORACLE數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個關系數(shù)據(jù)庫,它是一個完備關系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實現(xiàn)了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。
Oracle數(shù)據(jù)庫最新版本為Oracle Database 20c。Oracle數(shù)據(jù)庫12c 引入了一個新的多承租方架構,使用該架構可輕松部署和管理數(shù)據(jù)庫云。此外,一些創(chuàng)新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個數(shù)據(jù)庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數(shù)據(jù)和對數(shù)據(jù)分層。這些獨一無二的技術進步再加上在可用性、安全性和大數(shù)據(jù)支持方面的主要增強,使得Oracle數(shù)據(jù)庫12c 成為私有云和公有云部署的理想平臺。
在2001年發(fā)布的Oracle9i之前,甲骨文公司把他們的數(shù)據(jù)庫產(chǎn)品廣泛的移植到了不同的平臺上。近期,甲骨文公司鞏固了一小部分的操作系統(tǒng)平臺。
截止至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、完備關系的產(chǎn)品:
1)信息準則---關系型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;
2)保證訪問的準則
3)視圖更新準則---只要形成視圖的表中的數(shù)據(jù)變化了,相應的視圖中的數(shù)據(jù)同時變化
4)數(shù)據(jù)物理性和邏輯性獨立準則
3、分布式處理功能:
ORACLE數(shù)據(jù)庫自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式數(shù)據(jù)庫功能了,一個ORACLE分布式數(shù)據(jù)庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關系型產(chǎn)品構成。
4、用ORACLE能輕松的實現(xiàn)數(shù)據(jù)倉庫的操作。
這是一個技術發(fā)展的趨勢,不在這里討論。
優(yōu)點
■ 可用性強
■ 可擴展性強
■ 數(shù)據(jù)安全性強
■ 穩(wěn)定性強
工具簡介
·Navicat for Oracle是一套專為Oracle設計的強大數(shù)據(jù)庫管理及開發(fā)工具。它可以用于任何版本的Oracle數(shù)據(jù)庫,并支持大部分Oracle的功能,包括觸發(fā)器、索引、檢視等。
·Toad for Oracle是一款老牌的Oracle開發(fā)管理工具,比任何一款Oracle開發(fā)管理工具功能更多,并針對使用者不同的角色有多個分支版本。版本包括:Toad DBA Suite for Oracle是一款專門為Oracle DBA管理Oracle數(shù)據(jù)庫工具, Toad Development Suite for Oracle是一款專門為Oracle開發(fā)工具, Toad DBA Suite for Oracle – Exadata Edition是一款專門為Oracle Exadata一體服務器及Oracle數(shù)據(jù)庫管理工具, Toad DBA Suite for Oracle - RAC Edition是一款專門為Oracle搭建集群RAC的DBA管理工具
比較
在了解了ORACLE數(shù)據(jù)庫后,我們有必要對ORACLE和Sybase SQL Server的比較, Oracle采用的是并行服務器模式,而Sybase SQL Server采用的是虛擬服務器模式,它沒有將一個查詢分解成多個子查詢,再在不同的CPU上同時執(zhí)行這些子查詢。我們可以說在對稱多處理方面Oracle的性能優(yōu)于Sybase的性能。業(yè)務量往往在系統(tǒng)運行后不斷提高,如果數(shù)據(jù)庫數(shù)量達到GB以上時,我們在提高系統(tǒng)的性能方面可以從兩方面入手,一種是提高單臺服務器的性能,還有就是增加服務器數(shù)目?;诖耍绻覀兪翘岣邌闻_服務器的性能,選擇Oracle 數(shù)據(jù)庫較好,因為它們能在對稱多CPU的系統(tǒng)上提供并行處理。相反,由于Sybase的導航服務器使網(wǎng)上的所有用戶都注冊到導航服務器并通過導航服務提出數(shù)據(jù)訪問請求,導航服務器則將用戶的請求分解,然后自動導向由它所控制的多臺SQL Server,從而在分散數(shù)據(jù)的基礎上提供并行處理能力,我們可以選擇它。這些都是在其他條件和環(huán)境相同的情況下比較的,這樣才有可比性。在數(shù)據(jù)的分布更新方面,Oracle采用的是基于服務器的自動的2PC(兩階段提交),而Sybase采用的則是基于客戶機DB-Library或CT-Library的可編程的2PC,因此我們在選擇數(shù)據(jù)庫方面,必須根據(jù)需要進行選擇,比如,從事的社會保險軟件的開發(fā),考慮到數(shù)據(jù)量大,并發(fā)操作比較多,實時性要求高,我們后臺基本采取的是ORACLE數(shù)據(jù)庫。Oracle服務器由Oracle數(shù)據(jù)庫和Oracle實例組成。Oracle實例由系統(tǒng)全局區(qū)內存結構和用于管理數(shù)據(jù)庫的后臺進程組成。
就業(yè)前景
從就業(yè)與擇業(yè)的角度來講,計算機相關專業(yè)的大學生從事oracle方面的技術是職業(yè)發(fā)展中的最佳選擇。
其一、就業(yè)面廣:ORACLE幫助拓展技術人員擇業(yè)的廣度,全球前100強企業(yè)99家都在使用ORACLE相關技術,中國政府機構,大中型企事業(yè)單位都能有ORACLE技術的工程師崗位,大學生在校期間興趣廣泛,每個人興趣特長各異,不論你想進入金融行業(yè)還是電信行業(yè)或者政府機構,ORACLE都能夠在你的職業(yè)發(fā)展中給你最強有力的支撐,成為你最貼身的金飯碗。
其二、技術層次深:如果期望進入IT服務或者產(chǎn)品公司(類似畢博、DELL、IBM等),Oracle技術能夠幫助提高就業(yè)的深度。Oracle技術已經(jīng)成為全球每個IT公司必選的軟件技術之一,熟練掌握Oracle技術能夠為從業(yè)人員帶來技術應用上的優(yōu)勢,同時為IT技術的深入應用起到非常 關鍵的作用。掌握 Oracle技術,是IT從業(yè)人員了解全面信息化整體解決方案的基礎。
其三、職業(yè)方向多:Oracle數(shù)據(jù)庫管理方向、Oracle開發(fā)及系統(tǒng)架構方向、Oracle數(shù)據(jù)建模數(shù)據(jù)倉庫等方向.
邏輯結構
它由至少一個表空間和數(shù)據(jù)庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用數(shù)據(jù)庫數(shù)據(jù)的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同義詞、索引、簇和數(shù)據(jù)庫鏈等。邏輯存儲結構包括表空間、段和范圍,用于描述怎樣使用數(shù)據(jù)庫的物理空間。
總之,邏輯結構由邏輯存儲結構(表空間,段,范圍,塊)和邏輯數(shù)據(jù)結構(表、視圖、序列、存儲過程、同義詞、索引、簇和數(shù)據(jù)庫鏈等)組成,而其中的模式對象(邏輯數(shù)據(jù)結構)和關系形成了數(shù)據(jù)庫的關系設計。
oracle 數(shù)據(jù)庫邏輯結構
段(Segment):
是表空間中一個指定類型的邏輯存儲結構,它由一個或多個范圍組成,段將占用并增長存儲空間。
其中包括:
數(shù)據(jù)段:用來存放表數(shù)據(jù);
索引段:用來存放表索引;
臨時段:用來存放中間結果;
回滾段:用于出現(xiàn)異常時,恢復事務。
范圍(Extent):是數(shù)據(jù)庫存儲空間分配的邏輯單位,一個范圍由許多連續(xù)的數(shù)據(jù)塊組成,范圍是由段依次分配的,分配的第一個范圍稱為初始范圍,以后分配的范圍稱為增量范圍。
數(shù)據(jù)塊(Block):
是數(shù)據(jù)庫進行IO操作的最小單位,它與操作系統(tǒng)的塊不是一個概念。oracle數(shù)據(jù)庫不是以操作系統(tǒng)的塊為單位來請求數(shù)據(jù),而是以多個Oracle數(shù)據(jù)庫塊為單位。
文件結構
數(shù)據(jù)庫的物理存儲結構是由一些多種物理文件組成,主要有數(shù)據(jù)文件、控制文件、重做日志文件、歸檔日志文件、參數(shù)文件、口令文件、警告文件等。 [1]
控制文件:存儲實例、數(shù)據(jù)文件及日志文件等信息的二進制文件。alter system set control_files=‘路徑’。V$CONTROLFILE。
數(shù)據(jù)文件:存儲數(shù)據(jù),以.dbf做后綴。一句話:一個表空間對多個數(shù)據(jù)文件,一個數(shù)據(jù)文件只對一個表空間。dba_data_files/v$datafile。
日志文件:即Redo Log Files和Archivelog Files。記錄數(shù)據(jù)庫修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
參數(shù)文件:記錄基本參數(shù)。spfile和pfile。
警告文件:show parameter background_dump_dest---使用共享服務器連接
跟蹤文件:show parameter user_dump_dest---使用專用服務器連接 [1]
恢復意義
當我們使用一個ORACLE數(shù)據(jù)庫時,總希望數(shù)據(jù)庫的內容是可靠的、正確的,但由于計算機系統(tǒng)的故障(硬件故障、網(wǎng)絡故障、進程故障和系統(tǒng)故障)影響數(shù)據(jù)庫系統(tǒng)的操作,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分數(shù)據(jù)丟失。因此當發(fā)生上述故障后,希望能重新建立一個完整的數(shù)據(jù)庫,該處理稱為數(shù)據(jù)庫恢復。恢復子系統(tǒng)是數(shù)據(jù)庫管理系統(tǒng)的一個重要組成部分?;謴吞幚黼S時隨地所發(fā)生的故障類型所影響的結構而變化。
恢復方法
IMPORT方法:
利用IMPORT,將最后一次EXPORT出來的數(shù)據(jù)文件IMPORT到新的數(shù)據(jù)庫中,這種方式可以將任何數(shù)據(jù)庫對象恢復到它被導出時的狀態(tài),此后的變化將無法挽回。IMPORT的命令可以交互式進行,各參數(shù)的具體含義見Oracle EXP/IMP參數(shù)詳解。這種方式適用于沒有采用archive 模式的環(huán)境。 [1]
安全的恢復方法:
如果數(shù)據(jù)庫運行在archive 模式下,那么一旦數(shù)據(jù)庫損壞則可以通過冷備份(熱備份)和歸檔備份將數(shù)據(jù)庫恢復到斷點狀態(tài)。
數(shù)據(jù)庫控制文件恢復(假設所有控制文件均被破壞):
數(shù)據(jù)庫基于文件系統(tǒng): 利用操作系統(tǒng)的tar、cp等命令即可。
數(shù)據(jù)庫基于裸設備:dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12
數(shù)據(jù)庫數(shù)據(jù)文件恢復數(shù)據(jù)及索引表空間、系統(tǒng)表空間的恢復:回拷相關的數(shù)據(jù)庫文件和該數(shù)據(jù)文件備份以來所有生成的所有邏輯日志文件并執(zhí)行如下命令:
1 2 |
|
如果控制文件被破壞,則:
1 2 |
|
數(shù)據(jù)庫臨時文件和回滾表空間的恢復:簡單地offline drop 并重建即可 。
注意:如果數(shù)據(jù)庫不運行在archive 模式下,則恢復只能恢復到上次備份時的狀態(tài)。
安裝過程
一、準備安裝
基本都是按部就班。
使用的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.
啟動圖形以后選擇basic&n
選擇oracle base的時候,oracle不推薦使用user home作為oracle base,這里我選yes忽略
進行prerequirements檢查的時候,安裝程序認為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.
安裝完畢。
這些信息對于大家來說應該還是有一定的幫助的。學習知識是一個永無止境的過程。人們的進步需要不斷吸取知識之后才能更加優(yōu)秀。