Oracle數據庫
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係數據庫管理系統。它是在數據庫領域一直處於領先地位的產品。可以說Oracle數據庫系統是目前世界上流行的關係數據庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的 適應高吞吐量的數據庫解決方案。
介紹
ORACLE數據庫系統是美國ORACLE公司(甲骨文)提供的以分佈式數據庫爲核心的一組軟件產品,是目前最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結構的數據庫之一。比如SilverStream就是基於數據庫的一種中間件。ORACLE數據庫是目前世界上使用最爲廣泛的數據庫管理系統,作爲一個通用的數據庫系統,它具有完整的數據管理功能;作爲一個關係數據庫,它是一個完備關係的產品;作爲分佈式數據庫它實現了分佈式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。[1]
Oracle數據庫最新版本爲Oracle Database 12c。Oracle數據庫12c 引入了一個新的多承租方架構,使用該架構可輕鬆部署和管理數據庫雲。此外,一些創新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個數據庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle數據庫12c 成爲私有云和公有云部署的理想平臺。
支持平臺
在2001年發佈的Oracle9i之前,甲骨文公司把他們的數據庫產品廣泛的移植到了不同的平臺上。近期,甲骨文公司鞏固了一小部分的操作系統平臺。
截止至2015年01月,甲骨文公司的Oracle10g/11g/12c支持以下的操作系統和硬件:
· AppleMac OS X Server:PowerPC
· 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[3]
特點
1)數據的大量性
2)數據的保存的持久性
3)數據的共享性
4)數據的可靠性
2、完備關係的產品:
1)信息準則---關係型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;
2)保證訪問的準則
3)視圖更新準則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化
4)數據物理性和邏輯性獨立準則
3、分佈式處理功能:
ORACLE數據庫自第5版起就提供了分佈式處理能力,到第7版就有比較完善的分佈式數據庫功能了,一個ORACLE分佈式數據庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關係型產品構成。[2]
4、用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和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幫助拓展技術人員擇業的廣度,全球前100強企業99家都在使用ORACLE相關技術,中國政府機構,大中型企事業單位都能有ORACLE技術的工程師崗位,大學生在校期間興趣廣泛,每個人興趣特長各異,不論你想進入金融行業還是電信行業或者政府機構,ORACLE都能夠在你的職業發展中給你最強有力的支撐,成爲你最貼身的金飯碗。
其二、技術層次深:如果期望進入IT服務或者產品公司(類似畢博、DELL、IBM等),Oracle技術能夠幫助提高就業的深度。Oracle技術已經成爲全球每個IT公司必選的軟件技術之一,熟練掌握Oracle技術能夠爲從業人員帶來技術應用上的優勢,同時爲IT技術的深入應用起到非常 關鍵的作用。掌握 Oracle技術,是IT從業人員瞭解全面信息化整體解決方案的基礎。
其三、職業方向多:Oracle數據庫管理方向、Oracle開發及系統架構方向、Oracle數據建模數據倉庫等方向.
邏輯結構
它由至少一個表空間和數據庫模式對象組成。這裏,模式是對象的集合,而模式對象是直接引用數據庫數據的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同義詞、索引、簇和數據庫鏈等。邏輯存儲結構包括表空間、段和範圍,用於描述怎樣使用數據庫的物理空間。
總之,邏輯結構由邏輯存儲結構(表空間,段,範圍,塊)和邏輯數據結構(表、視圖、序列、存儲過程、同義詞、索引、簇和數據庫鏈等)組成,而其中的模式對象(邏輯數據結構)和關係形成了數據庫的關係設計。
段(Segment):
是表空間中一個指定類型的邏輯存儲結構,它由一個或多個範圍組成,段將佔用並增長存儲空間。
其中包括:
數據段:用來存放表數據;
索引段:用來存放表索引;
臨時段:用來存放中間結果;
回滾段:用於出現異常時,恢復事務。
範圍(Extent):是數據庫存儲空間分配的邏輯單位,一個範圍由許多連續的數據塊組成,範圍是由段依次分配的,分配的第一個範圍稱爲初始範圍,以後分配的範圍稱爲增量範圍。
數據塊(Block):
是數據庫進行IO操作的最小單位,它與操作系統的塊不是一個概念。oracle數據庫不是以操作系統的塊爲單位來請求數據,而是以多個Oracle數據庫塊爲單位。
文件結構
數據庫的物理存儲結構是由一些多種物理文件組成,主要有數據文件、控制文件、重做日誌文件、歸檔日誌文件、參數文件、口令文件、警告文件等。[3]
控制文件:存儲實例、數據文件及日誌文件等信息的二進制文件。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---使用專用服務器連接[3]
恢復技術
恢復意義
當我們使用一個ORACLE數據庫時,總希望數據庫的內容是可靠的、正確的,但由於計算機系統的故障(硬件故障、網絡故障、進程故障和系統故障)影響數據庫系統的操作,影響數據庫中數據的正確性,甚至破壞數據庫,使數據庫中全部或部分數據丟失。因此當發生上述故障後,希望能重新建立一個完整的數據庫,該處理稱爲數據庫恢復。恢復子系統是數據庫管理系統的一個重要組成部分。恢復處理隨時隨地所發生的故障類型所影響的結構而變化。
恢復方法
IMPORT方法:
利用IMPORT,將最後一次EXPORT出來的數據文件IMPORT到新的數據庫中,這種方式可以將任何數據庫對象恢復到它被導出時的狀態,此後的變化將無法挽回。IMPORT的命令可以交互式進行,各參數的具體含義見Oracle EXP/IMP參數詳解。這種方式適用於沒有采用archive 模式的環境。[3]
安全的恢復方法:
如果數據庫運行在archive 模式下,那麼一旦數據庫損壞則可以通過冷備份(熱備份)和歸檔備份將數據庫恢復到斷點狀態。
數據庫控制文件恢復(假設所有控制文件均被破壞):
數據庫基於文件系統: 利用操作系統的tar、cp等命令即可。
數據庫基於裸設備:dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12
數據庫數據文件恢復數據及索引表空間、系統表空間的恢復:回拷相關的數據庫文件和該數據文件備份以來所有生成的所有邏輯日誌文件並執行如下命令:
如果控制文件被破壞,則:
數據庫臨時文件和回滾表空間的恢復:簡單地offline drop 並重建即可 。
注意:如果數據庫不運行在archive 模式下,則恢復只能恢復到上次備份時的狀態。
安裝過程
一、準備安裝
基本都是按部就班。
使用的OS版本:OEL4
安裝程序路徑:
/mnt/Oracle11g_linux_x86_64/database
創建用戶
使用的.bash_profile
修改的核心參數:
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正確:
代碼:
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
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忽略
執行提示腳本,安裝完畢
代碼:
Changing permissions of /home/oracle/oraInventory to 770.
Changing groupname of /home/oracle/oraInventory to dba.
The execution of the script is complete
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.
安裝完畢。[4]