orcale資料庫
A. Oracle資料庫基本知識
Oracle資料庫基本知識
Oracle Database,又名OracleRDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。本文為大家分享的是Oracle資料庫的基本知識,希望對大家有所幫助!
它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的適應高吞吐量的資料庫解決方案。
介紹
ORACLE資料庫系統是美國ORACLE公司(甲骨文)提供的以分布式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S體系結構的資料庫之一。比如SilverStream就是基於資料庫的一種中間件。ORACLE資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完整的數據管理功能;作為一個關系資料庫,它是一個完備關系的產品;作為分布式資料庫它實現了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。
Oracle資料庫最新版本為OracleDatabase 12c。Oracle資料庫12c引入了一個新的多承租方架構,使用該架構可輕松部署和管理資料庫雲。此外,一些創新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個資料庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle資料庫12c 成為私有雲和公有雲部署的理想平台。
就業前景
從就業與擇業的角度來講,計算機相關專業的大學生從事oracle方面的技術是職業發展中的最佳選擇。
其一、就業面廣:ORACLE幫助拓展技術人員擇業的廣度,全球前100強企業99家都在使用ORACLE相關技術,中國政府機構,大中型企事業單位都能有ORACLE技術的工程師崗位,大學生在校期間興趣廣泛,每個人興趣特長各異,不論你想進入金融行業還是電信行業或者政府機構,ORACLE都能夠在你的職業發展中給你最強有力的支撐,成為你最貼身的金飯碗。
其二、技術層次深:如果期望進入IT服務或者產品公司,Oracle技術能夠幫助提高就業的深度。Oracle技術已經成為全球每個IT公司必選的軟體技術之一,熟練掌握Oracle技術能夠為從業人員帶來技術應用上的優勢,同時為IT技術的深入應用起到非常關鍵的作用。掌握 Oracle技術,是IT從業人員了解全面信息化整體解決方案的基礎。
其三、職業方向多:Oracle資料庫管理方向、Oracle開發及系統架構方向、Oracle數據建模數據倉庫等方向。
Oracle資料庫漏洞分析:無需用戶名和密碼進入你的資料庫
一般性的資料庫漏洞,都是在成功連接或登錄資料庫後實現入侵;本文介紹兩個在2012年暴露的Oracle漏洞,通過這兩種漏洞的結合,可以在不掌握用戶名/密碼的情況下入侵Oracle,從而完成對數據的竊取或者破壞。這兩個漏洞就是CVE-2012-1675和CVE-2012-3137。
引言
國內外很多重要的系統都採用Oracle作為數據存儲的資料庫;在Oracle中存儲著企業或政府大量敏感的信息,在金錢或政治的誘導下,內外部黑客會想法利用管理、網路、主機或資料庫的自身漏洞嘗試入侵到資料庫中,以達到自身的目的。
本文的作者通過對Oracle倆種漏洞的組合研究,設計了一套在不掌握用戶名/密碼的方式入侵到Oracle中;這種方法,比傳統的需要登錄到資料庫中的入侵方法,具有更大的安全隱患和破壞性。
本文希望通過對這兩個漏洞和攻擊方法的介紹,能夠引起相關人員的重視,完善對資料庫安全的措施。
1、概要介紹
本文提供的方法是基於漏洞CVE-2012-1675和CVE-2012-3137對oracle資料庫的攻擊測試的方法。
CVE-2012-1675漏洞是Oracle允許攻擊者在不提供用戶名/密碼的'情況下,向遠程“TNS Listener”組件處理的數據投毒的漏洞。攻擊者可利用此漏洞將資料庫伺服器的合法“TNS Listener”組件中的數據轉向到攻擊者控制的系統,導致控制遠程組件的資料庫實例,造成組件和合法資料庫之間的中間人攻擊、會話劫持或拒絕服務攻擊。
CVE-2012-3137漏洞是Oracle Database 10g/11g身份驗證協議實現中存在一個設計缺陷,攻擊者無需認證即可遠程獲取資料庫用戶密碼哈希相關數據,從而可以離線暴力破解用戶密碼,進一步控制資料庫系統。
我們通過如下的步驟和過程可以實現對Oracle的入侵:
(1)利用CVE-2012-1675進行TNS劫持,在監聽下利用遠程注冊,注冊同名資料庫實例;
(2)新登陸的用戶,在TNS的負載均衡策略下,有可能流量登錄到偽造的監聽服務上;
(3)該監聽服務對用戶的登陸過程進行監控,並將相關數據流量轉發到真實的資料庫上;
(4)利用CVE-2012-3137獲得通訊過程中的認證相關信息;
(5)對認證相關信息進行離線的暴力破解,獲得登陸的密碼;
(6)試用破解的用戶名/密碼登陸Oracle,完成對Oracle中數據的訪問;
2、通過CVE-2012-1675進行TNS劫持
該漏洞存在於Oracle的所有版本,並且Oracle至今僅是發布了警告性通知,並未提供解決方案。
要想利用CVE-2012-1675漏洞做TNS劫持,首先需要了解TNS機制。如下圖所示oracle 通過在本地解析網路服務名到目標主機IP地址,服務埠號,目標資料庫名,把這些信息發送到oracle伺服器端監聽程序,最後再由監聽程序遞送DBMS。
其中關鍵點在於監聽會按照目標資料庫名遞送到名稱正確的資料庫。那麼如果一個監聽下有2個同名資料庫。監聽將自動按照負載均衡把這次訪問發送到負載低的資料庫上,進行連接訪問。資料庫注冊到監聽的方法就決定了,能否同時注冊同名資料庫在同一個監聽下。注冊方式分為本地注冊和遠程注冊,通過修改參數可以調整為遠程注冊。
下面是一段可用的TNS劫持的過程:
1.在劫持機上創建一個和目標資料庫實例同名的資料庫實例。
2.在劫持機上修改 tnsnames.ora 文件
添加
listener_name=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=目標機器IP)(PORT=目標機器埠)))
3.在劫持機上用sql*Plus 順序執行下面步驟。
1.$ sqlplus / as sysdba
2. SQL> ALTER SYSTEM SETREMOTE_LISTENER='LISTENER_NAME';
3. SQL> ALTER SYSTEM REGISTER;
4.多個客戶端,向資料庫發起登錄。會劫持到一部分客戶端的登錄信息。
最終達到效果如下圖所示:
按照猜想同一個監聽下有2個同名實例。客戶端訪問監聽,監聽按照客戶端中的資料庫名信息分配資料庫,由於監聽下有2個同名資料庫,客戶端鏈接很可能會被分配到劫持者的資料庫實例下,再通過配置劫持者的本地監聽把客戶端請求指回原資料庫。結構圖如下:
測試客戶端鏈接196次。目標資料庫實例獲得113次,劫持資料庫實例獲得83次基本滿足負載均衡的假設。(註上面實例是local server 下面實例是 remote server)
通過以上方式我們可以截獲約一半左右客戶端發送到伺服器的合法鏈接。其中獲得了伺服器IP、埠號、資料庫位置、實例名、登錄用戶名等一系列明文信息和4組密文信息(AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA)。
3、通過CVE-2012-3137進行密碼破解
CVE-2012-3137受影響的資料庫版本有11.2.0.3,11.2.0.2,11.1.0.7,有使用了SHA-1加密演算法的10.2.0.5和10.2.0.4,還有使用了SHA-1的10.2.0.3(運行在z/OS下)版本。
雖然這個漏洞在11.2.0.3中已經解決,但是僅僅資料庫客戶端和伺服器都升級到11.2.0.3並且sqlnet.ora文件中增加SQLNET.ALLOWED_LOGON_VERSION=12才有效。
正如CVE-2012-3137所描述Oracle為了防止第三方通過網路獲取登錄信息包。而對密碼進行了加密處理。本部分只以oracle11.1密碼如何破解為例進行說明。
在發起連接之後(oracle牽手完成),客戶端和伺服器經過協商確定要使用的驗證協議。要完成這個任務,客戶端首先向資料庫發送一個包。包中包含客戶端主要信息和所請求的加密方式。資料庫確認加密方式有效後,發送一個確認服務包如下圖所示:
在通過安全網路服務完成任何所要求的協議之後,資料庫用戶被O3logon(oracle驗證方式) 進行驗證,這個協議執行一個序列來向資料庫證明客戶端擁有密碼。為了避免網路第三方截獲到密碼。首先客戶端發送用戶名到資料庫來表明用戶身份。資料庫端根據加密協議,其中96位的作為資料庫端密鑰,20位的作為偏移量,它對每個連接都是不同的。一個典型的資料庫端發給客戶端的密鑰如下:
AUTH_SESSKEY.....COCDD89FIGODKWASDF……………………
客戶端根據加密演算法向伺服器端發送96位的客戶端密鑰和64位的密碼密鑰。伺服器端計算客戶端傳入的密碼密鑰。如果計算後密碼密文和資料庫中存儲的16位密碼密文一致則驗證通過。
根據這個過程可知上面TNS劫持包中取得的加密信息:AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA這四個值是解密的關鍵。我們把他們按照SHA1,MD5,AES192進行一系列處理。最終通過數據字典碰撞得到密碼明文。
下面這段網上公布的一段示例代碼,這段代碼與筆者的思路不完全相同,但也能大概地說明這個漏洞的攻擊過程:
import hashlib
from Crypto.Cipher import AES
def decrypt(session,salt,password):
pass_hash= hashlib.sha1(password+salt)
key =pass_hash.digest() + 'x00x00x00x00'
decryptor= AES.new(key,AES.MODE_CBC)
plain =decryptor.decrypt(session)
returnplain
session_hex ='6EAAB5422553A7598143E78767'
salt_hex = 'A7193E546377EC56639E'
passwords = ['test','password',''oracle','demo']
for password in passwords:
session_id= decrypt(session_hex.decode('hex'),salt_hex.decode('hex'),password)
print'Decrypted session_id for password "%s" is %s' %(password,session_id.encode('hex'))
ifsession_id[40:] == 'x08x08x08x08x08x08x08x08':
print'PASSWORD IS "%s"' % password
break
4、建議的預防措施
根據以上兩段分析,我們可以有如下的預防措施:
(1)在條件許可的情況下,對Oracle進行補丁升級,對Oracle打cpuoct2012-1515893補丁;注意對於cpuoct2012-1515893補丁要求伺服器端和應用伺服器端同時升級,否則應用系統將無法訪問Oracle;
(2)若無法對Oracle升級,要購買或安裝具備虛擬補丁功能的資料庫安全產品,防止對CVE-2012-3137和CVE-2012-1675的利用;
(3)建立足夠強健的口令,不要使用8位以下密碼,或者字典庫中的口令。
;B. ORACLE資料庫結構的簡介
關於ORACLE資料庫結構的簡介
ORACLE的資料庫結構大家都了解嗎?如果不了解,下面我為大家整理了關於ORACLE資料庫結構簡介的文章,希望能為你提供幫助:
一、物理結構:
1、數據文件:ORACLE資料庫包含若干數據文件,數據文件存儲資料庫數據,包括表、索引等等。數據文件的幾個特點:
1)一個數據文件只允許分配給一個資料庫
2)數據文件可設置為自動擴展
3)一個或多個數據文件構成表空間
在進行資料庫操作的時候,資料庫先從內存尋找要操作的數據,如果沒有找到的話,再從數據文件取出數據放在內存中,然後才對內存中的數據進行相關的操作。操作完的數據並沒有立即寫到數據文件中(這樣減少了磁碟的IO),而是放在內存中,然後由DBWn進程決定何時批量寫入數據文件。
2、控制文件:每一個資料庫都有一個或多個控制文件,控制文件包含了資料庫的物理結構,包括:
1)資料庫名
2)數據文件名及位置
3)重做日誌文件名及位置
4)資料庫的建立時間等等
一般一個資料庫都有若干個控制文件鏡像。資料庫在打開的時候(ALTER
DATABASE OPEN),會讀取控制文件中的信息來打開資料庫。當資料庫的物理結構發生變化的時候,比如增加一個數據文件、一組重做日誌等等,控制文件都會自動地做相應的修改。在資料庫物理結構發生變化後,最好重新備份一下控制文件,用於資料庫恢復。
3、重做日誌文件:重做日誌中記錄了數據的變化。一般一個資料庫都會有兩到三組重做日誌文件。同一日誌組的鏡像最好分布於不同的磁碟上。
4、歸檔日誌:當資料庫啟動歸檔的時候,重做日誌會被自動歸檔到指定的位置。
5、初始化參數文件:包含了資料庫啟動時的配置信息
6、警告和跟蹤日誌文件
1)跟蹤文件:每一個後台進程都有一個單獨的'跟蹤文件,比如當系統發現某一個進程有問題的時候,相關的信息就會寫到相應的跟蹤文件中。可以從資料庫的跟蹤文件來發現和調試資料庫的錯誤。
2)警告文件,也叫警告日誌。是一個特別的跟蹤文件,它記錄著資料庫啟動、運行中的相關信息,它是按時間順序進行記錄的。
7、備份文件
二、邏輯結構
1、表空間:相關邏輯對象的集合。在oracle10g中,在創建資料庫的時候就自動創建了SYSTEM和SYSAUX表空間。
2、數據塊:數據存儲在數據塊中,一個數據塊的大小(DB_BLOCK_SIZE)由操作系統塊來決定。可以指定5種,分別為2K、4K、8K、16K、32K。
3、區:一系列連續的數據塊組成區,區存儲特定類型的數據,比如索引,表等等。
4、段:由一系列區組成段。
1)數據段:對於每一個非聚集表有一數據段,表的所有數據存放在該段。每一聚集有一個數據段,聚集中每一個表的數據存儲在該段中。分區表中的每一個分區有一個數據段,分區中的數據存儲在該段中。
2)索引段:每一個索引有一索引段,存儲索引數據。分區索引中的每一分區有一個索引段。
3)回滾段:用於臨時存儲要撤消的信息,這些信息用於生成讀一致性資料庫信息,在資料庫恢復時使用,回滾未提交的事務。系統回滾段用於處理系統事務,不建議用戶使用系統回滾段來做其它操作。
4)臨時段:當一個SQL語句需要臨時工作區時,由ORACLE建立臨時段。當語句執行完畢,臨時段的區退回給系統。
;C. 怎樣啟動和關閉oracle資料庫
1、由於oracle運行在Linux系統裡面,第一步,我們要連接Linux系統。
D. Oracle資料庫是什麼
ORACLE是一種適用於大型、中型和微型計算機的關系資料庫管理系統,它使用SQL(Structured guery language)作為它的資料庫語言。
SQL主要包括數據定義、數據操縱(包括查詢)和數據控制等三方面功能。SQL是一種非過程化程度很高的語言,用戶只需說明"干什麼"而無需具體說明"怎麼干"語言簡潔、使用方便功能強大,集聯機交互與嵌入於一體,能適應廣泛的使用環境。ORACLE資料庫由三種類型的文件組成:資料庫文件、日誌文件和控制文件。
數據字典是由ORACLE自動建立並更新的一組表,這些表中記錄用戶的姓名、描述表和視圖以及有關用戶許可權等的信息。數據字典是只讀的,只允許查詢。也就是說數據字典是一種資料庫資源,每個用戶都可以訪問數據字典,DBA可通過數據字典來監視ORACLERDBMS的使用,並幫助用戶完成其應用。ORACLE RDBMS本身也要利用資料庫字典來管理和控制整個資料庫。
提起資料庫,第一個想到的公司,一般都會是Oracle。該公司成立於1977年,最初是一家專門開發資料庫的公司。
Oracle在資料庫領域一直處於領先地位。1984年,首先將關系資料庫轉到了桌面計算機上。然後,Oracle的下一個版本,版本5,率先推出了分布式資料庫、客戶/伺服器結構等嶄新的概念。Oracle的版本6首創行鎖定模式以及對稱多處理計算機的支持……最新的Oracle8主要增加了對象技術,成為關系-對象資料庫系統。目前,ORACLE產品覆蓋了大、中、小型機等幾十種機型,Oracle資料庫成為世界上使用最廣泛的關系數據系統之一。
E. 什麼是oracle資料庫
Oracle資料庫的體系結構
Oracle資料庫包括Oracle資料庫伺服器和客戶端。
Oracle資料庫伺服器:
Oracle Server是一個對象一關系資料庫管理系統。它提供開放的、全面的、和集成的信息管理方法。每個Server由一個 Oracle DB和一個 Oracle Server實例組成。它具有場地自治性(Site Autonomy)和提供數據存儲透明機制,以此可實現數據存儲透明性。每個 Oracle資料庫對應唯一的一個實例名SID,Oracle資料庫伺服器啟動後,一般至少有以下幾個用戶:Internal,它不是一個真實的用戶名,而是具有SYSDBA優先順序的Sys用戶的別名,它由DBA用戶使用來完成資料庫的管理任務,包括啟動和關閉資料庫;Sys,它是一個 DBA用戶名,具有最大的資料庫操作許可權;System,它也是一個 DBA用戶名,許可權僅次於 Sys用戶。
客戶端:為資料庫用戶操作端,由應用、工具、SQL* NET組成,用戶操作資料庫時,必須連接到一伺服器,該資料庫稱為本地資料庫(Local DB)。在網路環境下其它伺服器上的 DB稱為遠程資料庫(Remote DB)。用戶要存取遠程 DB上的數據時,必須建立資料庫鏈。
Oracle資料庫的體系結構包括物理存儲結構和邏輯存儲結構。由於它們是相分離的,所以在管理數據的物理存儲結構時並不會影響對邏輯存儲結構的存取。
1.邏輯存儲結構
它由至少一個表空間和資料庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用資料庫數據的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同一詞、索引、簇和資料庫鏈等。邏輯存儲結構包括表空間、段和范圍,用於描述怎樣使用資料庫的物理空間。而其中的模式對象和關系形成了資料庫的關系設計。
數據塊(Block):是資料庫進行UO操作的最小單位,它與操作系統的塊不是一個概念。oracle資料庫不是以操作系統的塊為單位來請求數據,而是以多個Oracle資料庫塊為單位。
段(Segment):是表空間中一個指定類型的邏輯存儲結構,它由一個或多個范圍組成,段將佔用並增長存儲空間。
其中包括:數據段:用來存放表數據;.
索引段:用來存放表索引;
臨時段:用來存放中間結果;
回滾段:用於出現異常時,恢復事務。
范圍(Extent):是資料庫存儲空間分配的邏輯單位,一個范圍由許多連續的數據塊組成,范圍是由段依此分配的,分配的第一個范圍稱為初始范圍,以後分配的范圍稱為增量范圍。
優點有:■ 可用性強
■ 可擴展性強
■ 數據安全性強
F. Oracle資料庫概述及特點
Oracle資料庫概述及特點
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。到目前仍在資料庫市場上佔有主要份額。勞倫斯·埃里森和他的朋友,之前的同事Bob Miner和Ed Oates在1977年建立了軟體開發實驗室咨詢公司(SDL,Software Development Laboratories)。
ORACLE資料庫概論
ORACLE資料庫系統是美國ORACLE公司(甲骨文)提供的以分布式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S體系結構的資料庫之一。比如SilverStream就是基於資料庫的`一種中間件。
ORACLE資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完整的數據管理功能;作為一個關系資料庫,它是一個完備關系的產品;作為分布式資料庫它實現了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。
Oracle資料庫最新版本為Oracle Database 12c。Oracle資料庫12c 引入了一個新的多承租方架構,使用該架構可輕松部署和管理資料庫雲。此外,一些創新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個資料庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle資料庫12c 成為私有雲和公有雲部署的理想平台。
ORACLE資料庫特點
1、完整的數據管理功能:
1)數據的大量性
2)數據的保存的持久性
3)數據的共享性
4)數據的可靠性
2、完備關系的產品:
1)信息准則---關系型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;
2)保證訪問的准則
3)視圖更新准則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化
4)數據物理性和邏輯性獨立准則
3、分布式處理功能:
ORACLE資料庫自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式資料庫功能了,一個ORACLE分布式資料庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關系型產品構成。
4、用ORACLE能輕松的實現數據倉庫的操作。
這是一個技術發展的趨勢,不在這里討論。
優點
■ 可用性強
■ 可擴展性強
■ 數據安全性強
■ 穩定性強
;G. Oracle資料庫主要是干什麼的
oracle是關系型的資料庫,它的功能非常強大,要深入研究
H. 資料庫是什麼Oracle又是啥玩意
經常會有人問我資料庫是幹啥的,其實一開始我是拒絕回答的,因為我也不能做到通俗易懂的表達出來,畢竟我接觸這個概念也沒有多長時間,但隨著問的人多了,我覺得是時候腦補一下我的第一堂課了,萬一哪天冒出來個貨跟你掰扯這事兒,你沒分分鍾給他說清,最後弄個丟里兒丟面兒,好尷尬呀。
資料庫,說白了就是按照數據結構來組織、存儲和管理數據的倉庫,這些數據是結構化的,並可為多種應用服務。也就是說,資料庫是使用計算機伺服器來存儲數據的,專門用來提供各種數據服務。可以這樣想像,過去一個公司的所有財務數據都是放在保險櫃裡面,而現在我們就可以針對這些財務數據搭建一個資料庫放在某台計算機或伺服器上面;再比如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。最常見的資料庫有:銀行儲蓄系統、手機話費系統、美容美發會員系統、超市會員積分系統、水電費系統、機票或火車票系統等,這些都需要後台資料庫基礎設施的支撐。舉了這么多例子,應該是把資料庫說明白了,至少能在大腦裡面有個概念,知道這個東西是幹啥的。
現在大數據被炒的紅得發紫,而大數據的基礎也是數據,由此可見,數據是一個企業的核心資源,說它是企業的立身之本、發展之基都不為過,因此,維護資料庫的資料庫管理員(DBA)是企業不可或缺的。
目前市面上的資料庫產品有很多,單從規模上分可分為大型、中型、小型幾種,典型的資料庫產品如下:
大型資料庫:Oracle、DB2、Sybase;
中型資料庫:MySQL、SQLServer、Infomix;
小型資料庫:Access、VisualFoxpro。在眾多的資料庫產品中,Oracle資料庫一直處於行業領導先地位,也是當今最流行的關系型資料庫。Oracle可翻譯成"甲骨文",它是一家以資料庫為主業的全球化公司,是全球第二大軟體公司(第一名是微軟公司),目前Oracle在資料庫軟體市場已經排名第一,資料庫軟體市場份額達到48.6%,遙遙領先於第二名佔有率僅為20.7%的IBM公司的DB2。在中國市場上的計算機專業系統後台所使用的資料庫尤以Oracle資料庫居多。但是購買Oracle資料庫需要很大一筆費用,一般的大型企業使用,需要有專業人員進行管理和維護,中小企業承擔不起。中小企業為了節省成本,一般使用MySQL、PostgreSQL這類免費開源的資料庫,所以Oracle資料庫相關的工作崗位一般是在大型企業中。
對於為什麼選擇Oracle資料庫,而不是其他的資料庫?
第一,是因為Oracle資料庫占據最大的市場份額,並且越來越大,市場需要很多Oracle資料庫方面的人才,中國有句老話說"做對事,選對人",是同樣的道理;第二,是很多非Oracle資料庫的老系統正往Oracle資料庫遷移,其他資料庫市場佔有率在減少,其他資料庫工作者有面臨失業的風險;第三,Oracle有大量的官方學習文檔,還有部分中文文檔,可以有效地進行學習;第四,Oracle有大量的從業人員,有共同方向的朋友可以互相幫助,不再是孤膽英雄;第五,是可以很容易地從Oracle官方網站下載功能齊全的資料庫最新版本進行學習,可以讓你了解資料庫方面的最新發展趨勢等。
在此說明,以後的所有內容都是基於Oracle11g資料庫產品的,下面我們就簡單介紹一下Oracle11g的系列產品:
企業版(EnterpriseEdition)此版本包含了資料庫的所有組件,並且能夠通過購買選項和程序包來進一步對其增強。
能支持例如大業務量的在線事務處理OLTP(On-LineTransactionProcessing聯機事務處理系統)環境、查詢密集的數據倉庫和要求苛刻的互聯網應用程序。
標准版1(StandardEditionOne)此版本為工作組、部門級和互聯網、內聯網應用程序提供了前所未有的易用性和性價比。從針對小型商務的單伺服器環境到大型的分布式部門環境,該版本包含了構建重要商務應用程序所必需的全部工具。它僅許可在最高容量為2個處理器的伺服器上使用,支持Windows/Linux/UNIX操作系統,並支持64位平台操作系統。
標准版(StandardEdition)此版本提供了StandardEditionOne所不具有的易用性、能力和性能,並且利用真正的應用集群(RAC)提供了對更大型計算機和服務集群的支持。它可以在最高容量為4個處理器的單台伺服器上、或者在一個支持最多4個處理器的集群上使用,可支持Windows、Linux和UNIX操作系統,並支持64位平台操作系統。
簡化版此版本支持與標准版1、標准版和企業版完全兼容的單用戶開發和部署。通過將Oracle資料庫獲獎的功能引入到個人工作站中,該版本提供了結合世界上最流行的資料庫功能的資料庫,並且該資料庫具有桌面產品通常具有的易用性和簡單性,可支持Linux和Windows操作系統。
從存儲結構上來說,目前流行的資料庫主要包含以下兩種:
RDBMS:關系型資料庫,是指採用了關系模型來組織數據的資料庫;
NoSQL資料庫,是指那些非關系型的、分布式的資料庫。簡單來說,關系模型指的就是二維表格模型,而一個關系型資料庫就是由二維表及其之間的聯系所組成的一個數據組織。
關系型資料庫優點:
1、容易理解
二維表結構是非常貼近邏輯世界的一個概念,關系模型相對網狀、層次等其他模型來說更容易理解。
2、使用方便
通用的SQL語言使得操作關系型資料庫非常方便。
3、易於維護
豐富的完整性大大減低了數據冗餘和數據部移植的概率。
4、事務安全
所有關系型資料庫都不同程度的遵守事物的四個基本屬性,因此對於銀行、電信、證券等交易型業務是不可或缺的。
關系型資料庫的瓶頸:
1、高並發讀寫需求
網站的用戶並發性非常高,往往達到每秒上萬次讀寫請求,對於傳統型資料庫來說,硬碟I/O是一個很大的瓶頸。
2、海量數據的高效率讀寫
互聯網上每天產生的數據量是巨大的,對於關系型資料庫來說,在一張包含海量數據的表中查詢,效率是非常低的。
3、高擴展性和可用性
在基於WEB的結構中,資料庫是最難進行橫向擴展的,當一個應用系統的用戶量和訪問量與日俱增的時候,資料庫卻沒有辦法像WEBServer和APPLICATIONServer那樣簡單的通過添加更多的硬體和服務節點來擴展性能和負載能力。對於很多需要提供24小時不間斷服務的網站來說,對資料庫系統進行升級和擴展是非常痛苦的事情,往往需要停機維護和數據遷移。
NoSQL資料庫
NoSQL一詞首先是CarloStrozzi在1998年提出的。2009年再次提出了NoSQL一詞,用於指那些非關系型的、分布式的,且一般不保證遵循ACID原則的數據存儲系統。
NoSQL具有以下特點:
1、可以彌補關系型資料庫的不足
2、針對某些特定的需求而設計,可以具有極高的性能
3、大部分都是開源的,由於成熟度不夠,存在潛在的穩定性和維護性問題。
關系型資料庫適用於結構化數據,而非關系型資料庫適用於非結構化數據,二者優勢互補,相得益彰。
Oracle資料庫未來的發展方向是提供結構化、非結構化、半結構化的解決方案,實現關系型資料庫和NoSQL共存互補。值得強調的是,目前關系型資料庫仍是主流資料庫。
雖然NoSQL資料庫打破了關系型資料庫存儲的觀念,可以很好地滿足WEB2.0時代數據的存儲要求,但NoSQL資料庫也有自己的缺陷。在現階段的情況下,可以將關系型資料庫和NoSQL資料庫結合使用,相互彌補各自的不足。
關於資料庫及其代表產品Oracle今天就介紹這么多,有興趣的可以繼續深挖,希望我的介紹能讓你對資料庫有一個更深入的認識。如果有志於在這方面發展的話,就讓我們一起跟往事乾杯從頭再來。
I. 怎樣安裝oracle資料庫
1·在oracle官網上下載oracle資料庫,以Oracle Database 11gRelease 2版本的oracle資料庫為例,其他版本的安裝也大同小異。注意,下載前得AcceptLicense Agreement.