管理oracle的表空間和資料檔案

2021-05-23 13:26:33 字數 4738 閱讀 9638

sql> conn sys/xin as sysdba

已連線。

sql> set wrap off

sql> set linesize 100

1. 一些基本的操作

(1) 檢視表空間:

sql> select * from v$tablespace;

(2) 檢視資料檔案:

sql> select * from v$datafile;

(3) 檢視tablespace 和data files之間的對應關係(通過表空間的號連線在一起):

sql> select t1.name,t2.name

2 from v$tablespace t1, v$datafile t2

3 where t1.ts#=t2.ts#

4 ;

(4) 更改表空間

sql> alter tablespace users

2 add datafile 'e:/oracle/oradata/xiner/users02.dbf' size 10m;

表空間已更改。

2. 管理表空間

在oracle 裡將表空間分為系統表空間和非系統表空間。

(1) 系統表空間包括系統表,資料字典,以及系統回滾段等資訊。

檢視系統回滾段:

sql> select * from dba_rollback_segs;

(2) 非系統表空間用來分離段(分開臨時資料和永久性資料,索引和表放在不同的表空間等等)可以給系統的效能帶來

好處,同時可以控制分配給使用者的空間限額。

控制使用者對空間的使用:

sql> alter user hr

2 quota 10m on users;

使用者已更改。

(3) 如何建立表空間:(均表示可選)

create tablespace ***

[datafile '***']---omf時可以不指定

[size ***--kb,mb]

[extent management local/dictionary]

[default storage(***)]

dictionary-managed tablespaces在oracle 9i 裡已經不建議使用。

sql> create tablespace ice

2 datafile 'e:/oracle/oradata/xiner/ice.dbf' size 5m

3 extent management dictionary

4 default storage(

5 initial 100k

6 next 100k

7 pctincrease 10)

8 offline;

表空間已建立。

如果表空間管理指定為local型,則不能使用default storage。此時不會和資料字典表打交道,不會和系統表產生

資源爭用,也不會產生回滾資料(因為不涉及修改系統表),其次也不會有遞迴的資源爭用。

sql> create tablespace ice1

2 datafile 'e:/oracle/oradata/xiner/ice1.dbf' size 5m

3 extent management local

4 uniform size 1m;

表空間已建立。

sql> create tablespace ice2

2 datafile 'e:/oracle/oradata/xiner/ice2.dbf' size 5m

3 extent management local autoallocate;

表空間已建立。

(4) undo 表空間用來儲存undo段,不能包括其他的資料物件,使用locally管理。

undo 段主要用來儲存資料改變的舊值,可以回滾transcation(rollback)。

sql> show parameter undo

sql> create undo tablespace ice3

2 datafile 'e:/oracle/oradata/xiner/ice3.ora' size 5m

3 extent management local

4 uniform size 1m; //此時不能定義uniform size

uniform size 1m

* error 位於第 4 行:

ora-30024: create undo tablespace 的說明無效

sql> del 4

sql> run

1 create undo tablespace ice3

2 datafile 'e:/oracle/oradata/xiner/ice3.ora' size 5m

3* extent management local

表空間已建立。

不能在回滾表空間建立表物件(不能放其他的資料物件):

sql> create table tt1

2 (id int)

3 tablespace ice3;

create table tt1

* error 位於第 1 行:

ora-30022: 無法在撤消表空間中建立段

(5) 臨時表空間用來支援排序,不能包括永久的資料物件,建議使用locally管理。

sql> create temporary tablespace ice4

2 tempfile 'e:/oracle/oradata/xiner/ice4.ora' size 5m

3 extent management local;

表空間已建立。

sql> create table tt1

2 (id int)

3 tablespace ice4;

create table tt1

* error 位於第 1 行:

ora-02195: 嘗試建立的permanent物件在temporary表空間中

(6) 預設的臨時表空間:

sql> alter database default temporary tablespace ice4

資料庫已更改。

臨時表空間不可以被置為offline,也不能指定為read only,不可以被刪除,除非用另外乙個表空間代替它。

sql> alter talbespace ice4 offline

alter talbespace ice4 offline

* error 位於第 1 行:

ora-00940: 無效的 alter 命令

sql> alter tablespace ice4

2 read only;

alter tablespace ice4

* error 位於第 1 行:

ora-03217: 變更 temporary tablespace 無效的選項

(7) offline狀態:對資料檔案改名or搬動資料檔案的位置or對資料庫進行部分的修復

(7) offline狀態:對資料檔案改名or搬動資料檔案的位置or對資料庫進行部分的修復

sql> alter tablespace users offline;

表空間已更改。

sql> alter tablespace users online;

表空間已更改。

不可以置為offline狀態的表空間包括:system表空間(如果要對系統表空間的檔案進行改變則要關閉資料庫);

包括active undo 段的表空間;預設的臨時表空間

(8) read only 表空間:對錶空間只能進行讀操作;資料物件可以從表空間刪除

sql> alter tablespace users read only;

表空間已更改。

(9) 刪除表空間:

sql> create table tt1

2 (id int)

3 tablespace ice;

表已建立。

sql> drop tablespace ice1;

表空間已丟棄。

sql> drop tablespace ice2

2 including contents and datafiles;

表空間已丟棄。

(10) resize表空間:自動擴張(autoextend on)、手動(resize)

3. 管理資料檔案

(1) 移動data files:

表空間必須是offline(使用alter tablespace *** rename datafile 'xx' to 'xx');

目標資料檔案必須已經存在;

如果是不能處於offline狀態的表空間則要關閉資料庫,將其啟動到mount狀態,同時目標資料檔案必須已經存在。

(使用alter database rename file 'xx' to 'xx')

(2) 配置omf檔案來建立表空間的時候db_create_file_dest會將資料檔案存放在預設的位置。如果想要更改位置則用

alter system set db_create_file_dest='xx';

用omf建立表空間:create tablespace ***; 刪除:drop tablespace ***;

oracle 管理表空間和資料檔案

介紹 表空間是資料庫的邏輯組成部分。從物理上講,資料庫資料存放在資料檔案中 從邏輯上講,資料庫則是存放在表空間中,表空間由乙個或多個資料檔案組成。資料庫的邏輯結構 介紹 oracle 中邏輯結構包括表空間 段 區和塊。說明一下資料庫由表空間構成,而表空間又是由段構成,而段又是由區構成,而 區又是由 ...

oracle 管理表空間和資料檔案

以下內容摘自oracle 11g 權威指南 tablespace 表空間 segment 段 extent 盤區 block 塊 一 表空間和資料檔案的關係 在oracle系統中,表空間與資料檔案是一對不能分開的概念,建立表空間時必須建立資料檔案,增加資料檔案時必須制定表空間。1 查詢表空間及其包含...

Oracle管理表空間和資料檔案詳解

表空間是資料庫的邏輯組成部分 從物理上將 資料庫資料存放在資料檔案中 從邏輯上將 資料庫則是存放在表空間中 表空間由乙個或是多個資料檔案組成 介紹 oracle中邏輯結構包括表空間 段 區 塊 說明 資料庫由表空間構成 而表空間又是由段構成 而段又是由區構成 而區又是由oracle塊構成 這樣的一種...