【Oracle入門系列】第02章_Oracle入門——v512工作室 編輯:玄玉
安裝Oracle |
Oracle服務 |
|
給我發郵件 |
卸載Oracle |
Oracle術語 |
v512工作室 |
Oracle基本工具 |
Oracle儲存結構 |
中科院新科海學校 |
安裝Oracle
概述:安裝Oracle9i(9.2企業版)。從安裝檔案software\Oracle9i_9.2\Disk1\setup.exe開始
步驟:01、Oracle Universal Installer:歡迎使用
Oracle Universal Installer:Oracle的通用安裝工具。它可以安裝或卸載全部或部分Oracle組件
02、Universal Installer:檔案定位
在源路徑中系統會自動監測當前安裝程式所需資源的路徑。在目標塊中設定工作主目錄和完整路徑
主目錄名使用系統約定的OraHome92即可,路徑可以設定儲存在其它分區中
在資料庫安裝的過程中,Oracle會自動在系統硬碟的program files中建立一個oracle檔案夾作為系統目錄
通常在實際應用中,為了保證資料的安全和運行效率,不建議將主目錄和系統目錄放在同一個磁碟分割上
03、Universal Installer:可用產品
Oracle9i Database 9.2.0.1.0安裝資料庫。此處選擇安裝資料庫,它已經包含了下面的兩部分組件
Oracle9i Management and Integration 9.2.2.1.0安裝管理和整合工具
Oracle9i Client 9.2.0.1.0安裝用戶端
04、Universal Installer:安裝類型
這裡選擇安裝企業版(2.86GB)。相對來說,它的規模更大,功能更強
05、Universal Installer:資料庫配置
這裡選擇安裝通用性配置
06、Universal Installer:Oracle Services for Microsoft Transaction Server
這裡預設即可。教程中安裝Oracle9i到此步時,顯示的是連接埠號碼:2030,教程中選擇預設
07、Universal Installer:資料庫標識
教程中將全域資料庫名設為ora9,系統標識符SID按照預設,即ora9
系統標識符SID是作業系統用來跟資料庫的一個執行個體打交道的時候,起到標識執行個體的作用
在真實的應用中,也可以在全域資料庫名的後面加上資料庫伺服器所在的網域名稱,比如北京:ora9.bj.china
這樣就使得在同一個域中,可以有多台資料庫伺服器,不同的域中也可以有同名的資料庫伺服器
也就是說全域資料庫名包括資料庫名和網域名稱兩部分。為了簡單起見,教程只設定了資料庫名
08、Universal Installer:資料庫檔案位置
這裡是設定資料庫檔案的位置。比如資料檔案、控制檔案、重做日誌等
教程中採用預設設定,即C:\oralce\ora92\oradata下。也可以設定在別的盤符
09、Universal Installer:資料庫字元集
這裡使用預設字元集,即跟作業系統的當前語言設定一致。教程中的是ZHS16GBK編碼
GBK編碼的字元集是一種可變程度的字元集,它裡面的每個字元可能佔一個到三個位元組
10、Universal Installer:摘要
到此處為止,還沒有真正的開始安裝。在確認安裝摘要所顯式的配置無誤後點擊安裝即可
11、Universal Installer:安裝
如果使用的是光碟片版的安裝程式,9.2版本一般是三張光碟片,安裝過程中會兩次提醒換盤
12、Universal Installer:組態工具
這時會彈出Database Configuration Assistant對話方塊,即資料庫配置助手視窗
在這裡需要設定兩個系統使用者SYS和SYSTEM的密碼,具體密碼由安裝者自行確定
在9i以前,系統會為二者提供預設密碼。從9i開始出於安全性考慮,安裝時必須顯式密碼,而不允許使用原來的預設值
設定完密碼之後,可以點擊確定,回到組態工具視窗
接著就彈出一個控制台視窗,名為C:\oralce\ora92\bin\agentctl.exe。此時系統還在配置和啟動其它工具。還需等待
13、Universal Installer:安裝結束
由於Oracle用到了Java的運行環境,它的一些工具實際是使用Swing開發的,所以需要解除相應的java阻止或apache阻止
14、至此便結束了伺服器的安裝,可以直接選擇“退出”
退出之後,系統自動彈出了一個OEM視窗:Oracle Enterprise Manager Console
這是Oracle的企業管理器控制台視窗。關掉OEM後,會發現還遺留了一個Oracle HTTP Server控制台視窗
這是Oracle內建的一個Web伺服器。它使用的是apache的HTTP Server。可以不用理會它,將它直接關掉即可
Oracle服務
概述:此時可以在服務中查看被安裝成服務項目的9個有關功能模組。可以通過運行services.msc開啟服務視窗
服務:OracleMTSRecoveryService、OracleOraHome92Agent、OracleOraHome92ClientCache、OracleOraHome92PagingServer
OracleOraHome92SNMPPeerEncapsulator、OracleOraHome92SNMPPeerMasterAgent
OracleOraHome92HTTPServer:通過網路,使用瀏覽器作為用戶端訪問資料庫。一般情況下,它用到的也不是很多
OracleOraHome92TNSListener:用於接收用戶端發過來的串連請求。用戶端串連伺服器時,伺服器端首先運行一個監聽器程式
OracleServiceORA9:ORA9是前面設定的資料庫執行個體名
用不到的服務在運行時會有一定的記憶體開銷,為避免消耗資源,在停止其服務之後,最好設為手動啟動
或者乾脆禁用它,反正以後也不打算再用到它們。對應日常應用中,通常只會用到後兩個服務,即Listener和ORA9服務
Oracle開銷比較大,若啟動最後面的三個服務,大約會增加200MB記憶體開銷。所以不用它的時候,建議不要啟動相關服務
補充:在開始→程式→中添加了兩項。一個是Oracle-OraHome92
一個是Oracle Installation Products,裡面提供了它的一個通用工具Universal Installer
卸載Oracle
概述:Oracle不能通過軟體自身的卸載工具進行完全卸載。也就是說還要進行比較麻煩的手工設定
如果Oracle資料庫不能正常卸載的話,接下來就不能再成功的安裝其它的版本
步驟:1、停止Oracle所有服務
2、運行Oracle Universal Installer卸載Oracle
在Universal Installer:歡迎使用視窗中點擊卸裝產品按鈕,在Inventory目錄中展開子項,選中所有組件
點擊刪除後,在確認對話方塊中點擊是即可。這裡也可以根據需要保留某些組件,而不卸載
卸載完成之後,會在Inventory目錄中顯示:沒有已安裝的產品。然後點退出即退出當前Oracle通用安裝工具
3、修改註冊表,刪除Oracle相關資訊
Oracle軟體有關鍵—值:HKEY_LOCAL_MACHINE\SOFTWARE\Oracle
Oracle服務:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001以及CurrentControlSet\Services\
Oracle事件記錄:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001以及CurrentControlSet\Services\Eventlog\Application\
4、刪除Oracle系統目錄
5、刪除Oracle環境變數
6、刪除程式功能表項目中的Oracle菜單
7、刪除Oracle工作主目錄D:\oracle
說明:如果資料庫在安裝過程中出錯了,那麼在服務可能看不到Oracle相關服務,此時可以跳過第1步
第2步的卸載過程也可能無法正常執行。比如說Oracle由於安裝出錯而中途退出之後
在程式功能表項目中就找不到Oracle通用安裝工具。此時可以跳過第2步,直接從第3步開始執行人工的卸載操作
若第2步成功執行,則第5和6步也會被自動執行。那麼就需要檢查一下環境變數和程式菜單是否乾淨就可以了
由於各個版本的資料庫的通用安裝工具都無法完全卸載Oracle,所以就需要通過修改註冊表的方式人工幹預
第3步需要刪除的是Services和Application裡面的所有以Oracle開頭的檔案夾
如果第7步提示無法刪除目錄的話,那麼就需要重啟系統,然後再刪除就行了
Oracle術語
概念:資料庫(Database):是磁碟上儲存的資料的集合。包括設定檔,資料檔案,記錄檔和控制檔案等
資料庫執行個體(Database Instance):運行在資料庫檔案上的一組Oracle進程/線程以及一個共用記憶體區
Oracle即時應用叢集(RAC,Real Application Clusters):Oracle並行伺服器架構/RAC架構
資料庫服務名(Database Service_Name):從oracle8i開始引入,用戶端與伺服器串連時建議指定資料庫服務名而不是執行個體名
網路服務名(Net Service Name):資料庫在用戶端的邏輯表示,包含資料庫服務名和網路地址兩方面資訊
監聽器(Monitor)
對象:表:關係型資料庫的二維表格
視圖:表的基礎上建立的抽象的表現形式,相當於虛擬表。從物理表中提取部分資訊組成視圖。但是不建議通過視圖操縱基表資訊
約束:表內部或表之間的關聯
索引:便於資料的查詢檢索方便
序列:可以認為是Oracle中的一個自動的順序號產生器
同義字:為資料庫物件定義的別名
預存程序:相當於沒有傳回值的函數,可以把一段操作指令整合在一起,它的參數可以由IN/OUT/IN OUT變向的實現結果的外送
函數:相當於過去常規意義上的函數,它有傳回值
觸發器:伺服器端準備好的事件處理代碼。發生相應的事件時,就會執行觸發器所約定好的代碼。相當於Java中的事件處理代碼
包:相當於命名空間,裡面可以定義預存程序、函數和觸發器等程式單元
安全:使用者:代表Oracle的一個授權,可以使用使用者資訊登入資料庫並進行授權的操作
方案:它是Oracle中的一個概念,相當於SQLServer中的資料庫Database。Oracle中每個使用者都自動對應一個與它同名的方案
即使用者的工作區,裡面可以儲存該使用者所擁有的資料庫物件。授權後可以跨方案,即對其它方案中的資料庫物件進行操作
許可權:使用者對資料庫中對象的使用和操作的權利
角色:一系列許可權的集合。通常會把常用的許可權組合,稱之為一個角色
配額:限定使用者儲存空間大小或增長方式。可以在資料庫管理工具中對配額、許可權或建立新使用者等進行管理
審計:對某些使用者的某些操作進行跟蹤、記錄或檢查。比如監控某使用者進行過哪些操作,其中成功或者失敗的操作各有那些等等
可以在會話的層面或者在每一條SQL指令的層面進行記錄,最終的審計結果就相當於安全監控的錄影一樣
釋一:Database Instance即運行中的資料庫。在與資料庫打交道的時候,都是與運行中的資料庫執行個體打交道,而非直接操縱資料庫
每一個資料庫一般都對應一個資料庫執行個體,二者通常是一對一的關係。資料庫執行個體可以由執行個體裝載和開啟
資料庫執行個體就是在Oracle安裝的過程中設定的SID,即系統標識的名字,通常就是作為資料庫的執行個體名
一般預設讓它與資料庫同名,實際上也可以改為不同的名字,但是沒有這個必要
釋二:RAC架構即採用多台伺服器實現Oracle並行伺服器的架構。可以理解為多台伺服器都安裝了Oracle,它們組成一個並行的結構
可以認為這是一個資料庫。它們可以共用資料檔案,即使這些資料檔案儲存在不同機器上,但它們仍屬於一個物理資料庫
這種情況下可以同時存在多個執行個體,甚至可能是分布式的運行在多台不同的機器上的多組Oracle進程/線程
它們可能有共用的記憶體區,也可能有各自獨立的記憶體空間,但是啟動並執行多組執行個體,最終操縱的是同一份底層的資料庫檔案
這種情況下就出現了資料庫和資料庫執行個體的一對多的關係
釋三:Database Service_Name對目前層面的應用沒有什麼影響。可以認為資料庫名,執行個體名,服務名等都可以取同樣的名字
對於可能出現同一個資料庫對應多個執行個體的並行伺服器架構而言,使用者完全不必在乎它有多少個執行個體
使用者不需要指定具體串連的是並行伺服器架構中的哪一個執行個體,而只需要指定它的資料庫服務名即可
如果某個執行個體down掉了,即一組機器上的Oracle進程/線程死掉了。系統會自動切換執行個體以實現執行個體間的負載平衡
當然也允許使用者指定串連到特定的執行個體,這時也需要指定執行個體名。事實上在應用開發中很少進行這種層面的應用
釋四:Monitor負責監聽指定的連接埠,如Oracle的1521連接埠。以遠程用戶端向當前資料庫伺服器發起串連請求為例
監聽器會通過它所監聽的連接埠接收遠程用戶端的串連請求,並把陸續接收到的SQL指令傳給資料庫伺服器
再由資料庫伺服器進行後續處理。它就相當於Java事件處理中的監聽器
Oracle儲存結構
實體儲存體結構
資料檔案(Data File):儲存使用者真正關心的資訊,如表、視圖、預存程序等等
重做記錄檔(Redo Log File):逐條記錄資料庫曾執行過的操作。當資料庫遭到破壞時,可以按照它記錄的操作恢複資料庫
Oracle的重做記錄檔至少有兩個,並採取交替的方式使用。比如說先使用第一個記錄檔
往裡面逐筆記錄每一次資料庫操作的事務指令。當它記滿之後,Oracle不會立即清除它的內容
Oracle會向第二個重做記錄檔中記錄操作指令。當第二個檔案記滿了,才會清除第一個檔案
然後接著使用第一個檔案。這樣就為重做資料庫提供了保障,即使得近期的操作能夠得到儲存
控制檔案(Control File):記錄關於當前資料庫資料檔案以及重做記錄檔的一些資訊。當資料庫執行個體在操縱資料檔案的時候
實際上它會先查控制檔案,查一下裡面給出的資料檔案或重做記錄檔的名字或儲存位置等系統資訊
邏輯儲存結構
資料表空間(Table Space):在向Oracle中寫入資料的時候,必須先建立資料表空間。資料檔案實際上是位於現有的資料表空間之中
首次安裝資料庫的時候,系統一定會自動建立一個叫做system的資料表空間,另外還可能有其它的使用者資料表空間
建立使用者時可以指定它使用的資料表空間。一個資料表空間只能屬於一個資料庫,但一個資料庫可以同時擁有多個資料表空間
段(Segment):位於資料表空間中,是資料表空間的一種組成元素。段以區為單位分配空間。資料庫中儲存的每一個對象,如表、視圖等等,就是一個段
區(Extent):對段進行分配空間時的組織分配磁碟空間的一個單位。在Oracle中,區的大小是1塊到2G。而每個資料區塊,大約是1MB到4MB個位元組
塊(Block):是區的組成單位,是Oracle進行資料讀寫的最小操作單位。作為使用者,不必關心它們之間的組成層次以及分配空間的管理等等
Oracle基本工具
OEM概述:是Oracle伺服器端的管理工具,相當於SQL Server中的企業管理器。它提供了整合式的系統管理控制台
提供管理和診斷以及調優資料庫的功能。可以遠端管理多個網路資料庫節點和服務。也可以管理並行伺服器
OEM開啟:程式→Oracle—OraHome92→Enterprise Manager Console→選擇獨立啟動→隨後便開啟了OEM視窗
展開功能表項目,選擇所安裝的資料庫ORA9,在快顯視窗中輸入口令,串連身份選擇SYSDBA,即管理員身份
OEM細舉:常式:即資料庫執行個體。通常是與資料庫一對一的關係,但在RAC架構中可能出現一對多的關係,執行個體名各不相同
方案:每個使用者都有自己的方案,或者說它的工作空間。相當於工作區的概念
安全性:可以進行使用者的建立和安全性管理授權等操作
SqlPlus:程式→Oracle—OraHome92→Application Development→SQL Plus→主機字串中輸入ora9,即資料服務名
iSqlplus:啟用OracleOraHome92HTTPServer服務的條件下,在IE中http://127.0.0.1/isqlplus串連標識符中輸入ora9
也可以是其它的機器使用它的用戶端瀏覽器軟體訪問原生Oracle伺服器,而用戶端不需要任何配置
SqlPlus WorkSheet:程式→Oracle—OraHome92→Application Development→SQLPlus Worksheet
選擇直接連接到資料庫,在服務中輸入資料庫服務名,即ora9,其實就是原生資料庫