天天看點

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

· 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[2] 

特點

1、完整的資料管理功能:[2] 

1)資料的大量性

2)資料的儲存的持久性

3)資料的共享性

4)資料的可靠性

2、完備關系的産品:

1)資訊準則---關系型DBMS的所有資訊都應在邏輯上用一種方法,即表中的值顯式地表示;

2)保證通路的準則

3)視圖更新準則---隻要形成視圖的表中的資料變化了,相應的視圖中的資料同時變化

4)資料實體性和邏輯性獨立準則

3、分布式處理功能:

ORACLE資料庫自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式資料庫功能了,一個ORACLE分布式資料庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關系型産品構成。

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資料模組化資料倉庫等方向.

邏輯結構

它由至少一個表空間和資料庫模式對象組成。這裡,模式是對象的集合,而模式對象是直接引用資料庫資料的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鍊等。邏輯存儲結構包括表空間、段和範圍,用于描述怎樣使用資料庫的實體空間。

總之,邏輯結構由邏輯存儲結構(表空間,段,範圍,塊)和邏輯資料結構(表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鍊等)組成,而其中的模式對象(邏輯資料結構)和關系形成了資料庫的關系設計。

Oracle資料庫

oracle 資料庫邏輯結構

段(Segment):

是表空間中一個指定類型的邏輯存儲結構,它由一個或多個範圍組成,段将占用并增長存儲空間。

其中包括:

資料段:用來存放表資料;

索引段:用來存放表索引;

臨時段:用來存放中間結果;

復原段:用于出現異常時,恢複事務。

範圍(Extent):是資料庫存儲空間配置設定的邏輯機關,一個範圍由許多連續的資料塊組成,範圍是由段依次配置設定的,配置設定的第一個範圍稱為初始範圍,以後配置設定的範圍稱為增量範圍。

資料塊(Block):

是資料庫進行IO操作的最小機關,它與作業系統的塊不是一個概念。oracle資料庫不是以作業系統的塊為機關來請求資料,而是以多個Oracle資料庫塊為機關。

檔案結構

資料庫的實體存儲結構是由一些多種實體檔案組成,主要有資料檔案、控制檔案、重做日志檔案、歸檔日志檔案、參數檔案、密碼檔案、警告檔案等。[2] 

控制檔案:存儲執行個體、資料檔案及日志檔案等資訊的二進制檔案。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---使用專用伺服器連接配接[2] 

恢複技術

恢複意義

當我們使用一個ORACLE資料庫時,總希望資料庫的内容是可靠的、正确的,但由于計算機系統的故障(硬體故障、網絡故障、程序故障和系統故障)影響資料庫系統的操作,影響資料庫中資料的正确性,甚至破壞資料庫,使資料庫中全部或部分資料丢失。是以當發生上述故障後,希望能重建立立一個完整的資料庫,該處理稱為資料庫恢複。恢複子系統是資料庫管理系統的一個重要組成部分。恢複處理随時随地所發生的故障類型所影響的結構而變化。

恢複方法

IMPORT方法:

利用IMPORT,将最後一次EXPORT出來的資料檔案IMPORT到新的資料庫中,這種方式可以将任何資料庫對象恢複到它被導出時的狀态,此後的變化将無法挽回。IMPORT的指令可以互動式進行,各參數的具體含義見Oracle EXP/IMP參數詳解。這種方式适用于沒有采用archive 模式的環境。[2] 

安全的恢複方法:

如果資料庫運作在archive 模式下,那麼一旦資料庫損壞則可以通過冷備份(熱備份)和歸檔備份将資料庫恢複到斷點狀态。

資料庫控制檔案恢複(假設所有控制檔案均被破壞):

資料庫基于檔案系統: 利用作業系統的tar、cp等指令即可。

資料庫基于裸裝置:dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12

資料庫資料檔案恢複資料及索引表空間、系統表空間的恢複:回拷相關的資料庫檔案和該資料檔案備份以來所有生成的所有邏輯日志檔案并執行如下指令:

1

2

​svrmgrl>startupmount​

​svrmgrl>alterdatabaserecoverautomatic​

如果控制檔案被破壞,則:

​svrmgrl>alterdatabaserecoverusingbackupcontrofile;#按照提示輸入log檔案名和redolog檔案名​

​svrmgrl>alterdatabaseopenresetlogs;​

資料庫臨時檔案和復原表空間的恢複:簡單地offline drop 并重建即可 。

注意:如果資料庫不運作在archive 模式下,則恢複隻能恢複到上次備份時的狀态。

安裝過程

一、準備安裝

基本都是按部就班。

使用的OS版本:OEL4

3

4

​[oracle@ractestorcl]$​

​​

​cat​

​/etc/redhat-release​

​EnterpriseLinuxEnterpriseLinuxASrelease4(OctoberUpdate5)​

​[oracle@ractestorcl]$​

​cat​

​/etc/enterprise-release​

​EnterpriseLinuxEnterpriseLinuxASrelease4(OctoberUpdate5)​

安裝程式路徑:

/mnt/Oracle11g_linux_x86_64/database

建立使用者

5

​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

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

​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

啟動圖形以後選擇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.

安裝完畢。