Oracle-22-數據文件和表空間管理


查看數據庫表空間

select tablespace_name,contents from dba_tablespaces;
TABLESPACE_NAME                CONTENTS
------------------------------ ---------
SYSTEM                         PERMANENT
SYSAUX                         PERMANENT
UNDOTBS1                       UNDO
TEMP                           TEMPORARY
USERS                          PERMANENT
EXAMPLE                        PERMANENT

6 rows selected.

Elapsed: 00:00:00.01

一、永久表空間(PERMANENT):存儲永久對象(表,索引)

創建永久表空間

create tablespace data01 datafile size 10m;
select tablespace_name,contents from dba_tablespaces order by contents;
TABLESPACE_NAME                CONTENTS
------------------------------ ---------
SYSTEM                         PERMANENT
SYSAUX                         PERMANENT
EXAMPLE                        PERMANENT
DATA01                         PERMANENT
USERS                          PERMANENT
TEMP                           TEMPORARY
UNDOTBS1                       UNDO

7 rows selected.

Elapsed: 00:00:00.01

查看錶空間所對應的物理文件

select tablespace_name,file_name from dba_data_files;
TABLESPACE_NAME	            FILE_NAME
USERS	         +DATA/orcl/datafile/users.259.974086707
UNDOTBS1	 +DATA/orcl/datafile/undotbs1.258.974086707
SYSAUX	         +DATA/orcl/datafile/sysaux.257.974086707
SYSTEM	         +DATA/orcl/datafile/system.256.974086707
EXAMPLE	         +DATA/orcl/datafile/example.265.974086801
DATA01	         +DATA/orcl/datafile/data01.275.975123385

在表空間下創建表

create table scott.t01 tablespace data01 as select * from scott.emp;

查看錶所在的表空間信息

select tablespace_name,table_name from dba_tables where table_name='T01';
TABLESPACE_NAME                TABLE_NAME
------------------------------ ------------------------------
DATA01                         T01

查看錶空間狀態

select tablespace_name,contents,status from dba_tablespaces order by contents;
TABLESPACE_NAME                CONTENTS  STATUS
------------------------------ --------- ---------
SYSTEM                         PERMANENT ONLINE
SYSAUX                         PERMANENT ONLINE
EXAMPLE                        PERMANENT ONLINE
DATA01                         PERMANENT ONLINE
USERS                          PERMANENT ONLINE
TEMP                           TEMPORARY ONLINE
UNDOTBS1                       UNDO      ONLINE

7 rows selected.

Elapsed: 00:00:00.00

修改表空間的狀態

alter tablespace data01 read only;

在read only狀態下是不能對錶空間內的對象做改寫的,查詢、drop表是沒有問題的

alter tablespace data01 read write;

系統表空間、系統輔助表空間、UNDO表空間、TEMP表空間是不能被設置爲只讀的

alter tablespace data01 offline;
select tablespace_name,contents,status from dba_tablespaces order by contents;
TABLESPACE_NAME                CONTENTS  STATUS
------------------------------ --------- ---------
SYSTEM                         PERMANENT ONLINE
SYSAUX                         PERMANENT ONLINE
EXAMPLE                        PERMANENT ONLINE
DATA01                         PERMANENT OFFLINE
USERS                          PERMANENT ONLINE
TEMP                           TEMPORARY ONLINE
UNDOTBS1                       UNDO      ONLINE

7 rows selected.

Elapsed: 00:00:00.01

select * from scott.t01;
select * from scott.t01
                    *
ERROR at line 1:
ORA-00376: file 6 cannot be read at this time
ORA-01110: data file 6: '+DATA/sundb/datafile/data01.275.975123385'


Elapsed: 00:00:00.03

表空間在OFFLINE狀態下是不能進行查詢修改操作的,但是可以進行DROP操作

alter tablespace data01 online;

表空間的空間監控

select tablespace_name,sum(blocks)/128 curr_mb from dba_data_files group by tablespace_name;
TABLESPACE_NAME                   CURR_MB
------------------------------ ----------
UNDOTBS1                              545
SYSAUX                                500
USERS                                 190
SYSTEM                                680
EXAMPLE                               100
DATA01                                 10

6 rows selected.

Elapsed: 00:00:00.04
select tablespace_name,sum(blocks)/128 curr_mb,round(sum(maxblocks)/128,0) max_mb from dba_data_files group by tablespace_name;
TABLESPACE_NAME                   CURR_MB     MAX_MB
------------------------------ ---------- ----------
UNDOTBS1                              545      32768
SYSAUX                                500      32768
USERS                                 190      32768
SYSTEM                                680      32768
EXAMPLE                               100      32768
DATA01                                 10          0

6 rows selected.

Elapsed: 00:00:00.02

查看錶空間空閒大小

select tablespace_name,round(sum(blocks)/128,0) free_mb from dba_free_space group by tablespace_name;
TABLESPACE_NAME                   FREE_MB
------------------------------ ----------
SYSAUX                                 31
UNDOTBS1                              142
USERS                                  10
SYSTEM                                  7
EXAMPLE                                22
DATA01                                  9

6 rows selected.

Elapsed: 00:00:00.02
如果表空間已經沒有剩餘空間了,那麼它將從dba_free_space中消失


表空間擴容

1.修改現有數據文件大小

select file_name from dba_data_files where tablespace_name='DATA01';
alter database datafile '+DATA/sundb/datafile/data01.275.975123385' resize 20m;
select tablespace_name,round(sum(blocks)/128,0) free_mb from dba_free_space group by tablespace_name;
TABLESPACE_NAME                   FREE_MB
------------------------------ ----------
SYSAUX                                 31
UNDOTBS1                              142
USERS                                  10
SYSTEM                                  7
EXAMPLE                                22
DATA01                                 19

6 rows selected.

Elapsed: 00:00:00.03
select tablespace_name,sum(blocks)/128 curr_mb,round(sum(maxblocks)/128,0) max_mb from dba_data_files group by tablespace_name;
TABLESPACE_NAME                   CURR_MB     MAX_MB
------------------------------ ---------- ----------
UNDOTBS1                              545      32768
SYSAUX                                500      32768
USERS                                 190      32768
SYSTEM                                680      32768
EXAMPLE                               100      32768
DATA01                                 20          0

6 rows selected.

Elapsed: 00:00:00.02


2.打開數據文件的自動增長屬性

alter database datafile '+DATA/sundb/datafile/data01.275.975123385' autoextend on;
select tablespace_name,sum(blocks)/128 curr_mb,round(sum(maxblocks)/128,0) max_mb from dba_data_files group by tablespace_name;
TABLESPACE_NAME                   CURR_MB     MAX_MB
------------------------------ ---------- ----------
UNDOTBS1                              545      32768
SYSAUX                                500      32768
USERS                                 190      32768
SYSTEM                                680      32768
EXAMPLE                               100      32768
DATA01                                 20      32768

6 rows selected.

Elapsed: 00:00:00.06

3.向表空間增加新的數據文件

alter tablespace data01 add datafile size 10m;
select tablespace_name,sum(blocks)/128 curr_mb,round(sum(maxblocks)/128,0) max_mb from dba_data_files group by tablespace_name;
TABLESPACE_NAME                   CURR_MB     MAX_MB
------------------------------ ---------- ----------
UNDOTBS1                              545      32768
SYSAUX                                500      32768
USERS                                 190      32768
SYSTEM                                680      32768
EXAMPLE                               100      32768
DATA01                                 30      32768

6 rows selected.

Elapsed: 00:00:00.03


數據庫默認永久表空間

select * from database_properties where rownum<4;
PROPERTY_NAME			PROPERTY_VALUE		DESCRIPTION
DICT.BASE			2		dictionary base tables version #
DEFAULT_TEMP_TABLESPACE		TEMP		Name of default temporary tablespace
DEFAULT_PERMANENT_TABLESPACE	USERS		Name of default permanent tablespace
USER表空間現在屬於默認永久表空間,當我們創建了一個用戶,而且用戶沒有指明使用哪個表空間,那麼這個用戶所創建的所有對象都放到了USERS這個默認永久表空間裏面,默認永久表空間是不允許被刪除的


drop tablespace data01 including contents and datafiles;
Tablespace dropped.

Elapsed: 00:00:00.75
drop tablespace users including contents and datafiles;
drop tablespace users including contents and datafiles
*
ERROR at line 1:
ORA-12919: Can not drop the default permanent tablespace


Elapsed: 00:00:00.01

二、UNDO表空間:不保存任何對象,這裏面存儲ROLLBACK SEGMENT回滾段(爲事物提供回退、恢復、讀一致性、閃回)

創建UNDO表空間

create undo tablespace undo02 datafile size 10m;
select tablespace_name,contents,status from dba_tablespaces;
TABLESPACE_NAME                CONTENTS  STATUS
------------------------------ --------- ---------
SYSTEM                         PERMANENT ONLINE
SYSAUX                         PERMANENT ONLINE
UNDOTBS1                       UNDO      ONLINE
TEMP                           TEMPORARY ONLINE
USERS                          PERMANENT ONLINE
EXAMPLE                        PERMANENT ONLINE
UNDO02                         UNDO      ONLINE

7 rows selected.

Elapsed: 00:00:00.00
剛創建的UNDO表空間是沒有用的,因爲數據庫在同一時刻只能使用一個UNDO表空間,
show parameter undo
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1

undo_tablespace參數顯示了數據庫當前用的UNDO表空間

alter system set undo_tablespace=undo02;
show parameter undo
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDO02


三、臨時表空間:不能保存永久對象,保存排序的中間結果,臨時表的數據

創建臨時表空間

create temporary tablespace temp02 tempfile size 10m;
select tablespace_name,contents,status from dba_tablespaces;
TABLESPACE_NAME                CONTENTS  STATUS
------------------------------ --------- ---------
SYSTEM                         PERMANENT ONLINE
SYSAUX                         PERMANENT ONLINE
UNDOTBS1                       UNDO      ONLINE
TEMP                           TEMPORARY ONLINE
USERS                          PERMANENT ONLINE
EXAMPLE                        PERMANENT ONLINE
UNDO02                         UNDO      ONLINE
TEMP02                         TEMPORARY ONLINE

8 rows selected.

Elapsed: 00:00:00.00

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章