Oracle表空间

Oracle表空间

Oracle体系结构:
一台计算机:一个数据库
一个数据库:可以有多个实例,但是一般只有一个实例
一个实例:  多个表空间, 多个用户
一个表空间:多个数据文件[dbf,ora]组成;可以有多个用户
一个用户: 从属于一个表空间

表空间

表空间其实就是用来保存用户数据的地方。
--在Oracle数据库中,每一个用户都自己的一个默认的表空间。
--管理员创建用户的时候,就会给该用户指定一个默认的表空间。
--创建表空间需要管理员dba的权限

表空间只是存储用户数据的逻辑单元。
--一个表空间包含许多的数据文件,这些数据文件才是保存用户数据的物理单元。

--所有用户的数据都是保存在以.dbf结尾的文件里面。
--用户只会与表空间打交道,而不会直接与数据文件打交道。
--也就是说,用户数据保存在哪个数据文件里面对于用户来说是不透明的。

--在MySQL数据库中,不同的项目会创建不同的数据库。
--但是Oracle数据库与MySQL数据库不一样。

在Oracle中只会创建一个数据库(例如:ORCL)。
--所有项目的数据都可以保存在该数据库里面。
--Oracle数据库是根据用户区分不同项目的数据.

因为管理员创建用户的时候,就会为该用户指定一个默认的表空间。
所以,就必须要先有表空间,然后再有用户。

表空间的分类

1)临时表空间:保存一些临时数据,例如:子查询;(Oracle自动维护)

2)撤销表空间:保存一些修改前但未提交的数据。
当用户修改数据的时候,Oracle数据库就会把修改前的数据保存在撤销表空间里面。
如果用户执行了提交事务操作的时候,那么Oracle就会把撤销表空间的数据删除;
如果用户执行了事务回滚操作,那么Oracle就会把撤销表空间的数据恢复回来;(Oracle自动维护)

3)永久表空间:永久保存用户的数据。(需要用户自己维护)

创建表空间

create tablespace 表空间名
datafile ‘数据文件绝对路径’ 
size n  --数据文件的默认大小
[autoextend on|off]         --指定是否可以扩展大小, on: 可以扩展,off: 不可以扩展
[next n]        --每次扩展的大小
[maxsize n];         --最大容量 
--创建表空间
create tablespace test01
datafile 'c:\test01.dbf'
size 500m
autoextend on
next 300m;

查询表空间

dba_data_files:保存所有表空间以及数据文件的信息。
--查询所有表空间名字和数据文件位置
select tablespace_name ,file_name
from dba_data_files;

扩展表空间

扩展表空间有两种方式:
--方式一:修改数据文件的大小;
--方式二:往表空间添加新的数据文件;(推荐)
--添加数据文件的格式:
alter tablespace 表空间名
add datafile ‘数据文件’ 
size 默认大小
[autoextend on|off] –指定是否可以扩展大小
[next n] –每次扩展的大小
[maxsize n];  --最大容量 
--添加数据文件
alter tablespace test01
datafile 'c:\test02.dbf'
size 500m
autoextend on
next 300m;

删除表空间

drop tablespace 表空间 
[including contents and datafiles];
--如果表空间里面保存用户的数据,
--那么删除表空间的时候就必须要指定including contents and datafiles参数,否则会删除失败.
--指定该参数的时候,那么删除表空间就会同时把表空间里面的数据,以及数据文件一起删除。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值