Oracle中的表空间

一、表空间和表概述
ORACLE物理上是由磁盘上的以下几种文件:数据文件控制文件LOGFILE构成的
oracle中的表就是一张存储数据的表。表空间是逻辑上的划分,方便管理的。
数据表空间(Tablespace):存放数据总是需要空间,Oracle把一个数据库按功能划分若干空间来保存数据。当然数据存放在磁盘最终是以文件形式,所以一盘一个数据表空间包含一个以上的物理文件。
数据表:在仓库,我们可能有多间房子,每个房子又有多个货架,每架又有多层。 我们在数据库中存放数据,最终是数据表的单元来存储与管理的。
数据文件:以上几个概念都是逻辑上的,而数据文件则是物理上的。就是说,数据文件是真正“看得着的东西”,它在磁盘上以一个真实的文件体现。

创建表空间和表的步骤:
(1)、创建表空间:
格式: create tablespace 表空间名 datafile '数据文件名' size 表空间大小
如:
create tablespace data_test datafile 'e:oracleoradata estdata_1.dbf' size 2000M;
create tablespace idx_test datafile 'e:oracleoradata estidx_1.dbf' size 2000M;
--数据文件名 包含全路径, 表空间大小2000M表是2000兆
(2)、建好tablespace, 就可以建用户了
格式: create user 用户名 identified by 密码 default tablespace 表空间名
如:
create user study identified by study default tablespace data_test;
--我们创建一个用户名为 study,密码为 study, 缺省表空间为 data_test
--缺省表空间表示用户study今后的数据如果没有专门指出,其数据就保存在 data_test中,也就是保存在对应的物理文件 e:oracleoradata estdata_1.dbf中

创建用户并指定表空间
CREATE USER cici IDENTIFIED BY cici
PROFILE DEFAULT
DEFAULT TABLESPACE CICI ACCOUNT UNLOCK;

create user jykl identified by jykl
default tablespace jykl_data
temporary tablespace jykl_temp;

授权给新用户
GRANT connect, resource TO cici;
grant create session to cici;
(3)、授权给新用户
grant connect,resource to study;
--表示把 connect,resource权限授予study用户
grant dba to study;
--表示把 dba权限授予给 study
(4)、创建数据表
在上面,我们已建好了用户 study 我们现在进入该用户
sqlplusw study/study@test 然后就可以在用户study中创建数据表了
格式: create table 数据表名

二、表空间详解
1、建立表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k
2、建立UNDO表空间
CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M
#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间:
ALTER SYSTEM SET undo_tablespace=UNDOTBS02;
3、建立临时表空间
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M
4、改变表空间状态
(1)使表空间脱机
ALTER TABLESPACE game OFFLINE;
如果是意外删除了数据文件,则必须带有RECOVER选项:
ALTER TABLESPACE game OFFLINE FOR RECOVER;
(2)使表空间联机
ALTER TABLESPACE game ONLINE;
(3)使数据文件脱机
ALTER DATABASE DATAFILE 3 OFFLINE;
(4)使数据文件联机
ALTER DATABASE DATAFILE 3 ONLINE;
(5)使表空间只读
ALTER TABLESPACE game READ ONLY;
(6)使表空间可读写
ALTER TABLESPACE game READ WRITE;
5、删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
6、扩展表空间
(1)首先查看表空间的名字和所属文件
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
(2)表空间扩容
方法1:增加数据文件
ALTER TABLESPACE game
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;
方法2:手动增加数据文件尺寸:
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
RESIZE 4000M;
方法3:设定数据文件自动扩展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
AUTOEXTEND ON NEXT 100M
MAXSIZE 10000M;
(3)设定后查看表空间信息
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE

转自:https://www.cnblogs.com/kkxwze/articles/10794544.html

原文地址:https://www.cnblogs.com/shujk/p/12493493.html