表空间和数据文件

oracle存储数据逻辑上在表空间 物理上在数据文件;

逻辑上 数据库-》表空间-》段(如:表、索引)-》区(连续块,不能跨datafile)-》块
物理上 数据文件-》OS块     
块对应多个OS块
表空间由一个和多个数据文件组成

表空间:
同一时刻只能属于一个database
由一个或多个data files组成
是逻辑存储单元更深层次的分隔

数据文件:
数据文件只能属于一个表空间和一个database
是一个schema object data仓库(schema在oracle中相当于一个用户对象,schema名为用户名)

表空间的管理分类
dictionary-managed(9i之后的版本已摒弃)
locally managed

表空间分类
permanent(永久的)
undo
temporary(如查询大量数据的“排序”操作时)
查看分类信息
select tablespace_name,contents,extent_management from dba_tablespaces;

默认临时表空间
注:数据库默认把SYSTEM表空间当作default temporary tablespace
解决方法:
1.在create database的时候指定
2.alter database default temporary tablespace xxwz_temp;
查看default temporary tablespace命令
select * from database_properties;

表空间的只读模式
alter tablespace xxwz_data read only
这个操作会引发checkpoint,可以drop某张表,不能truncate(清空表的记录)表

查看表空间
v$tablespace(表空间数量名字)
v$datafile(数据文件)
v$tempfile
dba_tablespaces
dba_data_files(表空间对应的数据文件位置)
dba_temp_files(临时表空间对应的数据文件位置)

创建表空间
create tablespace|temporary tablespace MOF_TEMP
datafile|tempfile 'D:/oracle/product/10.2.0/oradata/orcl/MOF_TEMP.def' size 500M
autoextend on next 10M maxsize unlimited logging
extent management local autoallocate|UNIFORM size 128k
segment space management auto;
1) DATAFILE: 表空间数据文件存放路径
2) SIZE: 起初设置为200M
3) UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k
4) 空间名称MOF_TEMP与 数据文件名称 MOF_TEMP.dbf 不要求相同,可随意命名.
5) AUTOEXTEND ON/OFF 表示启动/停止自动扩展表空间
6) logging表示写redo,默认为logging

TIP:在导大量数据时可管理logging,原来几小时的导入时间可瞬间缩短为几分钟

表空间在线离线
alter tablespace xxwz_data online
alter tablespace xxwz_data offline normal;

表空间增大变小3种方法
1.自动扩容
查看是否自动扩容
select file_name,autoextensible from dba_data_files;
修改自动扩容状态
alter database datafile 'd:/oracle_xxwz/xxwz_data.dbf'
autoextend on next 10M maxsize 500m|UNLIMITED;
增加自动扩容数据文件
(1)在create database时
(2)在create tablespace时
create tablespace xxwz_data
datafile 'd:/oracle_xxwz/xxwz_data.dbf' size 500M
autoextend on next 10M maxsize 500m|UNLIMITED;
(3)增加新的数据文件到表空间
alter tablespace xxwz_data add datafile
'd:/oracle_xxwz/xxwz_data.dbf' size 500M
autoextend on next 10M maxsize 500m|UNLIMITED;

2.手动扩容
alter database datafile 'd:/oracle_xxwz/xxwz_data.dbf' resize 600M

3.给表空间加数据文件
alter tablespace xxwz_data add datafile
'd:/oracle_xxwz/xxwz_data.dbf' size 500M
autoextend on next 10M maxsize 500m|UNLIMITED;

当表空间的数据文件移动时:
1.表空间offline
2、拷贝数据文件到指定位置
3.alter tablespace xxw_data rename
datafile 'd:/oracle_xxwz/xxwz_data.dbf' to
'd:/xxwz_data.dbf';
或者
1、关闭数据库
2、移动数据文件
3.startup mount
4.alter database rename
file 'd:/oracle_xxwz/xxwz_data.dbf' to
'd:/xxwz_data.dbf';
5.alter database open;

删除表空间
DROP TABLESPACE XXWZ_DATA INCLUDING CONTENTS AND DATAFILES;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值