表空间管理
表空间(TABLESPACE)管理
1 定义
表空间是⼀个逻辑概念,物理上对应⼀个或多个数据⽂件datafile或临时⽂件tempfiles,逻辑上表空间时存储段的容器(段也是逻辑概念,是数据库中的对象如表、索引等)
2 类型和管理⽅式
表空间类型:
① PERMANENT 永久表空间
② UNDO 撤销表空间
③ TEMPORARY 临时表空间
管理⽅式重点是段的管理⽅式和区的管理⽅式,是建⽴在表空间时确定的。
段管理⽅式有AUTO和MANUAL两种,区管理⽅式有本地管理和字典管理(已淘汰)两种。
2.1 查看表空间类型、段和区的管理⽅式
select tablespace_name,contents,segment_space_management,extent_management from dba_tablespaces;
查看所有的表空间
select*from v$tablespace;
2.2 查看表空间(数据⽂件)⼤⼩、是否⾃动扩展
col file_name for a45
col tablespace_name for a10
select file_id,file_name,tablespace_name,bytes/1024/1024 M,status,AUTOEXTENSIBLE from dba_data_files order by1;
2.3 查看表空间总⼤⼩
⼀个表空间可能会对应多个数据⽂件
select tablespace_name,sum(bytes)/1024/1024 M from dba_data_files group by tablespace_name;
2.4 查看表空间空闲⼤⼩
select tablespace_name,sum(bytes)/1024/1024 M from dba_free_space group by tablespace_name;
3 基本操作
3.1 small表空间扩展
表空间的⼤⼩等同于它的所有数据⽂件件⼤⼩之和,默认使⽤small表空间,当发⽣表空间不⾜的问题时
常⽤的3个解决⽅法:
①增加原有的数据⽂件⼤⼩(resize)
②增加数据⽂件(add datafile)
③设置表空间⾃动增长(autoextend on)
3.1.1 创建small表空间
语法:create tablespace 表空间名 datafile '路径/数据⽂件名.dbf' size ⼤⼩(M);
create tablespace demo datafile '/u01/oradata/orcl/demo01.dbf' size 5M;
3.1.2 创建表并指定所要使⽤的表空间
语法:create table 表名(字段1 数据类型,字段2 数据类型) tablespace 表空间名;
create table demo_f(id number,name varchar2(10)) tablespace demo;
3.1.3 resize 增加原有的数据⽂件⼤⼩
语法:alter database datafile 数据⽂件的file_id resize ⼤⼩(M);
alter database datafile 5 resize 10M;
3.1.4 add datafile增加数据⽂件
语法:alter tablespace 表空间名 add datafile '路径/数据⽂件名.dbf' size ⼤⼩(M);
alter tablespace demo add datafile '/u01/oradata/orcl/demo02.dbf' size 10M;
3.1.5 autoextend on设置表空间⾃动增长
语法:alter database datafile 数据⽂件的file_id autoextend on next 下次⾃动增长多少M maxsize 最⼤多少M; alter database datafile 5 autoextend on next 10M maxsize 500M;
3.1.6 数据⽂件移动或改名
drop删除表可以将⼀个在线呢数据⽂件从⼀种存储系统移动或改名到另⼀个存储系统
⽐如:本地系统⽂件--->ASM共享存储
ASM共享存储--->本地系统⽂件
当⼀个数据⽂件正在进⾏移动的时候,可以执⾏查询、DML、DDL操作,包括如下:查询语句,创建表和索引,重建索引。在移动数据⽂件到另⼀个位置或存储系统时,不⼀定要关闭数据库或者将数据⽂件设置为离线状态
注:被移动的数据⽂件的对象时压缩状态时,压缩状态不变
3.1.3.1 数据⽂件迁移路径
语法:alter database move datafile '/disk1/example01.dbf' to '/disk2/example01.dbf';
3.1.3.2 从本地系统⽂件迁移到ASM共享存储
语法:alter database move datafile '/disk1/example01.dbf' to '+DISKGROUP' KEEP;
3.1.3.3 数据⽂件重命名
语法:alter database move datafile '/disk1/example1.dbf' to '/disk1/example01.dbf';
3.2 ⼤⽂件bigfile的表空间
3.2.1 建⽴⼤⽂件表空间
smallfile:在⼀个表空间可以建⽴多个数据⽂件(默认),不⽀持32G以上
bigfile:在⼀个表空间只能建⽴⼀个数据⽂件(8K的block时,最⼤可达32T)简化数据⽂件管理语法:
create tablespace 表空间名 datafile '路径/数据⽂件名.dbf' size ⼤⼩(M);
create bigfile tablespace 表空间名 datafile '路径/数据⽂件名.dbf' size ⼤⼩(M);
create bigfile tablespace demo02 datafile '/u01/oradata/orcl/bigfile01.dbf' size 500M;
3.2.2 查看⼤⽂件表空间
select name,bigfile from v$tablespace;
3.3 删除表空间
语法:drop tablespace 表空间名 including contents and datafiles;
(contents包括控制⽂件和数据字典信息,datafiles时物理数据⽂件)
drop tablespace demo02 including contents and datafiles;
3.4 查看默认表空间、临时默认表空间
col property_name for a30
col property_value for a60
select property_name,property_value from database_properties where property_name like'%DEFAULT%';
3.5 临时表空间
3.5.1 ⽤途
⽤于缓存排序的数据(中间结果)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论