複製鏈接
請複製以下鏈接發送給好友

Oracle數據庫

鎖定
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係數據庫管理系統。它是在數據庫領域一直處於領先地位的產品。可以説Oracle數據庫系統是世界上流行的關係數據庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小微機環境。它是一種高效率的、可靠性好的、適應高吞吐量的數據庫方案。
中文名
Oracle數據庫
外文名
Oracle Database
別    名
Oracle RDBMS
簡    稱
Oracle
優    點
數據安全性強,穩定性強

Oracle數據庫數據系統簡介

ORACLE數據庫系統是美國ORACLE公司(甲骨文)提供的以分佈式數據庫為核心的一組軟件產品,是最流行的客户/服務器(CLIENT/SERVER)或B/S體系結構的數據庫之一。比如SilverStream就是基於數據庫的一種中間件。ORACLE數據庫是世界上使用最為廣泛的數據庫管理系統,作為一個通用的數據庫系統,它具有完整的數據管理功能;作為一個關係數據庫,它是一個完備關係的產品;作為分佈式數據庫它實現了分佈式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。
Oracle數據庫最新版本為Oracle Database 20c。Oracle數據庫12c 引入了一個新的多承租方架構,使用該架構可輕鬆部署和管理數據庫雲。此外,一些創新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個數據庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle數據庫12c 成為私有云和公有云部署的理想平台。

Oracle數據庫發展歷史

2023年5月,甲骨文在北京舉行中國媒體溝通會,對新近推出的Oracle Database 23c開發者版本進行介紹。 [3] 

Oracle數據庫支持平台

在2001年發佈的Oracle9i之前,甲骨文公司把他們的數據庫產品廣泛的移植到了不同的平台上。近期,甲骨文公司鞏固了一小部分的操作系統平台。
截止至2015年01月,甲骨文公司的Oracle10g/11g/12c支持以下的操作系統和硬件:
· 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] 

Oracle數據庫數據特點

(1)完整的數據管理功能: [1] 
(2)數據的大量性
(3)數據的保存的持久性
(4)數據的共享性
(5)數據的可靠性
2、完備關係的產品:
(1)信息準則---關係型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;
(2)保證訪問的準則
(3)視圖更新準則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化;
(4)數據物理性和邏輯性獨立準則
3、分佈式處理功能:
ORACLE數據庫自第5版起就提供了分佈式處理能力,到第7版就有比較完善的分佈式數據庫功能了,一個ORACLE分佈式數據庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關係型產品構成。
4、用ORACLE能輕鬆的實現數據倉庫的操作。
這是一個技術發展的趨勢,不在這裏討論。
優點
可用性
■ 穩定性強

Oracle數據庫編程語言

SQL語言是操作關係型數據庫的工具,其最顯著特點是面向集合,使用SQL語言執行查詢時,只需説明數據所滿足的條件,不必説明數據的存儲位置和如何遍歷數據,常見的大型DBMS一般會對SQL語言加入過程性語言特徵,對其功能進行擴展,從而在數據庫中也可以進行編程,功能擴展後,Oracle的編程語言稱為PL/SQL。
在PL/SQL塊中,可以使用數據查詢語言,數據操作語言和數據控制語言,但不能使用數據定義語言,具體説,就是在SQL塊中可以使用SELECT、INSERT、UPDATE、DELETE、COMMIT、ROLLBACK,而不能使用CREATE、ALTER、DROP、GRANT、REVOKE。 [4] 
在Oracle中,使用了稱之為“專用SQL區”(Private SQL,Area)的工作區,用於執行SQL語句和存儲處理信息,在PL/SQL中,有一種叫做遊標(CURSOR)的專用SQL構造,可以快速存取它所存儲的信息,PL/SQL由兩種類型的遊標:顯示優先和隱式遊標。PL/SQL為全部SQL DML語句隱式地定義一個遊標,而對於返回多行的查詢,為了單個地處理每一行,必須顯式地定義一個遊標。在PL/SQL塊子程序或包的説明部分定義遊標,給遊標命名,並指定一查詢,之後可用三種命令:OPEN、FETCH和CLOSE控制遊標。 [5] 

Oracle數據庫工具簡介

·Navicat for Oracle是一套專為Oracle設計的強大數據庫管理開發工具。它可以用於任何版本的Oracle數據庫,並支持大部分Oracle的功能,包括觸發器、索引、檢視等。
·Toad for Oracle是一款老牌的Oracle開發管理工具,比任何一款Oracle開發管理工具功能更多,並針對使用者不同的角色有多個分支版本。版本包括:Toad DBA Suite for Oracle是一款專門為Oracle DBA管理Oracle數據庫工具, Toad Development Suite for Oracle是一款專門為Oracle開發工具, Toad DBA Suite for Oracle – Exadata Edition是一款專門為Oracle Exadata一體服務器及Oracle數據庫管理工具, Toad DBA Suite for Oracle - RAC Edition是一款專門為Oracle搭建集羣RAC的DBA管理工具

Oracle數據庫比較

在瞭解了ORACLE數據庫後,我們有必要對ORACLE和Sybase SQL Server的比較, Oracle採用的是並行服務器模式,而Sybase SQL Server採用的是虛擬服務器模式,它沒有將一個查詢分解成多個子查詢,再在不同的CPU上同時執行這些子查詢。我們可以説在對稱多處理方面Oracle的性能優於Sybase的性能。業務量往往在系統運行後不斷提高,如果數據庫數量達到GB以上時,我們在提高系統的性能方面可以從兩方面入手,一種是提高單台服務器的性能,還有就是增加服務器數目。基於此,如果我們是提高單台服務器的性能,選擇Oracle 數據庫較好,因為它們能在對稱多CPU的系統上提供並行處理。相反,由於Sybase的導航服務器使網上的所有用户都註冊到導航服務器並通過導航服務提出數據訪問請求,導航服務器則將用户的請求分解,然後自動導向由它所控制的多台SQL Server,從而在分散數據的基礎上提供並行處理能力,我們可以選擇它。這些都是在其他條件和環境相同的情況下比較的,這樣才有可比性。在數據的分佈更新方面,Oracle採用的是基於服務器的自動的2PC(兩階段提交),而Sybase採用的則是基於客户機DB-Library或CT-Library的可編程的2PC,因此我們在選擇數據庫方面,必須根據需要進行選擇,比如,從事的社會保險軟件的開發,考慮到數據量大,併發操作比較多,實時性要求高,我們後台基本採取的是ORACLE數據庫。Oracle服務器由Oracle數據庫和Oracle實例組成。Oracle實例由系統全局區內存結構和用於管理數據庫後台進程組成。

Oracle數據庫就業前景

從就業與擇業的角度來講,計算機相關專業的大學生從事oracle方面的技術是職業發展中的最佳選擇。
其一、就業面廣:ORACLE幫助拓展技術人員擇業的廣度,全球前100強企業99家都在使用ORACLE相關技術,中國政府機構,大中型企事業單位都能有ORACLE技術的工程師崗位,大學生在校期間興趣廣泛,每個人興趣特長各異,不論你想進入金融行業還是電信行業或者政府機構,ORACLE都能夠在你的職業發展中給你最強有力的支撐,成為你最貼身的金飯碗
其二、技術層次深:如果期望進入IT服務或者產品公司(類似畢博、DELL、IBM等),Oracle技術能夠幫助提高就業的深度。Oracle技術已經成為全球每個IT公司必選的軟件技術之一,熟練掌握Oracle技術能夠為從業人員帶來技術應用上的優勢,同時為IT技術的深入應用起到非常 關鍵的作用。掌握 Oracle技術,是IT從業人員瞭解全面信息化整體解決方案的基礎。
其三、職業方向多:Oracle數據庫管理方向、Oracle開發及系統架構方向、Oracle數據建模數據倉庫等方向.

Oracle數據庫邏輯結構

它由至少一個表空間和數據庫模式對象組成。這裏,模式是對象的集合,而模式對象是直接引用數據庫數據的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程同義詞、索引、簇和數據庫鏈等。邏輯存儲結構包括表空間、段和範圍,用於描述怎樣使用數據庫的物理空間。
總之,邏輯結構由邏輯存儲結構(表空間,段,範圍,塊)和邏輯數據結構(表、視圖、序列、存儲過程、同義詞、索引、簇和數據庫鏈等)組成,而其中的模式對象(邏輯數據結構)和關係形成了數據庫的關係設計。
oracle 數據庫邏輯結構 oracle 數據庫邏輯結構
段(Segment):
是表空間中一個指定類型的邏輯存儲結構,它由一個或多個範圍組成,段將佔用並增長存儲空間
其中包括:
數據段:用來存放表數據;
索引段:用來存放表索引;
臨時段:用來存放中間結果;
回滾段:用於出現異常時,恢復事務。
範圍(Extent):是數據庫存儲空間分配的邏輯單位,一個範圍由許多連續的數據塊組成,範圍是由段依次分配的,分配的第一個範圍稱為初始範圍,以後分配的範圍稱為增量範圍。
數據塊(Block):
是數據庫進行IO操作的最小單位,它與操作系統的塊不是一個概念。oracle數據庫不是以操作系統的塊為單位來請求數據,而是以多個Oracle數據庫塊為單位。

Oracle數據庫文件結構

數據庫的物理存儲結構是由一些多種物理文件組成,主要有數據文件控制文件、重做日誌文件、歸檔日誌文件、參數文件、口令文件、警告文件等。 [1] 
控制文件:存儲實例、數據文件及日誌文件等信息的二進制文件。alter system set control_files=‘路徑’。V$CONTROLFILE。
數據文件:存儲數據,以.dbf做後綴。一句話:一個表空間對多個數據文件,一個數據文件只對一個表空間。dba_data_files/v$datafile。
日誌文件:即Redo Log Files和Archivelog Files。記錄數據庫修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
參數文件:記錄基本參數。spfile和pfile。
警告文件:show parameter background_dump_dest---使用共享服務器連接
跟蹤文件:show parameter user_dump_dest---使用專用服務器連接 [1] 

Oracle數據庫恢復技術

Oracle數據庫恢復意義

當我們使用一個ORACLE數據庫時,總希望數據庫的內容是可靠的、正確的,但由於計算機系統的故障(硬件故障、網絡故障、進程故障和系統故障)影響數據庫系統的操作,影響數據庫中數據的正確性,甚至破壞數據庫,使數據庫中全部或部分數據丟失。因此當發生上述故障後,希望能重新建立一個完整的數據庫,該處理稱為數據庫恢復。恢復子系統數據庫管理系統的一個重要組成部分。恢復處理隨時隨地所發生的故障類型所影響的結構而變化。

Oracle數據庫恢復方法

數據泵邏輯導入方法:
利用impdp,將最後一次expdp出來的數據文件IMPORT到新的數據庫中,這種方式可以將任何數據庫對象恢復到它被導出時的狀態,此後的變化將無法挽回。IMPORT的命令可以交互式進行,各參數的具體含義見Oracle EXP/IMP參數詳解。這種方式適用於沒有采用archive 模式的環境。 [1] 
安全的恢復方法:
如果數據庫運行在archive 模式下,那麼一旦數據庫損壞則可以通過冷備份(熱備份)和歸檔備份將數據庫恢復到斷點狀態。
數據庫控制文件恢復(假設所有控制文件均被破壞):
數據庫基於文件系統: 利用操作系統的tar、cp等命令即可。
數據庫基於裸設備:dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12
數據庫數據文件恢復數據及索引表空間系統表空間的恢復:回拷相關的數據庫文件和該數據文件備份以來所有生成的所有邏輯日誌文件並執行如下命令:
svrmgrl>startup mount
svrmgrl>alter database recover automatic
如果控制文件被破壞,則:
svrmgrl>alter database recover using backup controfile;#按照提示輸入log文件名和redolog文件名
svrmgrl>alter database open resetlogs;
數據庫臨時文件和回滾表空間的恢復:簡單地offline drop 並重建即可 。
注意:如果數據庫不運行在archive 模式下,則恢復只能恢復到上次備份時的狀態。

Oracle數據庫安裝過程

一、準備安裝
基本都是按部就班。
使用的OS版本:OEL4
[oracle@ractestorcl]$cat/etc/redhat-release
EnterpriseLinuxEnterpriseLinuxASrelease4(OctoberUpdate5)

安裝程序路徑:
/mnt/Oracle11g_linux_x86_64/database
創建用户
groupadd-g1001dba
groupadd-g1002oinstall
useradd-u10000-gdba-Goinstall,dba-d/home/oracle-s/bin/bashoracle
chownRoracle:dba/home/oracle
usermod-gdba-Goinstall,dbaoracle
使用的.bash_profile
exportORACLE_BASE=/home/oracle
exportORACLE_HOME=$ORACLE_BASE/11g
exportORA_CRS_HOME=$ORACLE_BASE/crs
exportORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
exportORACLE_SID=orcl1
exportPATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:${PATH}:$HOME/bin
exportPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
exportPATH=${PATH}:$ORACLE_BASE/common/oracle/bin
exportORACLE_TERM=xterm
exportTNS_ADMIN=$ORACLE_HOME/network/admin
exportORA_NLS10=$ORACLE_HOME/nls/data
exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/
oracm/lib:$ORACLE_HOME/lib
exportLIBPATH=$LIBPATH:$ORA_CRS_HOME/lib:$ORACLE_HOME/lib
exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME
/network/jlib:$ORACLE_HOME/JRE
exportTHREADS_FLAG=native
exportTEMP=/tmp
exportTMPDIR=/tmp
exportNLS_LANG=american_america.WE8ISO8859P1
exportDISPLAY=10.198.90.55:2
aliassysdba="sqlplus'/assysdba'"
exportEDITOR=vi
修改的核心參數:
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正確:
代碼:
[oracle@ractest~]$xclock
[oracle@ractest~]$/mnt/Oracle11g_linux_x86_64/database
[oracle@ractest~]$cd/mnt/Oracle11g_linux_x86_64/database
[oracle@ractestdatabase]$ls-l
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
[oracle@ractestdatabase]$./runInstaller
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忽略
執行提示腳本,安裝完畢
代碼:
[oracle@ractestdatabase]$
[oracle@ractestdatabase]$su-root
Password:
[root@ractest~]#/home/oracle/oraInventory/orainstRoot.sh
Changing permissions of /home/oracle/oraInventory to 770.
Changing groupname of /home/oracle/oraInventory to dba.
The execution of the script is complete
[root@ractest~]#/home/oracle/11g/root.sh
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.
安裝完畢。

Oracle數據庫社會評價

2019年,在艾媒金榜(iiMedia Ranking)發佈的《2019企業服務品牌之HRM系統排行榜》中位列第一。 [2] 

Oracle數據庫實際應用

1、農業信息化
在大數據時代,農業信息化發展遇到了瓶頸。信息全球化使得農業的發展與傳統農業相比發生了巨大的改變。Oracle數據庫以分佈式數據處理為中心,它可以提供集中、 開放、全面的信息管理系統。把Oracle數據庫作用於農業的信息技術發展可以提高農業資源的管理與決策指揮。利用信息技術方法,把農業資源與環境中重要的數據快速、自動、高效地採集並且儲存起來,通過發現問題、整理問題、分析問題,繼而高效解決問題。通過與Oracle數據庫相結合,發展出來的信息採集技術、模擬種植技術、資源處理技術為一體的技術手段。 [7] 
2、醫療信息化
數字化信息已深入到社會的各個領域,醫院也加快數字化建設步伐,尤其以數據庫為核心的醫院信息系統的不斷髮展更為顯著。Oracle數據庫的真正應用集羣技術RAC為醫院龐大的數據量和複雜的業務流程提供了強有力的支持,它是由兩台或者兩台以上同構計算機及共享存儲設備構成,以提供強大的數據庫處理能力以及容錯能力,保障了持續的數據訪問。同時,Oracle RAC還能根據醫院業務需求的變化搞笑擴展以滿足任何性能需求,還可將醫院購置成本和操作複雜性降至最低。橫向和縱向上的伸縮特性為其提供了一個可在任何方向上進行擴展的平台,可支持醫院業務增長。應用系統的開發、管理及更改管理因此變得更為簡單,從而降低了成本。 [6] 
3、國家統計局
國家統計局是國家重要信息彙總、信息處理的中樞機構,要與國務院各大委部及各省市信息系統交流信息,但其信息系統包含的機種多,有DEC、HP、CDC以及AT&T等公司的機型,而Oracle數據庫系統幾乎可以使用任何計算機來建立可移植的基於SQL的應用系統,並且把不同計算機上的許多應用連接起來,形成功能強的分佈式數據庫環境,因此,國家統計局採用Oracle數據庫產品為其信息系統服務。 [8] 
參考資料