系統簡介 ORACLE
資料庫系統 是美國ORACLE公司(
甲骨文 )提供的以
分散式資料庫 為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S
體系結構 的資料庫之一。比如SilverStream就是基於資料庫的一種中間件。ORACLE資料庫是目前世界上使用最為廣泛的
資料庫管理系統 ,作為一個通用的資料庫系統,它具有完整的
數據管理 功能;作為一個關係資料庫,它是一個完備關係的產品;作為分散式資料庫它實現了
分散式處理 功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。
Oracle資料庫最新版本為Oracle Database 12c。Oracle資料庫12c 引入了一個新的多承租方架構,使用該架構可輕鬆部署和管理資料庫雲。此外,一些創新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個資料庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle資料庫12c 成為私有雲和公有雲部署的理想平台。
支持平台 在2001年發布的Oracle9i之前,甲骨文公司把他們的資料庫產品廣泛的移植到了不同的平台上。近期,甲骨文公司鞏固了一小部分的作業系統平台。
截止至2015年01月,甲骨文公司的Oracle10g/11g/12c支持以下的作業系統和硬體:
· HPTru64 UNIX:Alpha
· IBMAIX5L:IBM POWER
特點 1)數據的大量性
2)數據的保存的持久性
3)數據的共享性
4)數據的可靠性
2、完備關係的產品:
1)信息準則---關係型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;
2)保證訪問的準則
3)
視圖 更新準則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化
4)數據物理性和邏輯性獨立準則
ORACLE資料庫自第5版起就提供了分散式處理能力,到第7版就有比較完善的
分散式資料庫 功能了,一個ORACLE分散式資料庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非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 資料庫邏輯結構 是表空間中一個指定類型的邏輯存儲結構,它由一個或多個範圍組成,段將占用並增長存儲空間。
其中包括:
數據段:用來存放表數據;
索引段:用來存放表索引;
臨時段:用來存放中間結果;
回滾段:用於出現異常時,恢復事務。
範圍(
Extent ):是資料庫存儲空間分配的邏輯單位,一個範圍由許多連續的數據塊組成,範圍是由段依次分配的,分配的第一個範圍稱為初始範圍,以後分配的範圍稱為增量範圍。
數據塊(Block):
是資料庫進行IO操作的最小單位,它與作業系統的塊不是一個概念。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---使用專用伺服器連線
恢復技術 恢復意義 當我們使用一個ORACLE資料庫時,總希望資料庫的內容是可靠的、正確的,但由於計算機系統的故障(硬體故障、
網路故障 、進程故障和系統故障)影響
資料庫系統 的操作,影響資料庫中數據的正確性,甚至破壞資料庫,使資料庫中全部或部分數據丟失。因此當發生上述故障後,希望能重新建立一個完整的資料庫,該處理稱為資料庫恢復。恢復子系統是
資料庫管理系統 的一個重要組成部分。恢復處理隨時隨地所發生的故障類型所影響的結構而變化。
恢複方法 IMPORT方法:
利用IMPORT,將最後一次EXPORT出來的數據檔案IMPORT到新的資料庫中,這種方式可以將任何
資料庫對象 恢復到它被導出時的狀態,此後的變化將無法挽回。IMPORT的命令可以互動式進行,各參數的具體含義見Oracle EXP/IMP參數詳解。這種方式適用於沒有採用archive 模式的環境。
安全的恢複方法:
如果資料庫運行在archive 模式下,那么一旦資料庫損壞則可以通過
冷備份 (
熱備份 )和歸檔備份將
資料庫恢復 到斷點狀態。
資料庫基於檔案系統: 利用作業系統的tar、cp等命令即可。
資料庫基於
裸設備 :dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12
資料庫數據檔案恢複數據及索引
表空間 、
系統表空間 的恢復:回拷相關的
資料庫檔案 和該數據檔案備份以來所有生成的所有邏輯日誌檔案並執行如下命令:
svrmgrl>startupmountsvrmgrl>alterdatabaserecoverautomatic svrmgrl>alterdatabaserecoverusingbackupcontrofile;#按照提示輸入log檔案名稱和redolog檔案名稱svrmgrl>alterdatabaseopenresetlogs; 資料庫臨時檔案和
回滾 表空間 的恢復:簡單地offline drop 並重建即可 。
注意:如果資料庫不運行在archive 模式下,則恢復只能恢復到上次備份時的狀態。
安裝過程 一、準備安裝
基本都是按部就班。
使用的OS版本:OEL4
[oracle@ractestorcl]$cat/etc/redhat-releaseEnterpriseLinuxEnterpriseLinuxASrelease4(OctoberUpdate5)[oracle@ractestorcl]$cat/etc/enterprise-releaseEnterpriseLinuxEnterpriseLinuxASrelease4(OctoberUpdate5) 安裝程式路徑:
/mnt/Oracle11g_linux_x86_64/database
創建用戶
groupadd-g1001dbagroupadd-g1002oinstalluseradd-u10000-gdba-Goinstall,dba-d/home/oracle-s/bin/bashoraclechownRoracle:dba/home/oracleusermod-gdba-Goinstall,dbaoracle
使用的.bash_profile
exportORACLE_BASE=/home/oracleexportORACLE_HOME=$ORACLE_BASE/11gexportORA_CRS_HOME=$ORACLE_BASE/crsexportORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/adminexportORACLE_SID=orcl1exportPATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:${PATH}:$HOME/binexportPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/binexportPATH=${PATH}:$ORACLE_BASE/common/oracle/binexportORACLE_TERM=xtermexportTNS_ADMIN=$ORACLE_HOME/network/adminexportORA_NLS10=$ORACLE_HOME/nls/dataexportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/oracm/lib:$ORACLE_HOME/libexportLIBPATH=$LIBPATH:$ORA_CRS_HOME/lib:$ORACLE_HOME/libexportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/JREexportTHREADS_FLAG=nativeexportTEMP=/tmpexportTMPDIR=/tmpexportNLS_LANG=american_america.WE8ISO8859P1exportDISPLAY=10.198.90.55:2aliassysdba="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-rootPassword:[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.
安裝完畢。