完整的Oracle數據庫一般由兩部分組成:Oracle數據庫和數據庫實例。 1) 數據庫是一系列物理文件的集合(數據文件,控制文件,聯機日誌,參數文件等); 2) Oracle數據庫實例則是一組Oracle後臺進程/線程以及在服務器分配的共享內存區。html
在啓動Oracle數據庫服務器時,其實是在服務器的內存中建立一個Oracle實例(即在服務器內存中分配共享內存並建立相關的後臺內存),而後由這個Oracle數據庫實例來訪問和控制磁盤中的數據文件。Oracle有一個很大的內存快,成爲全局區(SGA)。數據庫
1、數據庫、表空間、數據文件服務器
一、數據庫oracle
數據庫是數據集合。Oracle是一種數據庫管理系統,是一種關係型的數據庫管理系統。 一般狀況了咱們稱的「數據庫」,並不只指物理的數據集合,他包含物理數據、數據庫管理系統。也即物理數據、內存、操做系統進程的組合體。
咱們在安裝Oracle數據庫時,會讓咱們選擇安裝啓動數據庫(即默認的全局數據庫)以下圖:spa
全局數據庫名:就是一個數據庫的標識,在安裝時就要想好,之後通常不修改,修改起來也麻煩,由於數據庫一旦安裝,數據庫名就寫進了控制文件,數據庫表,不少地方都會用到這個數據庫名。
啓動數據庫:也叫全局數據庫,是數據庫系統的入口,它會內置一些高級權限的用戶如SYS,SYSTEM等。咱們用這些高級權限帳號登錄就能夠在數據庫實例中建立表空間,用戶,表了。
查詢當前數據庫名:操作系統
select name from v$database;
二、數據庫實例線程
用Oracle官方描述:實例是訪問Oracle數據庫所需的一部分計算機內存和輔助處理後臺進程,是由進程和這些進程所使用的內存(SGA)所構成一個集合。
其實就是用來訪問和使用數據庫的一塊進程,它只存在於內存中。就像Java中new出來的實例對象同樣。
咱們訪問Oracle都是訪問一個實例,但這個實例若是關聯了數據庫文件,就是能夠訪問的,若是沒有,就會獲得實例不可用的錯誤。
實例名指的是用於響應某個數據庫操做的數據庫管理系統的名稱。她同時也叫SID。實例名是由參數instance_name決定的。
查詢當前數據庫實例名:日誌
select instance_name from v$instance;
數據庫實例名(instance_name)用於對外部鏈接。在操做系統中要取得與數據庫的聯繫,必須使用數據庫實例名。好比咱們做開發,要鏈接數據庫,就得鏈接數據庫實例名:code
jdbc:oracle:thin:@localhost:1521:orcl(orcl就爲數據庫實例名)
一個數據庫能夠有多個實例,在做數據庫服務集羣的時候能夠用到。htm
三、表空間
Oracle數據庫是經過表空間來存儲物理表的,一個數據庫實例能夠有N個表空間,一個表空間下能夠有N張表。
有了數據庫,就能夠建立表空間。
表空間(tablespace)是數據庫的邏輯劃分,每一個數據庫至少有一個表空間(稱做SYSTEM表空間)。爲了便於管理和提升運行效率,可使用一些附加表空間來劃分用戶和應用程序。例如:USER表空間供通常用戶使用,RBS表空間供回滾段使用。一個表空間只能屬於一個數據庫。
建立表空間語法:
Create TableSpace 表空間名稱 DataFile 表空間數據文件路徑 Size 表空間初始大小 Autoextend on
如:
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
四、用戶
Oracle數據庫建好後,要想在數據庫裏建表,必須先爲數據庫創建用戶,併爲用戶指定表空間。
上面咱們建好了數據庫和表空間,接下來建用戶:
建立新用戶:
CREATE USER 用戶名 IDENTIFIED BY 密碼 DEFAULT TABLESPACE 表空間(默認USERS) TEMPORARY TABLESPACE 臨時表空間(默認TEMP)
如:
CREATE USER utest IDENTIFIED BY utestpwd DEFAULT TABLESPACE db_test TEMPORARY TABLESPACE temp;(這裏臨時表空間不能使用咱們建立的db_test,不知爲什麼?)
有了用戶,要想使用用戶帳號管理本身的表空間,還得給它分權限:
GRANT CONNECT TO utest; GRANT RESOURCE TO utest; GRANT dba TO utest;--dba爲最高級權限,能夠建立數據庫,表等。
查看數據庫用戶:
select * from dba_users;
五、表
有了數據庫,表空間和用戶,就能夠用自定義的用戶在本身的表空間建立表了。有了表,咱們能夠開發了。
轉自:http://www.javashuo.com/article/p-qujpxxpt-hu.html
補充: