oracle修改表空间大小resize
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle修改表空间大小resize相关的知识,希望对你有一定的参考价值。
原来表空间是1000M,执行以下语句后,表空间是多大了,是1500M 还是2500M?
alter database datafile 'g:\tablespace\pegnius01.dbf' resize 1500M;
可以查到
SELECT tablespace_name 表空间,sum(blocks*8/1024) 剩余空间M FROM dba_free_space GROUP BY tablespace_name;追问
这样查出来的是表空间剩余的大小吗?我执行了:
alter database datafile 'g:\tablespace\pegnius01.dbf' resize 1500M;
SELECT tablespace_name PGENIUS,sum(blocks*8/1024) FROM dba_free_space GROUP BY tablespace_name; 再查询到3045.1875 。
这是剩余的空间大小吗,可我一直在执行导数据,而且数据量很大。
你看你的数据文件自动扩展的maxsize是多少,不要管你的剩余空间大小。追问
3.02G
追答那你还想知道什么呢
追问我想知道这3.02G是不是写满了
追答SELECT tablespace_name PGENIUS,sum(blocks*8/1024) FROM dba_free_space GROUP BY tablespace_name; 再查询到3045.1875 。
你不都查到了吗
select s.tablespace_name,
round(sum(s.bytes / 1024 / 1024), 2) as Space,
round((sum(s.bytes / 1024 / 1024) - nvl(d.fr,0)), 2) used,
nvl(round(d.fr, 2),0) free,
decode(round(sum(s.maxbytes / 1024 / 1024 / 1024), 2),0,'NO','YES') auto_extend,
round(sum(s.maxbytes / 1024 / 1024 / 1024), 2) MaximumGB
from dba_data_files s,
(select c.tablespace_name,
round(sum(c.bytes / 1024 / 1024), 2) fr
from dba_free_space c
group by c.tablespace_name) d
where s.tablespace_name = d.tablespace_name(+)
group by s.tablespace_name,d.fr
order by s.tablespace_name
这个可以看到你的表空间利用率
Oracle-表空间管理
万般皆下品、惟有读书高
文章目录
- 1、设置默认表空间
- 2、重命名表空间
- 3、修改表空间的状态
- 4、修改表空间对应数据文件的大小
- 5、增加表空间的数据文件
- 6、删除表空间的数据文件
- 7、修改数据文件为自动扩展
- 8、修改数据文件的名称或位置
- 9、表空间的备份
- 10、删除表空间
一、表空间概述
为了便于对数据库进行管理和优化,oracle数据库被划分成许多表空间的逻辑区域,一个oracle数据库有一个或者多个表空间,而一个表空间则对应一个或者多个物理上的数据库文件。表空间和数据文件紧密相连,相互依存,在创建表空间的同时要创建数据文件,同理,增加数据文件的同时也要指定表空间。数据库在物理上由数据文件大小和数量决定,在逻辑上由表空间大小和数量决定。
表空间是数据管理的基本方法,所有用户对象都放在表空间中,即用户有空间的使用权才能创建用户对象,否则不允许创建对象。在创建表空间的同时,需要合理规划表空间的存储设置,分配适当大小的存储空间。
1、表空间的属性
1、类型
2、管理方式
3、区分配方式
4、段管理方式
2、表空间的类型
1、永久性表空间
系统表空间和普通用户使用的表空间默认都是永久性表空间。
2、临时表空间
一般用来存放sql语句处理的表和索引信息,其空间不存放实际的数据。
3、撤销表空间
此类型主要用于事务回滚,提供读一致性。数据库可以同时存在多个撤下表空间,但任一时间只有一个撤销表空间可以被激活。
4、大文件表空间
大文件表空间存放一个单一的数据文件中,单个数据文件最大可达128TB。
3、表空间的状态
1、联机状态
数据只有处于联机状态,才能访问其中的数据。
2、读写状态
默认情况下所有的表空间都是读写状态,具有适当权限的用户可以读写该表空间的数据。
3、只读状态
表空间为只读状态是指用户只能读表空间中数据,不能修改表空间的数据。
4、脱机状态
如果某个表空间设置为脱机转态,是指用户暂时不能访问该表空间。
二、表空间的创建
在实际数据库表空间管理中,可以根据具体应用情况,建立不同类型的表空间,例如用于专门存放表数据的表空间,专门存放索引的表空间等。
1、表空间的创建语法
create tablespace tablespace_name
datafile file_name datafile_options
storage_options
其中:tablespace_name为要创建的表空间名称,file_name为对应的数据文件名称,datafile_options是数据文件选项,Storage_options是存储结构选项。
2、创建一个永久性的表空间,设置表空间的初始大小为100MB,自动扩展为100MB,无最大大小限制,并且该表空间为在线状态,产生日志
create tablespace tspace 1 datafile c:\\oracle\\tspace1.dbf size 100m
autoextend on next 100m maxsize unlimited logging online permanent;
三、表空间维护
1、设置默认表空间
创建一个新用户,如果不指定表空间,则默认的永久表空间是system,默认的临时表空间是temp,这样如果存在多个用户,那么各个用户都要竞争使用system和temp表空间,会大大影响oracle系统的效率,数据库管理员可以修改默认永久表空间和临时表空间,基本语法如下所示。
alter database default [temporary]
案例:把临时表空间tspace4修改为默认临时表空间
alter database default temporary tablespace tspace4;
案例:把tspace3修改为默认永久表空间。
alter database default tablespace tspace3;
2、重命名表空间
案例:将表空间tspace3修改为tspace3_1
alter tablespace tspace3 renatspaceme to tspace3_1;
3、修改表空间的状态
修改tspace为联机状态
alter tablespace tspace online;
设置表空间tspace为脱机状态
alter tablespace tspace offline;
设置表空间tspace为只读状态
alter tablespace tspace read only;
设置表空间tspace为读写状态。
alter tablespace tspace read write;
4、修改表空间对应数据文件的大小
语法如下
alter database datafile 数据文件 resize 新文件大小
修改表空间tspace7对应的其中一个数据文件大小
alter database datafile c:\\oracle\\tspace7_1.dbf resize 100MB;
5、增加表空间的数据文件
alter tablespace 表空间名称 add datafile 数据文件 size 文件大小;
6、删除表空间的数据文件
alter tablespace 表空间名称 drop datafile 数据文件名称;
7、修改数据文件为自动扩展
将表空间tspace7的数据文件设置为自动扩展
alter database datafile c:\\oracle\\tspace7_3.dbf autoextend on next 10MB;
8、修改数据文件的名称或位置
alter tablespace 表空间名称 rename datafile 数据文件名称 to 新数据文件名称
9、表空间的备份
alter tablespace tspace 1 begin backup;
10、删除表空间
drop tablespace tspace7;
四、表空间查询
查询表空间的名称、区的管理方式、段的管理方式和表空间类型等信息。
select tablespace_name,extent_management,allocation_type,contents from dba_tablespaces;
查看表空间的名字、所属文件和空间大小
select tablespace_name,file_name,round(bytes/(1024*1024),0) total_space from dba_data_files;
五、总结
这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。
文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。
以上是关于oracle修改表空间大小resize的主要内容,如果未能解决你的问题,请参考以下文章