Oracle中數據庫實例、表空間、用戶、模式的概念及關係

數據庫實例

  用Oracle官方描述:實例是訪問Oracle數據庫所需的一部分計算機內存和輔助處理後臺進程,是由進程和這些進程所使用的內存(SGA)所構成一個集合。sql

  咱們訪問Oracle都是訪問一個實例,但這個實例若是關聯了數據庫文件,就是能夠訪問的,若是沒有,就會獲得實例不可用的錯誤。數據庫

  實例名指的是用於響應某個數據庫操做的數據庫管理系統的名稱。她同時也叫SID。實例名是由參數instance_name決定的。查詢當前數據庫實例名:oracle

select instance_name from v$instance;

  數據庫實例名(instance_name)用於對外部鏈接。在操做系統中要取得與數據庫的聯繫,必須使用數據庫實例名。好比咱們作開發,要鏈接數據庫,就得鏈接數據庫實例名:
性能

jdbc:oracle:thin:@localhost :1521:orcl(orcl就爲數據庫實例名)spa

  一個數據庫能夠有多個實例,在做數據庫服務集羣的時候能夠用到。操作系統


數據文件:(待續)


表空間:

   一個數據庫由多個表空間組成,一個表空間只能屬於一個數據庫。.net

   一個表空間能夠包含一個或多個數據文件,一個數據文件只能屬於一個表空間code

  Oracle數據庫是經過表空間來存儲物理表的,一個數據庫實例能夠有N個表空間,一個表空間下能夠有N張表。有了數據庫,就能夠建立表空間。orm

  建立表空間語法: 對象

  1. create tablespace db_test  
    datafile 'D:/oracle/product/10.2.0/userdata/db_test.dbf'  
    size 50m   --表空間初始大小
    autoextend on;  

  查看已經建立好的表空間:  

  1. select default_tablespace, temporary_tablespace, d.username  
    from dba_users d  

  表空間的做用:1.決定數據庫實體的空間分配;2.設置數據庫用戶的空間份額;3.控制數據庫部分數據的可用性;4.分佈數據於不一樣的設備之間以改善性能;5.備份和恢復數據。


用戶:

  Oracle數據庫建好後,要想在數據庫裏建表,必須先爲數據庫創建用戶,爲用戶指定表空間,併爲用戶授予權限。

       建立用戶:

CREATE USER utest  
IDENTIFIED BY utestpwd  
DEFAULT TABLESPACE db_test  
TEMPORARY TABLESPACE temp;  

 有了用戶,要想使用用戶帳號管理本身的表空間,還得給它分權限:

GRANT CONNECT TO utest;  
GRANT RESOURCE TO utest;  
GRANT dba TO utest;--dba爲最高級權限,能夠建立數據庫,表等。  

  查看數據庫用戶:

select  * from dba_users;


schema:

  schema是一個邏輯概念,是一個集合,但schema並非一個對象,oracle也並無提供建立schema的語法。

     在oracle中,一個用戶就對應一個schema,該用戶的schema名等於用戶名,並做爲該用戶缺省schema,用戶是不能建立schema的,schema在建立用戶的時候建立,並能夠指定用戶的各類表空間(這點與PostgreSQL是不一樣,PostgreSQL是能夠建立schema並指派給某個用戶)。當前鏈接到數據庫上的用戶建立的全部數據庫對象默認都屬於這個schema(即在不指明schema的狀況下)

相關文章
相關標籤/搜索