一 Oracle體系結構結構java
數據庫的體系結構是指數據庫的組成,工做過程,以及數據庫中數據的組織與管理機制。sql
實例和數據庫是Oracle數據庫體系結構的核心組成部分數據庫
1實例:Oracle實例是後臺進程和內存結構的集合。必須啓動實例才能訪問數據中的數據。Oracle實例啓動時,將分配一個系統全局去(SGA),並啓動一系列Oracle後臺進程。一個實例只能打開並使用一個數據庫。bash
Oracle實例有兩種類型:單進程實例 服務器
:多進程實例session
2 數據庫: 數據庫是數據的集合,是指存儲數據庫信息的一組操做系統文件。oracle
二 Oracle存儲結構ide
物理結構:指構成數據的一組操做系統文件,(主要由3種類型文件組成)工具
1)數據文件:後綴.dbf,一個數據文件只屬於一個數據庫和表空間spa
2)重作日誌文件:後綴.log,記錄數據庫的全部更改 並提供恢復機制。成組出現,最少要兩組每組最少一個文件。
3)控制文件:後綴.ctl,保存數據文件和重作日誌文件位置、大小、日誌序號等信息。啓動數據庫所必需。至少兩份默認有三份控制文件。各個控制文件相同,能夠避免由於一個控制文件的損壞而致使沒法啓動數據庫。
上述三種文件缺一數據庫都不能啓動
4)其餘文件:參數文件、歸檔日誌文件、密碼文件等
邏輯結構:存放數據的邏輯容器,由大到小爲:數據庫-表空間-段-區-塊
表空間:數據都存儲在表空間中,默認有system、temp、undo、users、sysaux、example六個表空間。每一個數據庫中,都有一個名爲system的表空間,即系統表空間
段:存在於表空間中,由一組區組成,存儲具體的對象好比表、索引等
區:磁盤分配空間的最小單位
數據塊:能讀取或寫入的最小數據單位
模式:是一種特殊的對象集合,好比用戶模式是指用戶的全部對象的集合
三Oracle內存結構
內存結構是Oracle數據庫體系中最爲重要的一部分
內存結構:分爲系統全局區(SGA)、程序全局區(PGA)和用戶全局區(UGA)。
SGA:共享的內存,存儲數據庫信息(和數據庫無關)。佔有最大內存。分共享池、數據緩衝區、重作日誌緩衝區、大池、java池等
PGA:不是實例的一部分,用戶鏈接後分配的內存,包含服務器進程和後臺進程的數據和控制信息
四Oracle進程結構
由用戶進程、服務器進程、後臺進程組成
用戶進程:用戶鏈接服務器時啓動,好比啓動sqlplus時,運行客戶端
服務器進程:用戶鏈接成功並鏈接oracle實例時啓動,用戶進程的代理
後臺進程:實例啓動時啓動:有5個必須的後臺進程:進程監控(PMON)進程、系統監控(SMON)進程、數據寫入(DBWR)進程、日誌寫入(LGWR)進程、檢查點(CKPT)進程。
五 用戶管理:
sys用戶:超級用戶(oracle系統管理員),全部數據字典和視圖多存儲在sys模式中只能與sysoper和sysdba角色登錄,能夠啓動關閉數據庫
system用戶:默認管理員,存儲管理工具使用的內部表和視圖,能夠管理數據庫、用戶、權限等
scott:示例用戶
六數據庫權限:
分系統權限和對象權限
系統權限:執行系統級別的權限,好比鏈接數據庫,建立、修改、刪除表等權限。至關於數據定義語言(DDL)和數據控制語言(DCL)的權利。
用戶最少須要create session權限才能夠鏈接(登錄)數據庫,通常經過角色授予,主要角色有:
connet:擁有鏈接數據庫權限,包含create session權限
resource:擁有建立表等對象的權限,通常授予開發人員
dba:數據庫管理員,對數據庫有最高權限
對象權限:針對特定模式對象執行操做的權利。至關於數據操縱語言(DML)的權利。好比select、insert等
Oracle中的經常使用系統預約義角色
CONNECT:擁有鏈接數據庫的權限
RESOURCE:擁有建立表,觸發器,過程等權限
DBA:數據庫管理員角色,擁有管理數據庫的最高權限,一個具備DBA角色的用戶能夠撤銷任何別的用戶甚至別的DBA權限,這是很危險的,因此不要輕易授予該角色
Sqlplus方向鍵解決步驟
一:安裝readline
OS的安裝光盤裏提供了readline包.(已安裝的話,能夠忽略此步)
# RHEL 4
[root@oracle11g ~]# rpm -Uvh readline*
error: Failed dependencies: libtermcap-devel is needed by readline-devel-5.1-1.1.i386.rpm
[root@oracle11g ~]# rpm -Uvh libtermcap-devel-2.0.8-46.1.i386.rpm
[root@oracle11g ~]# rpm -Uvh readline*
package readline-5.1-1.1 is already installed
[root@oracle11g ~]# rpm -Uvh readline-devel-5.1-1.1.i386.rpm
# RHEL 5
[root@oracle11g ~]# rpm -ivh readline* libtermcap-devel*
二:安裝rlwrap
[root@oracle11g ~]# tar -zxvf rlwrap-0.30.tar.gz
[root@oracle11g ~]# cd rlwrap-0.30
[root@oracle11g rlwrap-0.30]# ./configure
[root@oracle11g rlwrap-0.30]# make
[root@oracle11g rlwrap-0.30]# make install
三:方便使用rlwrap
[root@oracle11g rlwrap-0.30]# vi /home/oracle/.bash_profile
添加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman' Linux下的SQL Plus 終於能夠像Windows下的那樣使用了。
首先由root用戶切換到Oracle用戶下
# su - oracle
建立表空間tbs_work
更改表空間大小
方法二:向表空間內添加數據文件,爲表空間添加一個新的數據文件
查詢系統全部的表空間名稱和文件位置
刪除表空間
建立用戶cyy,默認表空間爲tbs1_work,臨時表空間,配額50m,必須改密碼
查當前用戶所屬表空間,sys用戶能夠查dba_users裏全部用戶的表空間
授予用戶鏈接數據庫角色和建立表的系統權限
授予用戶有查看scott模式下的emp表的對象權限,用on ... to ...的方式
撤銷用戶權限
revoke update on scott.emp from cyy;
查看對象權限
查看用戶系統權限
查看用戶角色權限
查看當前用戶模式下的全部對象
查看當前用戶模式下的全部表