Oracle數據庫
ORACLE數據庫系統是美國ORACLE公司(甲骨文)提供的以分布式數據庫為核心的一組軟件產品,是目前最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結構的數據庫之一。比如SilverStream就是基于數據庫的一種中間件。ORACLE數據庫是目前世界上使用最為廣泛的數據庫管理系統,作為一個通用的數據庫系統,它具有完整的數據管理功能;作為一個關系數據庫,它是一個完備關系的產品;作為分布式數據庫它實現了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。
Oracle數據庫12c 引入了一個新的多承租方架構,使用該架構可輕松部署和管理數據庫云。此外,一些創新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個數據庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle數據庫12c 成為私有云和公有云部署的理想平臺。
Oracle數據庫版本:
Oracle 將加速推進用戶升級到 12c 版本。下圖是Oracle的數據庫版本支持計劃圖。第一行就是 11.2 版本的支持生命周期,已經長達11年了。同種還展示了 即將發布的Oracle 19c 支持計劃。預計將于 2019年第一季度發布的 19c 將是 Oracle 12c 的終極版本,相當于傳統的 12.2.0.3 版本,按照管理,這個版本將會支持到 2026年。
下表詳細列出了 Oracle 最近版本的支持周期,供大家參考,變化內容請參考MOS:
特點
1、完整的數據管理功能:
數據的大量性
數據的保存的持久性
數據的共享性
- 數據的可靠性
2、完備關系的產品:
- 信息準則---關系型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;
- 保證訪問的準則
- 視圖更新準則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化
- 數據物理性和邏輯性獨立準則
3、分布式處理功能:
ORACLE數據庫自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式數據庫功能了,一個ORACLE分布式數據庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關系型產品構成。
4、用ORACLE能輕松的實現數據倉庫的操作。
這是一個技術發展的趨勢,就不在這里說了,有想知道的可以私聊小七
優點
■ 可用性強
■ 可擴展性強
■ 數據安全性強
■ 穩定性強
使用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幫助拓展技術人員擇業的廣度,全球前100強企業99家都在使用ORACLE相關技術,中國政府機構,大中型企事業單位都能有ORACLE技術的工程師崗位
技術層次深:如果期望進入IT服務或者產品公司(類似畢博、DELL、IBM等),Oracle技術能夠幫助提高就業的深度。Oracle技術已經成為全球每個IT公司必選的軟件技術之一,熟練掌握Oracle技術能夠為從業人員帶來技術應用上的優勢,同時為IT技術的深入應用起到非常 關鍵的作用。掌握 Oracle技術,是IT從業人員了解全面信息化整體解決方案的基礎。
職業方向多:Oracle數據庫管理方向、Oracle開發及系統架構方向、Oracle數據建模數據倉庫等方向.
邏輯結構
它由至少一個表空間和數據庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用數據庫數據的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同義詞、索引、簇和數據庫鏈等。邏輯存儲結構包括表空間、段和范圍,用于描述怎樣使用數據庫的物理空間。
總之,邏輯結構由邏輯存儲結構(表空間,段,范圍,塊)和邏輯數據結構(表、視圖、序列、存儲過程、同義詞、索引、簇和數據庫鏈等)組成,而其中的模式對象(邏輯數據結構)和關系形成了數據庫的關系設計。
文件結構
數據庫的物理存儲結構是由一些多種物理文件組成,主要有數據文件、控制文件、重做日志文件、歸檔日志文件、參數文件、口令文件、警告文件等。
控制文件:存儲實例、數據文件及日志文件等信息的二進制文件。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---使用專用服務器連接
MySQL和Oracle的區別
終于講到這里了!看完關于兩個數據庫的解釋,你們應該有看出那個數據庫更好一點吧,至于我為什么用MySQL多一點,最后一條有說哦!,下面說一下兩個數據庫的區別:
1、對事務的提交
MySQL默認是自動提交,而Oracle默認不自動提交,需要用戶手動提交,需要在寫commit;指令或者點擊commit按鈕
2、分頁查詢
MySQL是直接在SQL語句中寫"select... from ...where...limit x, y",有limit就可以實現分頁;而Oracle則是需要用到偽列ROWNUM和嵌套查詢
3、事務隔離級別
MySQL是read commited的隔離級別,而Oracle是repeatable read的隔離級別,同時二者都支持serializable串行化事務隔離級別,可以實現最高級別的
讀一致性。每個session提交后其他session才能看到提交的更改。Oracle通過在undo表空間中構造多版本數據塊來實現讀一致性,每個session
查詢時,如果對應的數據塊發生變化,Oracle會在undo表空間中為這個session構造它查詢時的舊的數據塊
MySQL沒有類似Oracle的構造多版本數據塊的機制,只支持read commited的隔離級別。一個session讀取數據時,其他session不能更改數據,但
可以在表最后插入數據。session更新數據時,要加上排它鎖,其他session無法訪問數據
4、對事務的支持
MySQL在innodb存儲引擎的行級鎖的情況下才可支持事務,而Oracle則完全支持事務
5、保存數據的持久性
MySQL是在數據庫更新或者重啟,則會丟失數據,Oracle把提交的sql操作線寫入了在線聯機日志文件中,保持到了磁盤上,可以隨時恢復
6、并發性
MySQL以表級鎖為主,對資源鎖定的粒度很大,如果一個session對一個表加鎖時間過長,會讓其他session無法更新此表中的數據。
雖然InnoDB引擎的表可以用行級鎖,但這個行級鎖的機制依賴于表的索引,如果表沒有索引,或者sql語句沒有使用索引,那么仍然使用表級鎖。
Oracle使用行級鎖,對資源鎖定的粒度要小很多,只是鎖定sql需要的資源,并且加鎖是在數據庫中的數據行上,不依賴與索引。所以Oracle對并
發性的支持要好很多。
7、邏輯備份
MySQL邏輯備份時要鎖定數據,才能保證備份的數據是一致的,影響業務正常的dml使用,Oracle邏輯備份時不鎖定數據,且備份的數據是一致
8、復制
MySQL:復制服務器配置簡單,但主庫出問題時,叢庫有可能丟失一定的數據。且需要手工切換叢庫到主庫。
Oracle:既有推或拉式的傳統數據復制,也有dataguard的雙機或多機容災機制,主庫出現問題是,可以自動切換備庫到主庫,但配置管理較復雜。
9、性能診斷
MySQL的診斷調優方法較少,主要有慢查詢日志。
Oracle有各種成熟的性能診斷調優工具,能實現很多自動分析、診斷功能。比如awr、addm、sqltrace、tkproof等
10、權限與安全
MySQL的用戶與主機有關,感覺沒有什么意義,另外更容易被仿冒主機及ip有可乘之機。
Oracle的權限與安全概念比較傳統,中規中矩。
11、分區表和分區索引
MySQL的分區表還不太成熟穩定。
Oracle的分區表和分區索引功能很成熟,可以提高用戶訪問db的體驗。
12、管理工具
MySQL管理工具較少,在linux下的管理工具的安裝有時要安裝額外的包(phpmyadmin, etc),有一定復雜性。
Oracle有多種成熟的命令行、圖形界面、web管理工具,還有很多第三方的管理工具,管理極其方便高效。
13、最最重要的區別
MySQL是輕量型數據庫,并且免費,沒有服務恢復數據。
Oracle是重量型數據庫,收費,Oracle公司對Oracle數據庫有任何服務。