Oracle資料庫只是一些檔案組成,Oracle執行個體是指有自己的系統全域區和相關資料庫檔案的Oracle伺服器處理序集。新裝的Oracle資料庫管理系統有一個預裝的資料庫(通常叫ORCL),同時會啟動一個執行個體,以後的資料庫連接,都預設是通過這個執行個體串連到該資料庫。
可以建立資料庫,通過圖形化或手工代碼方式。建立的資料庫與ORCL一樣,可能只是取名不同(假設為newdb),也會啟動newdb的一個執行個體。這就是說,一台機器上可以運行多個Oracle執行個體,在串連時,需要指定串連參數串連到不同的執行個體,或者通過ALTER SESSION SET INSTANCE = newdb 的方式來指定串連到的執行個體。一般有一個預設執行個體!
我理解大致可以這樣來簡單看待ORacle的組成層次:
資料庫--資料表空間--某一個使用者的表集--一張表--行、列……,對錶的引用和授權,常是以使用者為單位的。當然,實質上資料表空間是物理概念,而使用者表是資料庫中的對象,只是存於某一個資料表空間下的一塊空間中。
資料表空間、段、區間和資料庫物件
Oracle資料庫的實體儲存體結構由資料檔案組成,但在邏輯上,Oracle將資料庫所有資料檔案佔用的磁碟空間劃分為一個或多個資料表空間進行儲存管理。一個資料表空間可包含多個資料檔案,但一個資料檔案只能屬於一個資料表空間。
Oracle的邏輯儲存結構大致有以下幾個層次:資料表空間--段--區間--資料區塊。平常用到的主要是資料表空間、段和區間,段有資料區段、索引段、臨時段和復原段幾種。Oracle對象中的表,索引等便是儲存在這不同的段裡面。而一張資料庫表,只屬於資料區段,但它可能跨越多個區間(Extent),因為區間包括固定的若干個資料區塊大小,一個區間未必放得下一張表,劃分區間只是為了空間分配與回收的方便。
新增使用者及其授權
在Oracle資料庫中新加入一個使用者時,主要有以下幾步:
一、建立資料表空間(如新使用者的預設資料表空間使用現有的資料表空間如USERS資料表空間,則不需要建立)。建立資料表空間時,需要指定資料檔案等一些資料表空間的參數。
二、建立使用者。剛建立的使用者可以沒有指定任何許可權屬性,也可以指定其預設資料表空間等。
三、使用者授權。指定使用者的預設資料表空間、將create session(串連資料庫)、create table、select talbe等許可權授予使用者。這樣使用者便可以在自己預設資料表空間下進行各種操作了。如果需要將其它使用者的表許可權授予新使用者,也可在此時完成。
四、分配空間限額。一定要有這一步,否則將無法進行建立表的操作。分配每個使用者在某個資料表空間的空間限額,是為了使使用者對空間的利用更加合理。
五、使用者可進行操作了。
下面是在網上找的一段執行個體:
- 1.建資料表空間
- create tablespace OSDB datafile 'F:\oracle\oradata\glsqjz\OSDB.ora' size 100m reuse default storage(initial 500k next 500k pctincrease 20);
- 2.建使用者
- create user OSUSER identified by OSUSER;//identified by 後面的是密碼,前面的是使用者名稱
- 3.使用者授權
- grant resource,connect,RECOVERY_CATALOG_OWNER to OSUSER ;
- grant create table to OSUSER ;
- alter user OSUSER quota unlimited ON OSDB;
- alter user OSUSER default tablespace OSDB;
- 4.刪除資料表空間
- DROP TABLESPACE TableSpaceName INCLUDING CONTENTS AND DATAFILES;
- 5.刪除使用者
- DROP USER User_Name CASCADE
- 6.刪除表的注意事項
- 在刪除一個表中的全部資料時,須使用TRUNCATE TABLE 表名;因為用DROP TABLE,DELETE * FROM 表名時,TABLESPACE資料表空間該表的佔用空間並未釋放,反覆幾次DROP,DELETE操作後,該TABLESPACE上百兆的空間就被耗光了。