1. 程式人生 > 實用技巧 >oracle建立資料庫和使用者、表空間,管理表空間和資料檔案簡介

oracle建立資料庫和使用者、表空間,管理表空間和資料檔案簡介

介紹

表空間是資料庫的邏輯組成部分

從物理上將:資料庫資料存放在資料檔案中

從邏輯上將:資料庫則是存放在表空間中

表空間由一個或是多個數據檔案組成

資料庫的邏輯結構

介紹:

Oracle中邏輯結構包括表空間、段、區、塊

說明:

資料庫由表空間構成

而表空間又是由段構成

而段又是由區構成

而區又是由Oracle塊構成

這樣的一種結果,可以提高資料庫的效率

表空間

介紹:

表空間用於從邏輯上組織資料庫的資料

資料庫邏輯上是由一個或是多個表空間組成的

表空間的作用:

1、控制資料庫佔用的磁碟空間

2、dba可以將不同資料型別部署到不同的位置。這樣有利於提高i/o效能,同時利於備份和恢復等管理操作

oracle建立資料庫和使用者、表空間

oracle的使用方式和mysql和sql server他們不同,oracle在建立資料庫的時候要對應一個使用者,資料庫和使用者一般一一對應,

mysql和sql server 直接通過create databse “資料庫名” 就可以直接建立資料庫了,而oracle建立一個數據庫需要以下三個步驟

  1. 建立兩個表空間和對應的資料檔案(.DBF),若已存在使用者和關聯的資料庫,則需先刪除使用者和資料庫
  2. 建立使用者與上面建立的檔案形成對映關係
  3. 給使用者新增許可權

一、建立兩個表空間和對應的資料檔案(monitor.dbf 和monitor_temp.dbf 兩個檔案) ,若已存在使用者和關聯的資料庫,則需先刪除使用者和資料庫

CREATE TABLESPACE monitor LOGGING DATAFILE 'D:\app\owner\oradata\orcl\monitor.dbf' 
SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 500M EXTENT MANAGEMENT LOCAL;

create temporary tablespace monitor_temp tempfile 'D:\app\owner\oradata\orcl\monitor_temp.dbf'
size 100m autoextend on next 32m maxsize 500m extent management local;

tablespace:表空間名

datafile:'資料檔案路徑'

size:資料檔案的大小

maxsize:表資料檔案最大大小

uniformsize區的大小;

二、建立使用者與上面建立的檔案形成對映關係(使用者名稱為monitor,密碼為monitor)

CREATE USER monitor IDENTIFIED BY monitor DEFAULT TABLESPACE monitor TEMPORARY TABLESPACE monitor_temp;

三、新增許可權

grant connect,resource,dba to monitor;
grant create session to monitor;

有時候也會用到刪除資料庫和刪除使用者的操作,這裡也給出刪除的語句

四、刪除資料庫

DROP TABLESPACE monitor INCLUDING CONTENTS AND DATAFILES;

五、刪除使用者

drop user monitor cascade;

管理表空間和資料檔案簡介

建立表空間

建立表空間是使用createtablespace命令完成的,要注意時,一般情況下,建立表空間是特權使用者或是dba來執行的,

如果用其它使用者來建立表空間,則使用者必須要具有createtablespace的系統許可權

建立資料表空間

在建立資料庫後,為便於管理表,最好建立自己的表空間

createtablespacetangtao001datafile'd:\t001.dbf'size20muniformsize128k;

使用資料表空間

向新建的表空間新增表:

createtablemyDept(deptnonumber(4),dnamevarchar2(15),locvarchar2(13))tablespacetangtao001;

說明:執行完上述命令後,會建立名稱為tangtao001的表空間,併為該表空間建立名稱為t001.dbf的資料檔案,區的大小為128k

1、顯示錶空間資訊

a)查詢資料字典檢視dba_tablespaces。顯示錶空間資訊

selecttablespace_namefromdba_tablespaces;

2、顯示錶空間所包含的資料檔案

a)查詢資料字典檢視dba_data_files,可以顯示錶空間所包含的資料檔案

selectfile_name,bytesfromdba_data_fileswheretablespace_name='表空間名';

改變表空間的狀態

當建立表空間時,表空間處於聯機的(online)狀態,此時該表空間是可以訪問的,並且該表空間是可以讀寫的,即可以查詢該表空間的資料,而且還可以在表空間執行各種語句。

但是在進行系統維護或是資料維護時,可能需要改變表空間的狀態,一般情況下,由特權使用者或是dba來操作

1、使表空間離線

altertablespace表空間名offline;

2、使表空間聯機

altertablespace表空間名online;

3、只讀表空間

a)當建立表空間時,表空間可以讀寫,如果不希望在該表空間上執行update、delete、insert操作,那麼可以將該表空間修改為只讀

altertablespace表空間名readonly;

案例:

1、知道表空間名。顯示該表空間的所有表

select*fromtall_tableswheretablespace_name='表空間名';

2、知道表明,檢視該表屬於哪個表空間

selecttablespace_name,table_namefromuser_tableswheretable_name='emp';

注意:

通過2,可以知道scott.emp是在system這個表空間上,現在可以將system改為只讀,但是不會成功。因為system是系統表空間,如果是普通表空間,可以將其設為只讀

刪除表空間

一般情況下,有特權使用者或是dba來操作,如果是其它使用者操作,那麼要求使用者具有droptablespace系統許可權

droptablespace表空間名includingcontentsanddatafiles;

說明:

Includingcontents表示刪除表空間,刪除該表空間的所有資料庫物件,而datafiles表示將資料庫檔案也刪除

擴充套件表空間

表空間是由資料檔案組成的,表空間的大小實際上就是資料檔案相加後的大小。那麼我們可以想象。假定表employee存放到tangtao001表空間上,初始大小就是2m。

當資料滿2m空間後,如果在向employee表插入資料,這樣就會顯示空間不足的錯誤

案例說明:

1、建立一個表空間tangtao001

2、在該表空間上建立一個普通標mydment其結構和dept一樣

3、向該表中加入資料insertintomydmentselect*fromdept;

4、當一定時候就會出現無法擴充套件的問題,怎麼辦?

5、就擴充套件該表空間,為其增加更多的儲存空間。有三種方法:

1、增加資料檔案

altertablespace表空間名adddatafile'資料檔案存放路徑'size資料檔案大小;

2、增加資料檔案的大小

altertablespace表空間名adddatafile'資料檔案存放的路徑'resize資料檔案新的大小;

這裡需注意,資料檔案的大小不要超過500m

3、設定檔案的自動增長

altertablespace表空間名adddatafile'資料檔案存放路徑'autoextendonnext每次增加的大小maxsize資料檔案大小的最大值;

移動資料檔案

有時,如果資料檔案所在的磁碟損壞時,該資料檔案不能再使用,為了能夠重新使用,需要將這些檔案的副本移動到其它的磁碟,然後恢復

案例說明:

1、確定資料檔案所在的表空間

selecttablespace_namefromdba_data_fileswherefile_name='d:\t01.dbf';

2、使表空間離線

a)確保資料檔案的一致性,將表空間轉變為offline的狀態

altertablespacetangtao001offline;

3、使用命令移動資料檔案到指定的目標位置

hostmoved:t01.dbfc:t01.dbf;

4、執行altertablespace命令

a)在物理上移動了資料後,還必須執行altertablespace命令對資料庫檔案進行邏輯修改

altertablespacetangtao001renamedatafile'd:t01.dbf'to'c:t01.dbf';

5、使得表空間聯機

a)在移動了資料檔案後,為了使使用者可以訪問該表空間,必須將其轉變為online的狀態

altertablespacetangtao001online;

表空間小結

1、瞭解表空間和資料檔案的作用

2、掌握常用表空間,undo表空間和臨時表空間的建立方法

3、瞭解表空間的各個狀態

a)Online

b)Offline

c)Readwrite

d)Readonly

4、瞭解移動資料檔案的原因,即使用altertablespace和alterdatatable命令移動資料檔案的方法

參考博文:

https://www.cnblogs.com/qintangtao/archive/2012/11/04/2753549.html

https://www.cnblogs.com/0201zcr/p/4669548.html