表空間
物理結(jié)構(gòu)上 : 數(shù)據(jù)信息存儲(chǔ)在數(shù)據(jù)文件中
邏輯結(jié)構(gòu)上: 數(shù)據(jù)信息存儲(chǔ)在表空間中
一個(gè)數(shù)據(jù)庫是由多個(gè)表空間構(gòu)成麸塞,表空間和數(shù)據(jù)文件存在緊密的對應(yīng)關(guān)系
每個(gè)表空間是由一個(gè)或多個(gè)數(shù)據(jù)文件組成
一個(gè)實(shí)例對應(yīng)一個(gè)數(shù)據(jù)庫
一個(gè)表空間可以對應(yīng)多個(gè)用戶, 一個(gè)用戶只能屬于一個(gè)表空間
數(shù)據(jù)庫下可以創(chuàng)建多個(gè)表空間,一個(gè)java項(xiàng)目對應(yīng)一個(gè)表空間
dba_tablespace_name 皱埠,存儲(chǔ)Oracle數(shù)據(jù)庫中的所有表空間信息
SQL> select tablespace_name, block_size,allocation_type from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE ALLOCATIO
SYSTEM 8192 SYSTEM
SYSAUX 8192 SYSTEM
UNDOTBS1 8192 SYSTEM
TEMP 8192 UNIFORM
USERS 8192 SYSTEM
EXAMPLE 8192 SYSTEM
創(chuàng)建基本表空間
在創(chuàng)建表空間的時(shí)候:
1. 在數(shù)據(jù)字典和控件文件中添加新建的表空間信息
2. 操作系統(tǒng)中熏版,創(chuàng)建指定大小的操作系統(tǒng)文件,并作為與表空間對應(yīng)的數(shù)據(jù)文件
使用腳本創(chuàng)建
create [temporary|undo] tablespace tablespace_name
datafile filepath
blocksize number k
autoallocate number [k|m]
SQL> create tablespace hnkj
2 datafile 'g:\DB_file\hnkj.dbf'
3 size 10m
4 autoextend on
5 maxsize unlimited;
表空間已創(chuàng)建氯夷。
修改表空間
-
為表空間增加新的數(shù)據(jù)文件
SQL> alter tablespace hnkj
2 add datafile 'd:\db_file\hnkj_02.dbf'
3 size 10m;表空間已更改臣樱。
-
查詢數(shù)據(jù)文件信息
SQL> select file_id,file_name,bytes from dba_data_files;FILE_ID FILE_NAME BYTES
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF 5242880 3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF 104857600 2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF 534773760 1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF 713031680 5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF 104857600 6 D:\DB_FILE\HNKJ.DBF 10485760 7 D:\DB_FILE\HNKJ_02.DBF 10485760
已選擇7行。
-
修改數(shù)據(jù)文件大小
SQL> alter database datafile 'd:\db_file\hnkj_02.dbf' resize 5m;數(shù)據(jù)庫已更改腮考。
SQL> select file_id,file_name,bytes from dba_data_files;
FILE_ID FILE_NAME BYTES
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF 5242880 3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF 104857600 2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF 534773760 1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF 713031680 5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF 104857600 6 D:\DB_FILE\HNKJ.DBF 10485760 7 D:\DB_FILE\HNKJ_02.DBF 5242880
已選擇7行雇毫。
修改數(shù)據(jù)文件是自動(dòng)增長
SQL> alter database datafile 'D:\DB_FILE\HNKJ_02.DBF' autoextend on;
數(shù)據(jù)庫已更改。
SQL> select file_id,file_name,autoextensible from dba_data_files;
FILE_ID FILE_NAME AUT
---------- -------------------------------------------------- ---
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF YES
3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF YES
2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF YES
1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF YES
5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF YES
6 D:\DB_FILE\HNKJ.DBF YES
7 D:\DB_FILE\HNKJ_02.DBF YES
已選擇7行踩蔚。
修改表空間狀態(tài)
正常狀態(tài) : online(在線),read write(讀寫)
非正常狀態(tài) : offline(離線),read only(只讀)
移動(dòng)數(shù)據(jù)文件
1. 修改表空間狀態(tài)為offline狀態(tài),防止其他用戶操作
alter tablespace hnkj offline;
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
HNKJ OFFLINE
復(fù)制數(shù)據(jù)文件到另一個(gè)磁盤
-
使用 alter tablespace rename 語句修改數(shù)據(jù)文件名稱
SQL> alter tablespace hnkj 2 rename datafile 'd:\db_file\hnkj.dbf' 3 to 4 'd:\db\hnkj.dbf';
表空間已更改棚放。
SQL> alter tablespace hnkj
2 rename datafile 'd:\db_file\hnkj_02.dbf'
3 to
4 'd:\db\hnkj_02.dbf';
表空間已更改。
SQL> select file_id,file_name,bytes from dba_data_files;
FILE_ID FILE_NAME BYTES
---------- -------------------------------------------------- ----------
4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF 5242880
3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF 104857600
2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF 534773760
1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF 713031680
5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF 104857600
6 D:\DB\HNKJ.DBF
7 D:\DB\HNKJ_02.DBF
已選擇7行馅闽。
- 將表空間的狀態(tài)修改為onlin
SQL> alter tablespace hnkj online;
表空間已更改飘蚯。
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
HNKJ ONLINE
已選擇7行馍迄。
刪除表空間
drop tablespace tablespace_name [including contents] | [including contents and datafiles]
including contents : 表示刪除表空間,但是保留該表空間的數(shù)據(jù)文件(即使保留其數(shù)據(jù)文件,這些文件也無法使用)
including contents and datafiles : 刪除表空間,將內(nèi)容全部和數(shù)據(jù)文件全部刪除
SQL> drop tablespace hnkj including contents and datafiles;
表空間已刪除。
filename 字段最多允許占用50個(gè)字符
SQL> column file_name format a50
臨時(shí)表空間
臨時(shí)表空間主要用來為排序或者匯總等操作提供的臨時(shí)工作空間
create temporary tablespace temp
tempfile 'page.temp.dbf'
size 10m
autoentend on
next 10m maxsize 200m
臨時(shí)表空間用于存儲(chǔ)臨時(shí)數(shù)據(jù)局骤,不能夠存儲(chǔ)永久性數(shù)據(jù)
撤銷表空間
控制文件和日志文件
控制文件 柬姚,是一個(gè)很小的二進(jìn)制文件, 用于描述數(shù)據(jù)塊物理結(jié)構(gòu)庄涡,包括數(shù)據(jù)庫文件和日志文件的信息
1. 數(shù)據(jù)庫名和標(biāo)識(shí)
2. 數(shù)據(jù)庫創(chuàng)建的時(shí)間戳
3. 表空間的名稱
4. 數(shù)據(jù)文件和日志文件的位置
5. 當(dāng)前日志文件的序列號(hào)
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF
D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF
D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF
D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF
D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
D:\APP\LINNE\ORADATA\ORCL\REDO03.LOG
D:\APP\LINNE\ORADATA\ORCL\REDO02.LOG
D:\APP\LINNE\ORADATA\ORCL\REDO01.LOG
SQL> select name from v$controlfile
2 ;
NAME
--------------------------------------------------------------------------------
D:\APP\LINNE\ORADATA\ORCL\CONTROL01.CTL
D:\APP\LINNE\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL