Oracle 表空間操作

2021-08-14 23:07:07 字數 4024 閱讀 8735

oracle表空間操作

[緊在11g中進行驗證]:

注:確認oracle資料版本[select * from v $ version;]

提前準備:

資料庫管理員可以在資料庫處於開啟(開啟)狀態時令除system表空間(tablespace)之外的任何表空間聯機(online)(可訪問)或離線(offline)(不可訪問)。

1.表空間狀態修改:

1.1檢視表空間狀態的命令: 

從dba_tablespaces中選擇tablespace_name,status;

1.2狀態修改:

alter tablespace tablespace_name離線引數; - 離線(本次使用)

1.2.1引數 - 離線表空間選項

正常如果表空間所有資料檔案都沒有錯誤,表空間可以正常離線。寫入錯誤導致表空間所有資料檔案都不能離線。當指定offline normal時,oracle對所有資料檔案一邊進行檢查一邊將他們離線。

臨時表空間能臨時離線,即使表空間的乙個或多個資料檔案有錯誤。當指定offline temporary選項時,oracle將還沒離線的資料檔案離線,同時對他們進行檢查。如果沒有資料檔案離線,然後用臨時選項離線,當聯機表空間時不需要介質恢復。但是,如果有表空間的檔案因寫入錯誤離線,然後將表空間臨時離線,在將表空間聯機之前需要介質恢復。

即時表空間能立即離線,不等oracle對任何資料檔案做檢查。在指定offline immediate的情況下,當聯機表空間需要介質恢復。如果資料庫執行在noarchivelog模式下,表空間不能立即離線。

為了恢復

將在恢復集中的資料庫表空間離線,以便進行時間點恢復。

alter tablespace tablespace_name online; - 聯機

alter tablespace tablespace_name唯讀; - 唯讀

將表空間的狀態修改為唯讀之前,需要注意如下的事項:

2.表空間不能包含任何事務的回退段

alter tablespace tablespace_name read write; - 讀寫

2.修改表空間中資料檔案的狀態。資料檔案的狀態有三種:online / offline / offline drop。  

alter database datafile file_name online | offline | offline drop  

網上表示聯機狀態,此時資料檔案可用;  

離線表示離線狀態,此時資料檔案不可用;  

離線刪除這會刪除資料檔案,與離線一樣用於設定資料檔案不可用,但是它用於資料庫執行在非歸檔模式下的情況。  

將資料檔案設定為離線狀態時,不會影響到表空間的狀態;但是表空間設定為離線狀態時,屬於該錶空間的的所有資料檔案都被設定為

離線狀態

2.甲骨文表空間中的資料檔案進行移動[調整表空間為離線狀態]

資料檔案是儲存在磁碟中的物理檔案,它的的大小收到磁碟大小的限制。如果資料檔案所在的磁碟空間不夠,則需要將該檔案移動到新的磁碟中儲存。 

2.1將該需要移動的資料檔案拷貝移動到新的磁碟中,此時可以對資料檔案重新命名;

2.2將移動的資料檔案檔案的新路徑,指示個表空間:

alter tablespace tablespace_name rename datafile'old_directoy_name'to'new_directory_name';

2.3驗證語句:

從dba_data_files中選擇tablespace_name,file_name,其中tablespace_name ='tablespace_name';

2.表空間重新命名[表空間狀態為offline]:

alter tablespace tablespace_name rename to new_tablespace_name;

3.修改表的空間

alter table table_name move tablespace tablespacename;

alter table table_name將move lob(lob_item1,lob_item2,lob_item2,...)儲存為(tablespace users);

更詳細的參見:

查詢當前使用者下的所有表

從user_tables中選擇table_name;

注意:選擇'alter table'||

table_name ||'

移動表空間tablespacename;'

來自user_tables;

4.修改索引的空間

改變索引index_name重建表空間tablespacename

查詢當前使用者下的所有索引

從user_indexes中選擇index_name;

注釋:選擇'改變索引' ||

index_name ||'

重建表空間tablespacename;'

來自user_indexes;

3.oracle表空間使用情況:

檢視表或索引占用空間大小:

根據oracle的體系結構(表,段,區,塊),一張表就是乙個或多個段;

檢視使用者表,索引,分割槽表占用空間

選擇segment_name,sum(bytes)/ 1024/1024 ||'m'從user_segments組中刪除mbbytese by segment_name order by 2 desc;

表占用空間

select segment_name,sum(bytes)/ 1024/1024 ||'m'mbytese from user_segments where segment_type ='table'group by segment_name order by 2 desc;

索引占用空間

select segment_name,sum(bytes)/ 1024/1024 || user_segments || m'where segment_type ='index'by segment_name by order by 2 desc;

分割槽表table partition占用空間

select segment_name,sum(bytes)/ 1024/1024 ||'m'從user_segments開始mbytes where segment_type ='table partition'group by segment_name order by 2 desc;

表空間大小使用情況

檢視資料檔案大小

從dba_data_files中選擇tablespace_name,file_name,bytes / 1024/1024 ||'m'ssize大小為1;

檢視表空間大小

select tablespace_name,sum(bytes)/ 1024/1024 || from'd'data_files group''m'msize by tablespace_name order by 1;

4. 刪除表空間(需要使用drop tablespace語句)  

刪除表空間tablespace_name

[包括內容[和資料檔案]] 

乙個。包括內容表示刪除時,刪除表空間中所有資料庫物件。如果刪除的表空間中有資料庫物件,則必須使用此選項。  

灣和datafiles表示刪除表空間的同時,刪除表空間中的資料檔案。如果不使用此選項,則刪除表空間實際上僅僅是從資料字典和控制檔案中將這該錶空間的有關資訊刪除,而不會刪除作業系統中與該錶空間相對於的資料檔案。

刪除語句詳見如下:

刪除空的表空間,但是不包含物理檔案

刪除表空間tablespace_name;

刪除非空表空間,但是不包含物理檔案

刪除表空間tablespace_name包括內容;

刪除空表空間,包含物理檔案

刪除包含資料檔案的表空間tablespace_name;

刪除非空表空間,包含物理檔案

刪除表空間tablespace_name包括內容和資料檔案;

如果其他表空間中的表有外來鍵等約束關聯到了本表空間中的表的字段,就要加上cascade constraints

刪除表空間tablespace_name包括內容和資料檔案cascade constraints;

oracle表空間操作

建立表空間 oracle中的tablespace 表空間 就相當於sqlserver的database create tablespace data01 datafile d oracle ora92 oradata db data01.dbf size 200m uniform size 128k...

Oracle 表空間操作

建立表空間 create temporary tablespace tablespace name tempfile datafile 表空間中資料檔名 xx.dbf size 資料檔案大小 xx datafile 表空間中資料檔名,沒有指定路徑則預設安裝在oracle安裝目錄下 temporary...

oracle表空間操作

oracle資料庫表空間型別,作用 oracle 中的表空間的型別有 系統表空間,其作用是 主要是儲存資料字典,並且dba可以根據系統表空間的需要去建立非系統表空間。臨時表空間 temporary 作用 主要用於儲存在資料庫操作中產生的資料,尤其是用於排序等操作中間產生的資料。undo表空間,作用 ...