system和undo表空間不能處於離線

2021-04-20 11:36:29 字數 2018 閱讀 4821

資料檔案是資料庫的物理儲存單位,而表空間tablespace則是資料庫的邏輯組成部分。資料庫的資料是儲存在表空間中的,而乙個表空間可以由乙個或多個資料檔案組成,乙個資料檔案只能屬於乙個表空間。一旦資料檔案被加入到某個表空間後,就不能刪除這個檔案,如果要刪除某個資料檔案,只能刪除其所屬於的表空間才行。

產生表空間一般都是dba或特權使用者來完成的,如果要以其他的身份來產生,這個使用者必須由create tablespace許可權才行。產生乙個表空間時,一般需要產生乙個資料檔案,並確定檔案的大小和段的大小。

產生乙個表空間,確定資料檔案,檔案大小和區大小:

create tablespace date01 datafile d:/oracle/oradata/scut/date01.dbf size 200m uniform size 128k

刪除乙個表空間和資料檔案:

drop tablespace date01 including contents and datafiles;

改變乙個表空間的大小:

? 新增資料檔案:

alter tablespace date01 add datafile d:/oracle/oradata/scut/date03.dbf size 50m;

? 手工增加檔案尺寸

alter database datafile d:/oracle/oradata/scut/date03.dbf resize 100m;

? 設定檔案資料自動擴充套件

alter database datafile d:/oracle/oradata/scut/date03.dbf autoextend on next 10m maxsize 500m;

移動資料檔案:

移動資料檔案有兩種方式,一是alter tablespace,另一種是alter database。

? 在open狀態下移動資料檔案

在這種狀態下,移動檔案通過alter dataspace命令來完成,並且要求表空間處於離線狀態。由於system和undo表空間不能處於離線,所以在這種方式中不能移動它們。

下面是移動乙個普通資料檔案的方法:

? 確定檔案處於的表空間:

select tablespace_name from dba_data_files where file_name =d:/oracle/oradata/date03.dbf;

? 使表空間離線:

alter tablespace date01 offline;

? 使用os命令移動檔案:

host move d:/oracle/oradata/scut/date03.dbf d:/oracle/ora92/date03.dbf;

? 執行alter dataspace命令,必須確保檔案被移動了:

alter tablespace date01 rename datafile d:/oracle/oradata/scut/date03.dbf to d:/oracle/ora92/date03.dbf』;

? 使表空間聯機:

alter tablespace date01 online;

? 在mount狀態下移動資料檔案

在mount狀態下,可以移動任何資料檔案,包括system和undo表空間。它使用的命令是alter database

? 關閉資料庫

shutdown immediate

startup mount

? 移動資料

host move d:/oracle/oradata/scut/date03.dbf d:/oracle/ora92/date03.dbf;

? 執行alter database

alter database date01 renam file 『…..』 to 『……』

? 開啟資料庫

alter database open

本文**

重建Undo表空間

檢視各表空間名稱 select name from v tablespace 檢視某個表空間資訊 select file name,bytes 1024 1024 from dba data files where tablespace name like undotbs1 檢視回滾段的使用情況,哪...

undo表空間損壞

操作如下 sqlplus as sysdba 繼續執行命令 alter database open 例項終止。強制斷開連線 recover database recover datafile 1 recover datafile 2 系統提示 介質恢復成功 以為恢復成功就,直接,startup fo...

undo表空間縮小

最近執行乙個資料量比較大的儲存過程,造成undo表空間達到16g左右,但是直接採用resize的方式又無法縮小其大 小,因此經網上搜尋,採用了undo表空間重建的方式來縮小去空間大小,具體步驟如下 1 建立備用undo表空間 create undo tablespace newundotbs dat...