⑴ Oracle認證全面解析
Oracle認證全面解析
Oracle是第一個跨整個產品線(資料庫、業務應用軟體和應用軟體開發與決策支持工具)開發和部署100%基於互聯網的企業軟體的公司。下面是我整理的關於Oracle認證管理員認證考試,希望大家認真閱讀!
一、 Oracle,僅次於微軟的世界第二大軟體公司
Oracle雖然規模很大,但名聲不像微軟、IBM那樣顯赫,很多非計算機專業的在校學生不知道Oracle是何物。但是如果你是一位想在畢業後進入IT行業的學生,那麼,你必須知道什麼是Oracle.
首先,Oracle是一家軟體公司。這家1977成立於加利福尼亞的軟體公司是世界上第一個推出關系型數據管理系統(RDBMS)的公司。現在,他們的RDBMS被廣泛應用於各種操作環境:Windows NT、基於UNIX系統的小型機、IBM大型機以及一些專用硬體操作系統平台。事實上,Oracle已經成為世界上最大的RDBMS供應商,並且是世界上最主要的信息處理軟體供應商。現在,Oracle是僅次於微軟公司的世界第二大軟體公司,2000年的銷售額為101億美元。現在Oracle在世界范圍內大約聘用了4萬3千多名專業技術人員,在美國本土有2萬1千名。有趣的是,即使在美國本土,Oracle的技術人員(主要是程序員)中有40%是印度人,中國人是第二多的,其次才是美國人。
然後,Oracle是一個龐大的品牌系統。如前所述,Oracle不僅在全球最先推出了RDBMS,並且事實上掌握著這個市場的大部分份額,由於Oracle 公司的RDBMS都以Oracle為名,所以,在某種程度上Oracle己經成為了RDBMS的代名詞。而近幾年來,Oracle不斷積極地擴展自己的業務,成功地開發了許多橫向和縱向的產品,譬如Oracle自己設計生產的Oracle伺服器,面對商業客戶的商業交易系統(Oracle Exchange),Oracle數據中心等等。同時,Oracle還成功開發出了很多面對程序員的開發工具,譬如著名的Designer/2000計算機輔助系統工程(CASE)工具和Developer/2000開發包,這些工具作為「設計器」和「開發器」,有力地幫助了程序員的開發工作,也有力地提高了Oracle的聲譽。此外,Oracle還開發了一系列面對不同對象的應用軟體,它們被統稱為Oracle應用軟體。這些軟體使得Oracle被廣泛應用到各個領域,同時也為Oracle帶來滾滾財源。比較常見的Oracle軟體產品包括:。Oracle財務軟體(Oracle Financial)。Oracle製造業軟體(Oracle Manufacturing)。Oracle人力資源軟體(Oracle Human Resources)。Oracle自動控制軟體(Oracle Automotive)。Oracle 商業交易系統(Oracle Exchange)
以及其他的應用軟體。這些軟體連同OracleRDBMS使得Oracle成為一個龐大的品牌系統,深入到了人們生產和生活的各個領域。
由於Oracle擁有多年在各種行業下的多種解決方案,擁有基於不同客戶環境的Oracle RDMBS伺服器工具及規模巨大的應用軟體系統,而且,這個龐大的系統正在不同程度、不同層次地為各行各業所廣泛應用。因此,能夠熟練掌握這個系統的某些方面及適應這個系統的不斷更新的專業工程師必然是各界急需的人才,有著良好的就業前景。事實上,Oracle公司也認識到了這一點,這就是Oracle認證專家——OCP(Oracle Certified Professional)的由來。
二、Oracle認證種類介紹
Oracle認證專家——OCP,是由Oracle公司授權國際考試認證中心對考生進行的資格認證。考生按考試標准要求參加幾門課程的.考試(一般為3—5門),在通過全部考試後,便可獲得OCP的專家認證。
目前OCP認證考試分為:
Database Administrator:資料庫管理員考試認證,簡稱DBA.資料庫管理員負責對資料庫進行日常的管理、備份及資料庫崩潰後的恢復問題。
Database Operator:資料庫操作員認證考試,簡稱DBO.資料庫操作員主要是基於Windows NT的Oracle 8資料庫管理,能夠熟練應用OEM等工具完成對資料庫的操作及日常的管理工作。
Database Developer:資料庫開發員認證考試,簡稱DEV.資料庫開發員應能熟練掌握用Developer/2000的工具建立各種Forms應用程序,建立各種標準的以及自定義的報表。
Java Developer:Java開發人員考試。
Application Consultant: Oracle產品應用咨詢顧問。
其中,Oracle DBA是最吃香,但也是最難考的一個認證。在Oracle的官方的網站上,對DBA有以下說明:
Oracle DBA專家可以跟上如今日趨復雜的系統環境要求。最好的DBA們都在幕後工作,他們小心地維護著系統,使得系統可以每天都平穩地運轉,並且防止意外災難的發生,譬如資料庫崩潰或者成小時地宕機。這項艱巨的任務需要對Oracle資料庫的結構和運行方式有著廣泛泛深入的了解,並且有豐富的實戰經驗。最好的DBA可以在取得最佳運行狀態及防止他們公司停止運行的突發事件中找到平衡。Oracle DBA認證考試就是提供一個證明該人可以勝任Oracle DBA這一職務的認證。本認證考試設計了5門獨立的考試,使你可以利用良好的知識獲得一個專家認證。
三、如何參加考試?
OCP認證的所有考試也是通過Prometric公司組織的,具體的考試事宜請訪問它的官方的網站:www.prometric.com.cn
目前OCP每門考試的費用為125美元。
四、如何准備考試?
1、Oracle公司推薦的官方准備途徑
一般來講,Oracle的考試內容比較多,並且考題也很細,對動手能力要求很強。因此,為了有足夠的把握,一定要提前充分准備,而且一定要注重動手實踐。在Oracle官方的網站上推薦的通過認證的途徑如下,可以進行參考。
Oracle大學:Oracle大學提供的教師引導及基於技術的訓練(Instructor-led training and technology- based training)是准備OCP認證的最好方式,這些課程將為你打下需要通過OCP認證的知識基礎。你可以查閱一下課程表來選擇理想的准備方式,你當地的Oracle大學可以在這方面給你一些最好的建議。你可以訪問Oracle的網站http://ecation.oracle.com,獲得更多的信息。
自己准備:實戰經驗是加深你對Oracle考試內容理解的最好方式。Oracle建議你將理論學習拓展,在實際工作或是練習中使用新學到的技巧和知識來自學。
考試內容檢查表:使用考試內容檢查表(Test Content Checklist)來確定你必須准備的所有題目。Oracle會不斷地更新考試內容檢查表,所以請訪問Oracle網站 httP://www.oracle.com/ecation/certification,下載最新的考試指南。
其它考試工具:模擬考試題及自我測試軟體可以幫助你更好地准備OCP認證考試。Oracle和自我測試軟體公司(Self Test Software)聯合出品了一些高質量的考試軟體以幫助考生更好地准備OCP認證考試,這些軟體可以通過 Oracle 網站 http://www.oracle.com/ecation/certification定購。
事實上,絕大部分的大陸同學都是通過參加培訓班來准備考試的,它們不僅輔導通過考試的知識,而且其他信息包括如何報名,考場上如何應考,都可以得到輔導。以上Oracle官方的介紹只是一般地對你進行一下有關備考的初級教育,事實上,正像我們前面說過的,作為一個龐大的資料庫系統,要想掌握好Oracle(更不要說完全掌握了——我甚至懷疑是否有人真正完全掌握過Oracle),從任何角度而言都不是一件易事。除非你有足夠的決心和耐心,准備將Oracle當作你的職業之路並致力於資料庫技術的研究,你才有可能真正了解這個龐雜系統的精髓。以下的一些論述將有助於你對Oracle有一個初步的了解。
2、Oracle資料庫技術基本知識
(1)Oracle資料庫涵蓋了資料庫技術的方方面面。
盡管關系型資料庫從原理上來講並不是很難,有一些資料庫知識的人掌握這些原理並不會花很大的氣力,而且,一般的關系型資料庫軟體,譬如 sql Server,用起來並不復雜,但Oracle絕對與眾不同。作為有史以來最成功的關系型資料庫軟體,Oracle的實現方式和管理維護手段非常豐富,它涉及到很多方面的細節技術。單從任何一個側面來理解它,是難觀其全貌的。要想真的精通它,沒有兩三年功夫是不行的。單是Oracle的技術文檔,就足夠淹沒你的! 具體說來,Oracle技術包括以下幾個主要方面:Oracle系統結構和原理、Oracle資料庫的安裝和配置、Oracle資料庫的管理、Oracle的數據備份與恢復技術、Oracle的性能調整、Oracle的新產品特性(Java支持、應用伺服器、時間空間系列、文本服務等)、Oracle的並行伺服器技術、Oracle的數據倉庫技術、Oracle的對象類型和對象一關系模型等技術……
毫不誇張地說,以上任何一個部分單獨拿出來都是很大的題目!
(2)Oracle技術發展快,技術的關聯性大。
盡管Oracle只是一個資料庫系統,但在實際應用中,你不可能只面對資料庫本身。譬如,你在做Oracle資料庫的網路管理,你將不可避免地遇到如何與網路通訊、防火牆的技術兼容的問題。同理,你在做其它方面的工作,也肯定有方方面面的技術關聯問題需要解決。而且更要命的是,這些技術(包括Oracle本身)發展速度都非常快,這就使得跟上它們的發展成為一件十分費勁的事情。
不過幸運的是,我們並不需要同時了解Oracle的所有方面,Oracle提供了很多應用方向,我們可以按照偏好,選擇其中的一個方向,集中時間和精力,努力在這個方向做到有所成就還不是一件很難的事情。由於Oracle目前已是世界上最主要的資料庫供應商和第二大軟體公司,Oracle的資料庫技術已經被廣泛應用於各個領域,因而市場上對Oracle人才的需求量是相當之大,獲得OCP認證不愁找不到工作。而以後我們可以在工作中學以致用,再努力地鑽研Oracle資料庫及相關技術。
;⑵ 如何做好oracle資料庫表的初始化工作
創建表空間
create tablespace
stock datafile
'c:/oracle/proct/10.2.0/oradata/orcl/stock00' size 256M,
'c:/oracle/proct/10.2.0/oradata/orcl/stock01' size 256M
autoextend off
extent management local;
創建用戶
create user stock identified by stock
default tablespace stock
temporary tablespace temp;
給許可權
grant connect,resource,dba to stock;
⑶ 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位以下密碼,或者字典庫中的口令。
;⑷ oracle資料庫優化有哪些方法
你最好買一本專門講ORACLE性能優化的書,好好看看
1、調整資料庫伺服器的性能
Oracle資料庫伺服器是整個系統的核心,它的性能高低直接影響整個系統的性能,為了調整Oracle資料庫伺服器的性能,主要從以下幾個方面考慮:
1.1、調整操作系統以適合Oracle資料庫伺服器運行
Oracle資料庫伺服器很大程度上依賴於運行伺服器的操作系統,如果操作系統不能提供最好性能,那麼無論如何調整,Oracle資料庫伺服器也無法發揮其應有的性能。
1.1.1、為Oracle資料庫伺服器規劃系統資源
據已有計算機可用資源, 規劃分配給Oracle伺服器資源原則是:盡可能使Oracle伺服器使用資源最大化,特別在Client/Server中盡量讓伺服器上所有資源都來運行Oracle服務。
1.1.2、調整計算機系統中的內存配置
多數操作系統都用虛存來模擬計算機上更大的內存,它實際上是硬碟上的一定的磁碟空間。當實際的內存空間不能滿足應用軟體的要求時,操作系統就將用這部分的磁碟空間對內存中的信息進行頁面替換,這將引起大量的磁碟I/O操作,使整個伺服器的性能下降。為了避免過多地使用虛存,應加大計算機的內存。
1.1.3、為Oracle資料庫伺服器設置操作系統進程優先順序
不要在操作系統中調整Oracle進程的優先順序,因為在Oracle資料庫系統中,所有的後台和前台資料庫伺服器進程執行的是同等重要的工作,需要同等的優先順序。所以在安裝時,讓所有的資料庫伺服器進程都使用預設的優先順序運行。
1.2、調整內存分配
Oracle資料庫伺服器保留3個基本的內存高速緩存,分別對應3種不同類型的數據:庫高速緩存,字典高速緩存和緩沖區高速緩存。庫高速緩存和字典高速緩存一起構成共享池,共享池再加上緩沖區高速緩存便構成了系統全程區(SGA)。SGA是對資料庫數據進行快速訪問的一個系統全程區,若SGA本身需要頻繁地進行釋放、分配,則不能達到快速訪問數據的目的,因此應把SGA放在主存中,不要放在虛擬內存中。內存的調整主要是指調整組成SGA的內存結構的大小來提高系統性能,由於Oracle資料庫伺服器的內存結構需求與應用密切相關,所以內存結構的調整應在磁碟I/O調整之前進行。
1.2.1、庫緩沖區的調整
庫緩沖區中包含私用和共享SQL和PL/SQL區,通過比較庫緩沖區的命中率決定它的大小。要調整庫緩沖區,必須首先了解該庫緩沖區的活動情況,庫緩沖區的活動統計信息保留在動態性能表v$librarycache數據字典中,可通過查詢該表來了解其活動情況,以決定如何調整。
Select sum(pins),sum(reloads) from v$librarycache;
Pins列給出SQL語句,PL/SQL塊及被訪問對象定義的總次數;Reloads列給出SQL 和PL/SQL塊的隱式分析或對象定義重裝載時在庫程序緩沖區中發生的錯誤。如果sum(pins)/sum(reloads) ≈0,則庫緩沖區的命中率合適;若sum(pins)/sum(reloads)>1, 則需調整初始化參數 shared_pool_size來重新調整分配給共享池的內存量。
1.2.2、數據字典緩沖區的調整
數據字典緩沖區包含了有關資料庫的結構、用戶、實體信息。數據字典的命中率,對系統性能影響極大。數據字典緩沖區的使用情況記錄在動態性能表v$librarycache中,可通過查詢該表來了解其活動情況,以決定如何調整。
Select sum(gets),sum(getmisses) from v$rowcache;
Gets列是對相應項請求次數的統計;Getmisses 列是引起緩沖區出錯的數據的請求次數。對於頻繁訪問的數據字典緩沖區,sum(getmisses)/sum(gets)<10%~15%。若大於此百分數,則應考慮增加數據字典緩沖區的容量,即需調整初始化參數shared_pool_size來重新調整分配給共享池的內存量。
1.2.3、緩沖區高速緩存的調整
用戶進程所存取的所有數據都是經過緩沖區高速緩存來存取,所以該部分的命中率,對性能至關重要。緩沖區高速緩存的使用情況記錄在動態性能表v$sysstat中,可通過查詢該表來了解其活動情況,以決定如何調整。
Select name,value from v$sysstat where name in ('dbblock gets','consistent gets','physical reads');
dbblock gets和consistent gets的值是請求數據緩沖區中讀的總次數。physical reads的值是請求數據時引起從盤中讀文件的次數。從緩沖區高速緩存中讀的可能性的高低稱為緩沖區的命中率,計算公式:
Hit Ratio=1-(physical reds/(dbblock gets+consistent gets))
如果Hit Ratio<60%~70%,則應增大db_block_buffers的參數值。db_block_buffers可以調整分配給緩沖區高速緩存的內存量,即db_block_buffers可設置分配緩沖區高速緩存的數據塊的個數。緩沖區高速緩存的總位元組數=db_block_buffers的值*db_block_size的值。db_block_size 的值表示數據塊大小的位元組數,可查詢 v$parameter 表:
select name,value from v$parameter where name='db_block_size';
在修改了上述資料庫的初始化參數以後,必須先關閉資料庫,在重新啟動資料庫後才能使新的設置起作用。
⑸ oracle資料庫中對時間初始化的函數
對時間初始化?
取當前時間:
selectsysdatefromal;
截取到日期:
selecttrunc(sysdate)fromal;
用字元串轉換:
selectto_date('2016-11-2410:30:10','yyyy-mm-ddhh24:mi:ss')fromal;
selectto_date('20161124103010','yyyymmddhh24miss')fromal;
selectto_date('2016/11/2410:30:10','yyyy/mm/ddhh24:mi:ss')fromal;
selectto_date('20161124','yyyymmdd')fromal;
諸如此類
⑹ Oracle操作系統認證方式
Oracle操作系統認證方式
在Oracle資料庫系統中,用戶如果要以特權用戶身份(INTERNAL/SYSDBA/SYSOPER)登錄Oracle資料庫可以有兩種身份驗證的方法: 即使用與操作系統集成的身份驗證或使用Oracle資料庫的密碼文件進行身份驗證。因此,管理好密碼文件,對於控制授權用戶從遠端或本機登錄Oracle資料庫系統,執行資料庫管理工作,具有重要的意義。 Oracle資料庫的密碼文件存放有超級用戶INTERNAL/SYS的口令及其他特權用戶的用戶名/口令,它一般存放在ORACLE_HOMEDATABASE目錄下。
一、 密碼文件的創建:
在使用Oracle Instance Manager創建一資料庫實例的時侯,在ORACLE_HOMEDATABASE目錄下還自動創建了一個與之對應的密碼文件,文件名為PWDSID.ORA,其中SID代表相應的Oracle資料庫系統標識符。此密碼文件是進行初始資料庫管理工作的基礎。在此之後,管理員也可以根 據需要,使用工具ORAPWD.EXE手工創建密碼文件,命令格式如下: C: >ORAPWDFILE=< FILENAME >PASSWORD =< PASSWORD >ENTRIES=< MAX_USERS >
各命令參數的含義為:
FILENAME:密碼文件名;
PASSWORD:設置INTERNAL/SYS帳號的口令;
MAX_USERS:密碼文件中可以存放的最大用戶數,對應於允許以SYSDBA/SYSOPER許可權登錄資料庫的最大用戶數。由於在以後的維護中,若 用戶數超出了此限制,則需要重建密碼文件,所以此參數可以根據需要設置得大一些。有了密碼文件之後,需要設置初始化參數REMOTE_LOGIN_PASSWORDFILE來控制密碼文件的使用狀態。
二、 設置初始化參數REMOTE_LOGIN_PASSWORDFILE:
在Oracle資料庫實例的初始化參數文件中,此參數控制著密碼文件的使用及其狀態。它可以有以下幾個選項: NONE:指示Oracle系統不使用密碼文件,特權用戶的登錄通過操作系統進行身份驗證; EXCLUSIVE:指示只有一個資料庫實例可以使用此密碼文件。只有在此設置下的密碼文件可以包含有除INTERNAL/SYS以外的用戶信息,即允許將系統許可權SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶。 SHARED:指示可有多個資料庫實例可以使用此密碼文件。在此設置下只有INTERNAL/SYS帳號能被密碼文件識別,即使文件中存有其他用戶的信息,也不允許他們以SYSOPER/SYSDBA的許可權登錄。此設置為預設值。在REMOTE_LOGIN_PASSWORDFILE參數設置為EXCLUSIVE、SHARED情況下,Oracle系統搜索密碼文件的次序為: 在系統注冊庫中查找ORA_SID_PWFILE參數值(它為密碼文件的全路徑名); 若未找到,則查找ORA_PWFILE參數值;若仍未找到,則使用預設值ORACLE_HOMEDATABASEPWDSID.ORA;其中的SID代表相應的Oracle資料庫系統標識符。
三、 向密碼文件中增加、刪除用戶:
當初始化參數REMOTE_LOGIN_PASSWORDFILE設置為EXCLUSIVE時,系統允許除INTERNAL/SYS以外的其他用戶以管理員身份從遠端或本機登錄 到Oracle資料庫系統,執行資料庫管理工作;這些用戶名必須存在於密碼文件中,系統才能識別他們。由於不管是在創建資料庫實例時自動創建的密碼文件,還是使用工具ORAPWD.EXE手工創建的密碼文件,都只包含INTERNAL/SYS用戶的信息;為此,在實際操作中,可能需要向密碼文 件添加或刪除其他用戶帳號。
由於僅被授予SYSOPER/SYSDBA系統許可權的用戶才存在於密碼文件中,所以當向某一用戶授予或收回SYSOPER/SYSDBA系統許可權時,他們的 帳號也將相應地被加入到密碼文件或從密碼文件中刪除。由此,向密碼文件中增加或刪除某一用戶,實際上也就是對某一用戶授予或收回 SYSOPER/SYSDBA系統許可權。
要進行此項授權操作,需使用SYSDBA許可權(或INTERNAL帳號)連入資料庫,且初始化參數REMOTE_LOGIN_PASSWORDFILE的設置必須為 EXCLUSIVE。具體操作步驟如下:創建相應的密碼文件; 設置初始化參數REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE; 使用SYSDBA許可權登錄: CONNECTSYS/internal_user_passswordASSYSDBA; 啟動資料庫實例並打開資料庫; 創建相應用戶帳號,對其授權(包括SYSOPER和SYSDBA): 授予許可權:GRANTSYSDBATOuser_name; 收回許可權:REVOKESYSDBAFROMuser_name;現在這些用戶可以以管理員身份登錄資料庫系統了;
四、 使用密碼文件登錄:
有了密碼文件後,用戶就可以使用密碼文件以SYSOPER/SYSDBA許可權登錄Oracle資料庫實例了,注意初始化參數 REMOTE_LOGIN_PASSWORDFILE應設置為EXCLUSIVE或SHARED。任何用戶以SYSOPER/SYSDBA的許可權登錄後,將位於SYS用戶的Schema之下,以下為 兩個登錄的例子:
1. 以管理員身份登錄:
假設用戶scott已被授予SYSDBA許可權,則他可以使用以下命令登錄:
CONNECTscott/tigerASSYSDBA
2. 以INTERNAL身份登錄:
CONNECTINTERNAL/INTERNAL_PASSWORD
五、 密碼文件的維護:
1. 查看密碼文件中的成員:
可以通過查詢視圖V$PWFILE_USERS來獲取擁有SYSOPER/SYSDBA系統許可權的用戶的信息,表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用戶是否擁有相應的許可權。這些用戶也就是相應地存在於密碼文件中的成員。
2. 擴展密碼文件的用戶數量:
當向密碼文件添加的帳號數目超過創建密碼文件時所定的限制(即ORAPWD.EXE工具的MAX_USERS參數)時,為擴展密碼文件的用戶數限制,需重建密碼文件,具體步驟如下: a) 查詢視圖V$PWFILE_USERS,記錄下擁有SYSOPER/SYSDBA系統許可權的'用戶信息; b) 關閉資料庫; c) 刪除密碼文件; d) 用ORAPWD.EXE新建一密碼文件; e) 將步驟a中獲取的用戶添加到密碼文件中。
3. 修改密碼文件的狀態:
密碼文件的狀態信息存放於此文件中,當它被創建時,它的預設狀態為SHARED。可以通過改變初始化參數REMOTE_LOGIN_PASSWORDFILE的設置改變密碼文件的狀態。當啟動資料庫事例時,Oracle系統從初始化參數文件中讀取REMOTE_LOGIN_PASSWORDFILE參數的設置;當載入資料庫 時,系統將此參數與口令文件的狀態進行比較,如果不同,則更新密碼文件的狀態。若計劃允許從多台客戶機上啟動資料庫實例,由於各客戶機上必須有初始化參數文件,所以應確保各客戶機上的初始化參數文件的一致性,以避免意外地改變了密碼文件的狀態,造成資料庫登陸的失 敗。
4. 修改密碼文件的存儲位置:
密碼文件的存放位置可以根據需要進行移動,但作此修改後,應相應修改系統注冊庫有關指向密碼文件存放位置的參數或環境變數的設置
5. 刪除密碼文件:
在刪除密碼文件前,應確保當前運行的各資料庫實例的初始化參數REMOTE_LOGIN_PASSWORDFILE皆設置為NONE。在刪除密碼文件後,若想要以管理員身份連入資料庫的話,則必須使用操作系統驗證的方法進行登錄。
;⑺ oracle在創建資料庫實例後需要初始化嗎怎麼初始化啊
只能重新建立資料庫,並且建庫時,要選擇手工安裝資料庫。
⑻ oracle 就安裝了軟體,該怎麼建立資料庫
1、
下面要進行建庫,使用命令dbca
[oracle@redhat4 ~]$ dbca
-bash: dbca: command not found
顯示找不到命令
有dbca這個命令,但是找不到它,說明環境變數PATH設置有問題
設置環境變數PATH
[oracle@redhat4 ~]$ vi .bash_profile
在文件尾部加入下行
export PATH=$PATH:$ORACLE_HOME/bin:.
再重新登陸一下oracle用戶,使環境變數生效。
[root@redhat4 install]# su - oracle
運行dbca命令
----
2、
成功啟動 Database Configuration Assistant 資料庫配置助手開始建庫。
步驟1:操作
請選擇希望執行的操作:
這個頁面顯示了我們通過dbca可以執行的操作
這里我們選 創建資料庫
步驟2:選擇創建資料庫的模板
有一般用途、事務處理、定製資料庫、數據倉庫四種模板可供選擇。
四種模板參數和內容有區別,而安裝中的區別在後面的步驟9 資料庫內容 頁中的內容
一般用途 事務處理 數據倉庫 三種模板在步驟9顯示的是:
實例方案標簽頁,自己只能決定是否選擇實例方案組件
定製資料庫 模板在步驟9顯示的是:
資料庫組件標簽頁,可以自己選擇組件,但是無法選擇實例方案組件
這里我們選擇 一般用途 模板
步驟3: 資料庫標識
全局資料庫名:jiagulun SID:jiagulun
步驟4: 管理選項
決定使不使用Enterprise Manager
em用java編寫,用ie訪問 如果選擇了它我們可以使用基於ie的工具管理oracle
推薦生產中使用。
步驟5: 資料庫身份證明
oracle建立中,在資料庫內部默認會建很多用戶
在這里只是學習,給這些用戶設置相同的密碼,設為oracle。實際生產中可分別設置,並要保證密碼強度。
步驟6: 存儲選項
生產中ASM和裸設備使用非常多,而且ASM用的越來越多,
學習中我們使用文件系統。
步驟7: 資料庫文件所在位置
決定資料庫建在文件系統的那個目錄底下
這里是用 所有資料庫文件使用公共位置:{ORACLE_BASE}/oradata
這里可以自己選擇路徑,但自己要記住,方便以後使用。
步驟8: 恢復配置
指定快速恢復區 按默認即可
步驟9:選上示例方案
學習中需要使用的一些案例,實際生產中沒有用。
步驟10:初始化參數
oracle資料庫是非常吃內存的一個軟體,這里要設置oracle使用的內存大小
這些參數事後可以調整
但字元集以後最好不要再調了,這里設定後,就不要改變了,以後調可能會出現問題
資料庫字元集選:ZHS16GBK-GBK 16位簡體中文,建議選AL32UTF8,實際生產中這兩種用的最多。
國外有企業分支機構可以選AL32UTF8
國家字元集選:AL16UTF16
其它默認
步驟11:資料庫存儲
決定oracle資料庫的三類文件 控制文件、數據文件、重做日誌組 的 存儲位置
三類文件的內容,有什麼意義,放到存儲結構中講。
步驟12:創建選項
選 創建資料庫
點完成
最後的確認頁:
確認自己在各步驟做的選擇後,點 確定 開始創建資料庫。
創建資料庫完成後,Database Configuration Assistant 給出完成頁面。
顯示的是:
資料庫創建完成。詳細信息在:/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/dbca/jiagulun 上的日誌文件
資料庫參數文件名:/u01/app/oracle/proct/10.2.0/db_1/dbs/spfilejiagulun.ora
Database Control URL 為:http://redhat4:1158/em
這里還可以點擊 口令管理... 修改剛創建完成的oracle資料庫當前所有已有用戶的密碼。
退出 後
資料庫創建最終完成。
⑼ 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建立臨時段。當語句執行完畢,臨時段的區退回給系統。
;