當前位置:首頁 » 操作系統 » oracle條資料庫

oracle條資料庫

發布時間: 2022-07-12 08:26:22

Ⅰ Oracle資料庫是什麼

ORACLE是一種適用於大型、中型和微型計算機的關系資料庫管理系統,它使用sql(Structured guery language)作為它的資料庫語言。

SQL主要包括數據定義、數據操縱(包括查詢)和數據控制等三方面功能。SQL是一種非過程化程度很高的語言,用戶只需說明"干什麼"而無需具體說明"怎麼干"語言簡潔、使用方便功能強大,集聯機交互與嵌入於一體,能適應廣泛的使用環境。ORACLE資料庫由三種類型的文件組成:資料庫文件、日誌文件和控制文件。

數據字典是由ORACLE自動建立並更新的一組表,這些表中記錄用戶的姓名、描述表和視圖以及有關用戶許可權等的信息。數據字典是只讀的,只允許查詢。也就是說數據字典是一種資料庫資源,每個用戶都可以訪問數據字典,DBA可通過數據字典來監視ORACLERDBMS的使用,並幫助用戶完成其應用。ORACLE RDBMS本身也要利用資料庫字典來管理和控制整個資料庫。

提起資料庫,第一個想到的公司,一般都會是Oracle。該公司成立於1977年,最初是一家專門開發資料庫的公司。

Oracle在資料庫領域一直處於領先地位。1984年,首先將關系資料庫轉到了桌面計算機上。然後,Oracle的下一個版本,版本5,率先推出了分布式資料庫、客戶/伺服器結構等嶄新的概念。Oracle的版本6首創行鎖定模式以及對稱多處理計算機的支持……最新的Oracle8主要增加了對象技術,成為關系-對象資料庫系統。目前,ORACLE產品覆蓋了大、中、小型機等幾十種機型,Oracle資料庫成為世界上使用最廣泛的關系數據系統之一。

Ⅱ oracle 資料庫的優勢在哪

你好,由oracle公司開發的,面向internet計算的,支技關系對象型的,分布式的資料庫產品。是一個高度集的互聯網應用平台,為企業數據數據存儲提交高性能的數據管理系統。
Oracle資料庫的主要特點:
1、支持多用戶、大事務量的事務處理
2、數據安全性和完整性控制
3、支持分布式數據處理
4、可移植性
5、Oracle資料庫基於客戶端/伺服器技術

Ⅲ Oracle資料庫

希望這些內容能夠幫助他們提高的安全性。
一、 鎖定不用的帳戶。
在Oracle安裝的時候,會自動建立幾個默認的資料庫伺服器帳戶。當安裝完成後,系統會自動把某些帳戶鎖定或者設置為過期;但同時也會打開一些有用的帳戶,如SYS、SYSTEM、SYSMAN等等。如果安裝了資料庫實例,可能還會建立scott帳戶。為了的安全性考慮,我們最好能夠把一些不用的帳戶鎖定掉。一般來說,若是系統提供的帳戶,我們只需要保留SYS、SYSTEM、SYSMAN這三個用戶名即可,其他的系統自建的用戶名可以鎖定掉。
另外,在資料庫維護中,我們還會建立自己的管理員帳戶。如筆者在維護資料庫系統的時候,就不喜歡用系統提供的管理員帳戶。而是會先利用他們的帳戶登陸進去,然後建立自己喜歡的用戶名與密碼。所以,當資料庫系統理有你前任資料庫管理員留下來的用戶名而你又不想用的時候,請各位高抬貴手,及早把它鎖定掉。這可以提高資料庫的安全性。可惜的是,筆者有時候給客戶進行資料庫有償維護的時候,發現資料庫中有很多莫名其妙的管理員帳戶。問他們資料庫管理員這些帳戶有什麼用時,他們說是前任留下來的,他們也不知道。對於這些帳戶,筆者的建議是,盡快的把他們鎖定掉或者過期掉。不然的話,對於Oracle系統來說,是一顆定時炸彈。一旦爆炸,就會給這個資料庫帶來不可換回的損失。二、 實施口令管理。
這准確來說,不是筆者的建議,而是Oracle官方的建議。我在參加Oracle培訓的時候,他們的教授就跟我們說,應該將資料庫所提供的基本口令管理准則,如口令長度歷史紀錄、復雜性等等,應用於所有的用戶密碼中,並要求所有的管理員帳戶養成定期更改密碼的習慣。
依賴於密碼管理的資料庫系統來說,需要保證密碼在任何時候都是保密的。可是在實際工作中,密碼可能會泄露,如在輸入密碼的時候被人看到或者被人利用密碼竊取工具竊取到密碼等等。故為了更好的控制資料庫的安全,中通過概要文件來保障資料庫口令的安全。這可以說是的一個獨創的功能了。
具體的來說,Oracle在口令管理上,有如下規則。
1、口令歷史。這跟微軟操作系統中的口令歷史一致。主要是用來指定在一個時間間隔內用戶不能使用相同的密碼。我們可以利用CREATE語句創建一個用戶概要文件,雖然利用REUSE_TIME與REUSE_MAX參數指定間隔天數。TIME參數用來指定在多久後可以採用相同的密碼;而MAX參數則指定,在可以再次使用當前口令之前,用戶必須改變該口令的次數。
2、口令的期限。若一個密碼時間越長,其泄露的幾率越長。最理想的狀態是,每用過一次後,就修改一次密碼。但是,這顯然不怎麼容易實現。所以,我們需要根據一定的情況,設置一個密碼有效的最長期限。當這個期限過後,原來的密碼就失效,用戶必須重新修改密碼。我們可以利用CREATE語句為某一個用戶創建一個概要文件,然後利用LIFE?_TIME參數指定口令的最長有效時間。當然,也可以為到期的密碼指定延長期。當用戶的口令到期後,用戶第一次登陸資料庫的時候,用戶需要輸入延長期。在這個延長期內,用戶仍然可以使用原有的密碼,只是每次登錄資料庫,系統都會提醒用戶修改密碼,直到延長期結束。當延長期滿後,用戶必須更改原有的口令。否則的話,系統會一直提醒用戶更改密碼,而拒絕登陸系統。另外,口令的期限往往跟上面的口令歷史一起使用,從而把密碼的安全性提高到一個新的層次。
3、密碼的復雜性管理。我們都知道,純數字的密碼要比數字、字元混合的密碼好破解的多。故為了加強用戶名密碼的安全性,設置一定的復雜性密碼管理規則是必須的。系統中,提供了很多的密碼復雜性檢查。如可以規定密碼的最小長度;可以設置密碼不能與用戶名相同;可以規定密碼中必須包含字元、數字、標點符號等等;還可以設定密碼不能為簡單的單詞以及密碼的前面幾個字元不能夠相同等等。通過這些復雜性管理,可以最大程度的保障密碼的安全性。如此的話,若想要通過數字字典破解密碼的話,難度就會比較大。不過,密碼雖然復雜了,但是用戶最好不要隨便拿張紙記一下,這樣的話,密碼仍然容易泄露。最好把密碼記熟了,然後把紙撕掉或者燒掉,以確保密碼不會被泄露。
三、 帳戶自動鎖定。
我們在利用銀行卡帳戶的時候,當密碼輸入錯誤超過一定的次數時,這卡就會被鎖住。其實,在中,也可以實現這個目的。當某個管理員帳戶,或者普通的帳戶,其失敗的登陸次數超過了我們指定的次數時,伺服器就會自動鎖定那個用戶帳號。
一般來說,我們只需要給管理員帳戶設置自動鎖定策略即可。因為相對於普通用戶來說,由於其不怎麼熟悉操作,所以密碼輸入錯誤的幾率會比較高。若我們為他們設置密碼鎖定策略的話,那我們很大一部分工作就是給他們進行解鎖。所以,沒有特殊必要的話,不要給普通帳戶設置自動鎖定策略,或者說,至少要把這個密碼輸入錯誤次數設置的高一點。
另外,若是前台應用程序直接連接到資料庫的話,也會有用戶名與密碼。這個用戶名與密碼筆者建議是不要設置密碼鎖定策略,否則的話,我們維護起來會很麻煩。
四、 合理分配終端用戶的許可權。
終端用戶就是企業員工實際用的帳戶。針對普通員工的許可權控制,一般有兩種方式。一是通過前台的應用軟體來控制;二是通過資料庫的用戶許可權來實現。
如果我們是利用資料庫自身的許可權管理器來管理帳戶許可權的話,則我們需要考慮對終端用戶進行分組,然後為這些用戶組創建不同的角色。資料庫管理員可以先給每個角色賦予必要的許可權,然後再將這些角色賦予相應的用戶組。也就是說,我們不建議直接給用戶賦予相關的許可權,而是通過角色與組來管理資料庫的訪問許可權。在特殊的情況下,如某個許可權只有一個特定的帳戶具有時,則可以直接把許可權賦予這個帳戶。否則的話,我們不建議給用戶直接賦予許可權。

Ⅳ 資料庫oracle簡介

Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的 適應高吞吐量的資料庫解決方案。

ORACLE資料庫系統是美國ORACLE公司(甲骨文)提供的以分布式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S體系結構的資料庫之一。ORACLE資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完整的數據管理功能;作為一個關系資料庫,它是一個完備關系的產品;作為分布式資料庫它實現了分布式處理功能。

特點

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能輕松的實現數據倉庫的操作。

這是一個技術發展的趨勢,不在這里討論。

優點

■ 可用性強

■ 可擴展性強

■ 數據安全性強

■ 穩定性強

Ⅳ Oracle資料庫有什麼特點

oracle 優勢很多,大部分銀行保險電信大部分是用oracle處理的
優勢主要 有
1、處理速度快,非常快
2、安全級別高。支持快閃以及完美的恢復,即使硬體壞了 也可以恢復到故障發前的1s
3、幾台資料庫做集群資料庫,可以做到幾秒s以內故障轉移,而且數據物理完全一致,現在集群一直是最優秀的解決方案,對於銀行保險沒有其他太多的選項{數據不丟,快速切換,負載均衡}
4、網格控制,以及 數據倉庫方面 也非常強大
對了免費 以及 開源的 言論 都是錯誤的。。。oracle產品及服務都是付費的,而且價格不菲。比其他資料庫要貴,物有所值。oracle不是開源的。不過可以在redhat 或者其他開源操作系統上安裝。
mysql在sun沒被oracle收購是開源的,免費的,之後oracle公司打算 把mysql打造成不開源,收費模式的。

Ⅵ oracle資料庫和mysql資料庫的區別

Oracle資料庫與MySQL資料庫的區別是本文我們主要介紹的內容,希望能夠對您有所幫助。
1.組函數用法規則
mysql中組函數在select語句中可以隨意使用,但在oracle中如果查詢語句中有組函數,那其他列名必須是組函數處理過的,或者是group by子句中的列否則報錯
eg:
select name,count(money) from user;這個放在mysql中沒有問題在oracle中就有問題了。
2.自動增長的數據類型處理
MYSQL有自動增長的數據類型,插入記錄時不用操作此欄位,會自動獲得數據值。ORACLE沒有自動增長的數據類型,需要建立一個自動增長的序列號,插入記錄時要把序列號的下一個值賦於此欄位。
CREATE SEQUENCE序列號的名稱(最好是表名+序列號標記)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按欄位的長度來定,如果定義的自動增長的序列號NUMBER(6),最大值為999999
INSERT語句插入這個欄位值為:序列號的名稱.NEXTVAL
3.單引號的處理
MYSQL里可以用雙引號包起字元串,ORACLE里只可以用單引號包起字元串。在插入和修改字元串前必須做單引號的替換:把所有出現的一個單引號替換成兩個單引號。
4.翻頁的SQL語句的處理
MYSQL處理翻頁的SQL語句比較簡單,用LIMIT開始位置,記錄個數;PHP里還可以用SEEK定位到結果集的位置。ORACLE處理翻頁的SQL語句就比較繁瑣了。每個結果集只有一個ROWNUM欄位標明它的位置,並且只能用ROWNUM<100,不能用ROWNUM>80。
以下是經過分析後較好的兩種ORACLE翻頁SQL語句(ID是唯一關鍵字的欄位名):
語句一:
SELECT ID, [FIELD_NAME,...] FROM
TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID
FROM TABLE_NAME WHERE 條件1 ORDER BY 條件2) WHERE NUMROW > 80 AND NUMROW
< 100 ) ORDER BY 條件3;
語句二:
SELECT * FROM (( SELECT ROWNUM AS
NUMROW, c.* from (select [FIELD_NAME,...] FROM TABLE_NAME WHERE 條件1
ORDER BY 條件2) c) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY
條件3;
5.長字元串的處理
長字元串的處理ORACLE也有它特殊的地方。INSERT和UPDATE時最大可操作的字元串長度小於等於4000個單位元組,如果要插入更長的字元串,請考慮欄位用CLOB類型,方法借用ORACLE里自帶的DBMS_LOB程序包。插入修改記錄前一定要做進行非空和長度判斷,不能為空的欄位值和超出長度欄位值都應該提出警告,返回上次操作。
6.日期欄位的處理
MYSQL日期欄位分DATE和TIME兩種,ORACLE日期欄位只有DATE,包含年月日時分秒信息,用當前資料庫的系統時間為SYSDATE,精確到秒,或者用字元串轉換成日期型函數TO_DATE(『2001-08-01』,』YYYY-MM-DD』)年-月-日24小時:分鍾:秒的格式YYYY-MM-DD
HH24:MI:SS TO_DATE()還有很多種日期格式,可以參看ORACLE
DOC.日期型欄位轉換成字元串函數TO_CHAR(『2001-08-01』,』YYYY-MM-DD HH24:MI:SS』)
日期欄位的數學運算公式有很大的不同。MYSQL找到離當前時間7天用DATE_FIELD_NAME
> SUBDATE(NOW(),INTERVAL 7 DAY)ORACLE找到離當前時間7天用 DATE_FIELD_NAME
>SYSDATE - 7;
MYSQL中插入當前時間的幾個函數是:NOW()函數以`'YYYY-MM-DD
HH:MM:SS'返回當前的日期時間,可以直接存到DATETIME欄位中。CURDATE()以』YYYY-MM-DD』的格式返回今天的日期,可以直接存到DATE欄位中。CURTIME()以』HH:MM:SS』的格式返回當前的時間,可以直接存到TIME欄位中。例:insert
into tablename (fieldname) values (now())
而oracle中當前時間是sysdate
7.空字元的處理
MYSQL的非空欄位也有空的內容,ORACLE里定義了非空欄位就不容許有空的內容。按MYSQL的NOT NULL來定義ORACLE表結構,導數據的時候會產生錯誤。因此導數據時要對空字元進行判斷,如果為NULL或空字元,需要把它改成一個空格的字元串。
8.字元串的模糊比較
MYSQL里用欄位名like%『字元串%』,ORACLE里也可以用欄位名like%『字元串%』但這種方法不能使用索引,速度不快,用字元串比較函數instr(欄位名,『字元串』)>0會得到更精確的查找結果。
9.程序和函數里,操作資料庫的工作完成後請注意結果集和指針的釋放。
=======================================================================================

1. Oracle是大型資料庫而Mysql是中小型資料庫,Oracle市場佔有率達40%,Mysql只有20%左右,同時Mysql是開源的而Oracle價格非常高。
2. Oracle支持大並發,大訪問量,是OLTP最好的工具。
3. 安裝所用的空間差別也是很大的,Mysql安裝完後才152M而Oracle有3G左右,且使用的時候Oracle佔用特別大的內存空間和其他機器性能。
4.Oracle也Mysql操作上的區別
①主鍵

Mysql一般使用自動增長類型,在創建表時只要指定表的主鍵為auto increment,插入記錄時,不需要再指定該記錄的主鍵值,Mysql將自動增長;Oracle沒有自動增長類型,主
鍵一般使用的序列,插入記錄時將序列號的下一個值付給該欄位即可;只是ORM框架是只要是native主鍵生成策略即可。
②單引號的處理
MYSQL里可以用雙引號包起字元串,ORACLE里只可以用單引號包起字元串。在插入和修改字元串前必須做單引號的替換:把所有出現的一個單引號替換成兩個單引號。
③翻頁的SQL語句的處理
MYSQL處理翻頁的SQL語句比較簡單,用LIMIT 開始位置, 記錄個數;ORACLE處理翻頁的SQL語句就比較繁瑣了。每個結果集只有一個ROWNUM欄位標明它的位置, 並且只能用
ROWNUM<100, 不能用ROWNUM>80
④ 長字元串的處理
長字元串的處理ORACLE也有它特殊的地方。INSERT和UPDATE時最大可操作的字元串長度小於等於4000個單位元組, 如果要插入更長的字元串, 請考慮欄位用CLOB類型,方法借用
ORACLE里自帶的DBMS_LOB程序包。插入修改記錄前一定要做進行非空和長度判斷,不能為空的欄位值和超出長度欄位值都應該提出警告,返回上次操作。
⑤空字元的處理
MYSQL的非空欄位也有空的內容,ORACLE里定義了非空欄位就不容許有空的內容。按MYSQL的NOT NULL來定義ORACLE表結構, 導數據的時候會產生錯誤。因此導數據時要對空字元
進行判斷,如果為NULL或空字元,需要把它改成一個空格的字元串。
⑥字元串的模糊比較
MYSQL里用 欄位名 like '%字元串%',ORACLE里也可以用 欄位名 like '%字元串%' 但這種方法不能使用索引, 速度不快。
⑦Oracle實現了ANSII SQL中大部分功能,如,事務的隔離級別、傳播特性等而Mysql在這方面還是比較的弱。

Ⅶ Oracle資料庫是什麼

ORACLE是一種適用於大型、中型和微型計算機的關系資料庫管理系統,它使用SQL(Structured guery language)作為它的資料庫語言。

SQL主要包括數據定義、數據操縱(包括查詢)和數據控制等三方面功能。SQL是一種非過程化程度很高的語言,用戶只需說明"干什麼"而無需具體說明"怎麼干"語言簡潔、使用方便功能強大,集聯機交互與嵌入於一體,能適應廣泛的使用環境。ORACLE資料庫由三種類型的文件組成:資料庫文件、日誌文件和控制文件。

數據字典是由ORACLE自動建立並更新的一組表,這些表中記錄用戶的姓名、描述表和視圖以及有關用戶許可權等的信息。數據字典是只讀的,只允許查詢。也就是說數據字典是一種資料庫資源,每個用戶都可以訪問數據字典,DBA可通過數據字典來監視ORACLERDBMS的使用,並幫助用戶完成其應用。ORACLE RDBMS本身也要利用資料庫字典來管理和控制整個資料庫。

提起資料庫,第一個想到的公司,一般都會是Oracle。該公司成立於1977年,最初是一家專門開發資料庫的公司。

Oracle在資料庫領域一直處於領先地位。1984年,首先將關系資料庫轉到了桌面計算機上。然後,Oracle的下一個版本,版本5,率先推出了分布式資料庫、客戶/伺服器結構等嶄新的概念。Oracle的版本6首創行鎖定模式以及對稱多處理計算機的支持……最新的Oracle8主要增加了對象技術,成為關系-對象資料庫系統。目前,ORACLE產品覆蓋了大、中、小型機等幾十種機型,Oracle資料庫成為世界上使用最廣泛的關系數據系統之一。

Ⅷ 1.1 什麼是Oracle資料庫

在這里我必須插幾句,說說我對拉里•埃里森的崇拜之情。我曾經崇拜過喬布斯,不過那是我對80年代發明蘋果電腦的喬布斯的崇拜,也許iPhone是喬布斯人生輝煌的頂點,但是我只崇拜發明了那台綠色字元的小電腦的喬布斯;我也曾崇拜比爾•蓋茨,不過那是我對DOS 3.0的崇拜。但自從聽說了拉里用錘子為辦公室開辟網線通道的故事(不管這個故事是不是真實的),我就開始崇拜他了。用聖跡來命名一家公司和一個產品,這不是我們這種凡夫俗子能夠做到的。Oracle也確實像聖跡一樣,深深地影響著全世界。 Oracle RDBMS是一款十分優秀的關系型資料庫產品,Oracle從頭到尾都是一個RDBMS,是針對OLTP系統進行設計的,這一點從它底層的塊結構就可以看出。Oracle在大並發量和海量數據關系型檢索方面具有十分優越的性能,但是它並不擅長OLAP,因為它不支持列壓縮存儲(當然,從exadata開始,Oracle也能夠支持混合列壓縮,這是一種行存儲和列壓縮的混合模式,目前只在exadata資料庫一體機上實現)。與其他關系型資料庫相比,Oracle在某些方面更為優秀,但也有其不足的地方,因此它絕對不是萬能的。優勢和劣勢都是與生俱來的,這是由Oracle資料庫的基本架構和數據存儲的基礎結構所決定的,優化只能解決局部性的問題,有限度地提升其性能,但是絕對無法完全掩蓋結構性問題帶來的負面影響。Oracle的優勢在於大並發量下的高吞吐能力,因此很適合大型企業級應用。但是如果我們在一個並發量和數據量都不是很大的系統中,對Oracle和MS SQL Server進行比較,就不難發現Oracle並沒有多大的優勢,甚至在某些方面還不如後者。 再往更為本質的方面去探討,Oracle是一個RDBMS系統,也是一款應用軟體。Oracle資料庫除了將數據存儲於文件中外,還通過一個被稱為實例的後台機制向外提供服務,這兩部分我們將在隨後的兩節中詳細介紹,這里不做過多的描述。我們在這里僅僅討論作為應用程序的Oracle RDBMS系統,它必須依賴於某個操作系統或硬體體系。和我們自己編寫的程序一樣,Oracle必須適應於某個操作系統,並充分利用操作系統提供的資源,反過來,操作系統也必須能夠將資源提供給Oracle資料庫使用。在一個僅僅運行Oracle RDBMS的系統上,操作系統應該被調整為能夠將絕大多數的資源都提供給Oracle資料庫。這樣,Oracle的進程就能夠最大可能地得到足夠的系統資源。 討論這個似乎又有點跑題了,其實不然,只有充分了解Oracle的本質,我們才不會神化Oracle。Oracle的本質就是一款軟體、一個程序,那麼它就具備程序的一切特徵,包括可能出現的bug。 但是Oracle不是一個簡單的程序,而是十分復雜的體系。首先,Oracle需要將數據存儲在數據文件中,為了能夠支持大量的並發用戶訪問資料庫,並且提高資料庫的訪問性能,Oracle需要引入共享內存,從而實現資源的共享。比如,針對SQL引擎,每個SQL最終將會被解析為一系列的執行步驟,這就是我們常說的執行計劃。如果同一個SQL執行多次,每次都要重新生成執行計劃,那麼效率就比較低下了,Oracle引入了共享池來實現這方面的共享。同樣,如果一個數據塊每次讀取都要訪問文件,那麼效率就不高了,於是Oracle引入了DB Cache來緩存這些數據。同一個數據塊可能被多個用戶修改,如果每次修改就要直接存檔,那麼效率也會降低,於是Oracle設計了DBWR進程,來專門負責將數據塊寫入文件。這似乎很復雜,不過這一切對於架構師來說很好理解。架構設計的目的就是有效地將功能劃分成不同的組成部分,然後讓這些部分能夠很好地協同工作,從而達到最好的效果,因此架構師很容易做出類似的設計。 實際上,作為一個應用程序的Oracle,它的實現原理是十分朴實的,並不像我們想像的那麼神秘。前幾天我碰到一個案例,有個客戶的Oracle 9.2.0.6資料庫突然出現了故障,sqlplus通過sysdba能夠登錄,並且能夠訪問一些系統視圖,比如v$session,但如果使用普通用戶登錄就會被掛起。通過HANGANALYZE工具分析,沒有發現任何異常。然而,在檢查Oracle後台進程的時候,我們發現所有的Oracle後台進程和絕大多數前台進程都消失了。客戶很是不解,為什麼會這樣呢?檢查日誌,沒有發現任何異常。於是我們使用shutdown abort關閉了實例,並且進行了重啟。我們都覺得沒有日誌,很難分析,也就沒有深入研究。 第二天,客戶又找到了我,說資料庫又出現了昨天的情況,這回所有的Oracle進程,包括前台進程、後台進程,統統沒有了,而且沒有任何的日誌產生。我考慮了半天,突然有所感悟,Oracle的實例實際上也是一款應用軟體,由多個進程組成,任何一個進程發現系統存在異常,都會第一時間記錄日誌,如果問題十分嚴重,就會關閉實例。我們可以使用sysdba賬號登錄系統,並且能夠在HANGANALYZE工具中看到會話的信息,說明Oracle的共享內存還存在,只是所有的進程都沒有了。這種情況只有一種可能,就是所有的Oracle後台進程都是在同一個時間點被終止的,而且不是程序自己退出的(因為程序自己退出,應該有機會完成自己的退出業務邏輯,比如寫日誌記錄故障),而是被外力強行終止的。 從上面的分析,很自然就能聯想到Oracle的後台進程很可能是被人為殺掉了。於是我做了一個實驗,發現如果殺掉所有的後台進程,Oracle的共享內存還是存在的,並且能夠通過sysdba賬號訪問,普通用戶登錄由於缺乏後台進程的支持,會被掛起。這個現象和客戶目前碰到的問題十分相似。 發現這個問題的真相只有一個渠道,就是從應用程序本質上去考慮,這樣才能得出所有的後台進程都是在同一時間被終止的結論,並找出其原因。只有外部力量的介入,才有可能出現所有後台進程全部終止,而共享內存還保持正常的現象,這絕對不是某個bug能產生的結果。排除了bug的影響,我們才能把主要精力集中在正確的方向上。 到這里,對於這個案例的分析就接近尾聲了,本節並沒有很深入地介紹什麼是Oracle,而是更加直接地介紹了Oracle的本質。Oracle在本質上就是一組應用軟體,它也具備所有應用軟體所具備的特徵。了解這一點,是我們今後解決任何問題的基礎。任何看似妖異的現象,都離不開Oracle作為應用軟體的本質,都無法違背應用軟體所遵循的規律。 作為應用程序的Oracle,必須依賴於其運行的系統環境,Oracle資料庫的處理能力和性能也依賴於主機硬體、存儲、網路和操作系統等因素,因此作為DBA不能僅僅就Oracle而論Oracle,還必須熟悉Oracle運行所依賴的環境。作為應用程序的Oracle,會和操作系統中的其他進程競爭有限的系統資源,因此,在資料庫伺服器上做一些比較大的操作時,一定要謹慎,因為這些操作可能會使Oracle資料庫出現問題。 Oracle不僅是特殊的應用程序,更是龐大的資料庫管理系統,它包含了一個RDBMS管理系統和其他一系列應用程序。Oracle的核心RDBMS管理系統包含在$ORACLE_HOME/bin/oracle映像、$ORACLE_HOME/lib/libclntsh.so等中,而sqlplus、exp等則是一些Oracle資料庫的工具。tnslsnr是Oracle的網路連接部件,用於連接客戶端到RDBMS。這些應用程序都被安裝在ORACLE HOME目錄下。 通過上述應用程序,RDBMS管理系統及其工具,用戶就可以創建、管理資料庫。另外,用戶還可以通過sqlplus工具,使用create database命令去創建一個資料庫,也可以使用startup和shutdown命令去啟動和關閉資料庫。 資料庫是獨立的,從物理結構上看,它是由一系列文件組成的,包括參數文件、口令文件、控制文件、數據文件、日誌文件等。一套完整的資料庫,只要其所有的文件都是完整的,那麼即使資料庫的RDBMS管理系統遭到破壞,只要重新安裝和資料庫版本一致的RDBMS管理系統,該資料庫就可以重新啟用。其實所謂重新啟用,本質上就是可以在某個實例中打開這個資料庫,供客戶使用。 另外需要注意的是,Oracle資料庫是一個RDBMS管理系統,其本質是關系型資料庫。關系型資料庫是十分適合OLTP應用的,因為它存儲的是一系列的關系,各種關系以表的形式被存儲起來。比如,春節前鐵路網上售票系統崩潰,有人分析這是由於鐵路系統固步自封,沒有使用國外某大廠商的產品,而選用了通用RDBMS資料庫產品所導致的性能問題,如果選用了某國際知名廠商的網狀資料庫,就不會有問題了。這個說法看似有理,實際上,如果足夠了解RDBMS,就知道其不值一駁了,因為鐵路售票系統是十分典型的OLTP應用。 另外,由於Oracle是行存儲的RDBMS資料庫,這一特點也使其十分適合OLTP應用。從Oracle資料庫的內部數據結構可以看出,Oracle在行存儲數據方面下足了功夫,甚至連行鎖都是設置在行頭中的。在行鎖的性能方面,Oracle的表現極為優秀,這一點毋庸置疑。不過這種設計,可能不適合一些經常以列為訪問對象的OLAP系統,列壓縮技術才是實現這類應用的最佳解決方案。

Ⅸ 什麼是oracle資料庫

Oracle資料庫:

驅動程序包名:ojdbc14.jar

驅動類的名字:oracle.jdbc.driver.OracleDriver

JDBC URL:jdbc:oracle:thin:@dbip:port:databasename

說明:驅動程序包名有可能會變

JDBC URL中黑色字體部分必須原封不動的保留,為該驅動識別的URL格式。紅色字體部分需要根據資料庫的安裝情況填寫。其中各個部分含義如下:

dbip –為資料庫伺服器的IP地址,如果是本地可寫:localhost或127.0.0.1。

port –為資料庫的監聽埠,需要看安裝時的配置,預設為1521。

databasename –為資料庫的SID,通常為全局資料庫的名字。

舉例如果要訪問本地的資料庫allandb,埠1521,那麼URL寫法如下:

jdbc:oracle:thin:@localhost:1521:allandb 下載地址如下:

http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

熱點內容
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:170
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:778
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:100
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:208
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513
蘋果手機清理瀏覽器緩存怎麼清理緩存 發布:2024-09-08 06:31:32 瀏覽:554
雲伺服器的優點與缺點 發布:2024-09-08 06:30:34 瀏覽:734