完整的Oracle數(shù)據(jù)庫通常由兩部分組成:Oracle數(shù)據(jù)庫和數(shù)據(jù)庫實例。
1) 數(shù)據(jù)庫是一系列物理文件的集合(數(shù)據(jù)文件,控制文件,聯(lián)機日志,參數(shù)文件等);
2) Oracle數(shù)據(jù)庫實例則是一組Oracle后臺進程/線程以及在服務(wù)器分配的共享內(nèi)存區(qū)。
在啟動Oracle數(shù)據(jù)庫服務(wù)器時,實際上是在服務(wù)器的內(nèi)存中創(chuàng)建一個Oracle實例(即在服務(wù)器內(nèi)存中分配共享內(nèi)存并創(chuàng)建相關(guān)的后臺內(nèi)存),然后由這個Oracle數(shù)據(jù)庫實例來訪問和控制磁盤中的數(shù)據(jù)文件。Oracle有一個很大的內(nèi)存快,成為全局區(qū)(SGA)。
一、數(shù)據(jù)庫、表空間、數(shù)據(jù)文件
1、數(shù)據(jù)庫
數(shù)據(jù)庫是數(shù)據(jù)集合。Oracle是一種數(shù)據(jù)庫管理系統(tǒng),是一種關(guān)系型的數(shù)據(jù)庫管理系統(tǒng)。
通常情況了我們稱的“數(shù)據(jù)庫”,并不僅指物理的數(shù)據(jù)集合,他包含物理數(shù)據(jù)、數(shù)據(jù)庫管理系統(tǒng)。也即物理數(shù)據(jù)、內(nèi)存、操作系統(tǒng)進程的組合體。
我們在安裝Oracle數(shù)據(jù)庫時,會讓我們選擇安裝啟動數(shù)據(jù)庫(即默認的全局數(shù)據(jù)庫)如下圖:
全局數(shù)據(jù)庫名:就是一個數(shù)據(jù)庫的標識,在安裝時就要想好,以后一般不修改,修改起來也麻煩,因為數(shù)據(jù)庫一旦安裝,數(shù)據(jù)庫名就寫進了控制文件,數(shù)據(jù)庫表,很多地方都會用到這個數(shù)據(jù)庫名。
啟動數(shù)據(jù)庫:也叫全局數(shù)據(jù)庫,是數(shù)據(jù)庫系統(tǒng)的入口,它會內(nèi)置一些高級權(quán)限的用戶如SYS,SYSTEM等。我們用這些高級權(quán)限賬號登陸就可以在數(shù)據(jù)庫實例中創(chuàng)建表空間,用戶,表了。
查詢當前數(shù)據(jù)庫名:
select name from v$database;
2、數(shù)據(jù)庫實例
用Oracle官方描述:實例是訪問Oracle數(shù)據(jù)庫所需的一部分計算機內(nèi)存和輔助處理后臺進程,是由進程和這些進程所使用的內(nèi)存(SGA)所構(gòu)成一個集合。
其實就是用來訪問和使用數(shù)據(jù)庫的一塊進程,它只存在于內(nèi)存中。就像Java中new出來的實例對象一樣。
我們訪問Oracle都是訪問一個實例,但這個實例如果關(guān)聯(lián)了數(shù)據(jù)庫文件,就是可以訪問的,如果沒有,就會得到實例不可用的錯誤。
實例名指的是用于響應(yīng)某個數(shù)據(jù)庫操作的數(shù)據(jù)庫管理系統(tǒng)的名稱。她同時也叫SID。實例名是由參數(shù)instance_name決定的。
查詢當前數(shù)據(jù)庫實例名:
select instance_name from v$instance;
數(shù)據(jù)庫實例名(instance_name)用于對外部連接。在操作系統(tǒng)中要取得與數(shù)據(jù)庫的聯(lián)系,必須使用數(shù)據(jù)庫實例名。比如我們作開發(fā),要連接數(shù)據(jù)庫,就得連接數(shù)據(jù)庫實例名:
jdbc:oracle:thin:@localhost:1521:orcl(orcl就為數(shù)據(jù)庫實例名)
一個數(shù)據(jù)庫可以有多個實例,在作數(shù)據(jù)庫服務(wù)集群的時候可以用到。
3、表空間
Oracle數(shù)據(jù)庫是通過表空間來存儲物理表的,一個數(shù)據(jù)庫實例可以有N個表空間,一個表空間下可以有N張表。
有了數(shù)據(jù)庫,就可以創(chuàng)建表空間。
表空間(tablespace)是數(shù)據(jù)庫的邏輯劃分,每個數(shù)據(jù)庫至少有一個表空間(稱作SYSTEM表空間)。為了便于管理和提高運行效率,可以使用一些附加表空間來劃分用戶和應(yīng)用程序。例如:USER表空間供一般用戶使用,RBS表空間供回滾段使用。一個表空間只能屬于一個數(shù)據(jù)庫。
創(chuàng)建表空間語法:
Create TableSpace 表空間名稱
DataFile 表空間數(shù)據(jù)文件路徑
Size 表空間初始大小
Autoextend on
如:
create tablespace db_test
datafile 'D:\oracle\product\10.2.0\userdata\db_test.dbf'
size 50m
autoextend on;
查看已經(jīng)創(chuàng)建好的表空間:
select default_tablespace, temporary_tablespace, d.username
from dba_users d
4、用戶
Oracle數(shù)據(jù)庫建好后,要想在數(shù)據(jù)庫里建表,必須先為數(shù)據(jù)庫建立用戶,并為用戶指定表空間。
上面我們建好了數(shù)據(jù)庫和表空間,接下來建用戶:
創(chuàng)建新用戶:
CREATE USER 用戶名
IDENTIFIED BY 密碼
DEFAULT TABLESPACE 表空間(默認USERS)
TEMPORARY TABLESPACE 臨時表空間(默認TEMP)
如:
CREATE USER utest
IDENTIFIED BY utestpwd
DEFAULT TABLESPACE db_test
TEMPORARY TABLESPACE temp;(這里臨時表空間不能使用我們創(chuàng)建的db_test,不知為何?)
有了用戶,要想使用用戶賬號管理自己的表空間,還得給它分權(quán)限:
GRANT CONNECT TO utest;
GRANT RESOURCE TO utest;
GRANT dba TO utest;--dba為最高級權(quán)限,可以創(chuàng)建數(shù)據(jù)庫,表等。
查看數(shù)據(jù)庫用戶:
5、表
有了數(shù)據(jù)庫,表空間和用戶,就可以用自定義的用戶在自己的表空間創(chuàng)建表了。有了表,我們可以開發(fā)了。
到此這篇關(guān)于Oracle數(shù)據(jù)庫的實例/表空間/用戶/表之間關(guān)系簡單講解的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)庫的實例/表空間/用戶/表之間關(guān)系內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 使用sqlplus命令行工具為oracle創(chuàng)建用戶和表空間
- oracle創(chuàng)建表空間、授權(quán)、創(chuàng)建用戶、導入dmp文件
- Oracle 刪除用戶和表空間詳細介紹
- Linux下Oracle刪除用戶和表空間的方法
- shell腳本操作oracle刪除表空間、創(chuàng)建表空間、刪除用戶
- Oracle新建用戶、角色,授權(quán),建表空間的sql語句