用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
建立表空間語法: 對象
create tablespace db_test
datafile 'D:/oracle/product/10.2.0/userdata/db_test.dbf'
size 50m --表空間初始大小
autoextend on;
查看已經建立好的表空間:
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並非一個對象,oracle也並無提供建立schema的語法。
在oracle中,一個用戶就對應一個schema,該用戶的schema名等於用戶名,並做爲該用戶缺省schema,用戶是不能建立schema的,schema在建立用戶的時候建立,並能夠指定用戶的各類表空間(這點與PostgreSQL是不一樣,PostgreSQL是能夠建立schema並指派給某個用戶)。當前鏈接到數據庫上的用戶建立的全部數據庫對象默認都屬於這個schema(即在不指明schema的狀況下)