oracle表空间的管理

本文详细介绍了Oracle数据库中的各种表空间,包括系统表空间、临时表空间、重做表空间和用户表空间,以及如何创建、管理、扩展和删除表空间。还提供了相关的SQL查询语句来查看表空间的状态和使用情况。此外,讨论了默认表空间的设置和调整,对于数据库管理员来说是重要的参考资源。
摘要由CSDN通过智能技术生成

名称

分类

说明

EXAMPLE

非系统表空间

示例表空间,存放示例数据库的方案对象信息及其培训资料

SYSAUX

系统表空间

辅助系统表空间,用于减少system表空间的负荷,提高系统的工作效率。是oracle 10g新增加的表空间

SYSTEM

系统表空间

系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,存放着方案对象(如表,索引,同义词,序列)的定义信息,存放着所有pl/sql 程序(如过程,函数,包,触发器)的源代码, 是oracle数据库中最重要的表空间。它属于SYS和SYSTEM方案,仅被SYS和SYSTEM或其他具有足够权限的用户使用。即使是SYS 和SYSTEM用户也不能删除或重命名该空间。他是用户的默认表空间,即当用户在创建一个对象时,如果没有指定特定的表空间,该对象的数据也会被保存在 SYSTEM表空间中。

TEMP

系统表空间

临时表空间,存放临时表和临时数据,用于排序。每个数据库都应该有一个(或创建一个)临时表空间,以便在创建用户时将其分配给用户,否则就会将TEMP表空间作为临时表空间。

UNDOTBS1

非系统表空间

重做表空间,存放数据库的有关重做的相关信息和数据

USERS

非系统表空间

用户表空间, 存放永久性的用户对象的数据和私有信息,因此也被称为数据表空间。每个数据库都应该有一个(或创建一个)用户表空间,以便在创建用户时将其分配给用户,否 则将会使用SYSTEM表空间来保存数据,而这种做法是不好的。一般讲,系统用户使用SYSTEM表空间,而非系统用户使用USERS表空间

 

默认的表空间

system,sysaux,temp,undotbsl,user

查看数据库的表空间

select tablespace_name from dba_tablespaces;

查看表空间数据文件路径

select * from dba_data_files

1、创建表空间

语法:create tablespace 表间名   datafile '数据文件名' size 表空间大小......

create temporary(临时表空间)tempfile '数据文件名' size 表空间大小......

创建数据表空间   

 create tablespace  text_temp     datafile '/oracle/oradata/DATAFILE/text_temp.dbf' (路径根据实际配置修改)

    size 4096M       autoextend on   next 50M  ---自动扩展为50M     

maxsize unlimited  ---大小不受限制

创建临时表空间     

create temporary tablespace text_temp       tempfile '/oracle/oradata/DATAFILE/text_temp01.dbf' size 800M  

    autoextend on   next 50M   ---自动扩展为50M     maxsize 1000M

2、表空间管理 

1、增加新的数据文件来增加表空间大小:

alter tablespace text_temp add   datafile '/oracle/oradata/DATAFILE/text_temp02.dbf' size 2048M   autoextend on next 50M   maxsize unlimited;

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;               ---autoextend off

设置默认表空间

alter database default temporary tablespace myspace; --修改默认的临时表空间为myspace

alter database default tablespace myspace; --修改默认的普通表空间为myspace

select default_tablespace from user_users;  --查询当前用户的默认表空间

Select a.property_name,a.property_value from database_properties a where a.property_name like ‘%DEFAULT%’;--查询默认表空间和临时表空间

3、删除表空间

drop tablespace tablespace_name including contents and datafiles; ---删除表空间连视图等对象一起删除并将数据文件一起删除

4、查看表空间的名称及大小    

select t.tablespace_name, round(sum(bytes/(1024*1024*1024)),0) ts_size     from dba_tablespaces t, dba_data_files d     where t.tablespace_name = d.tablespace_name     group by t.tablespace_name;

5、查看表空间物理文件的名称及大小    

select tablespace_name, file_id, file_name,      round(bytes/(1024*1024*1024),0) total_space      from dba_data_files  order by tablespace_name;

6、查看表空间的使用情况

SELECT Upper(F.TABLESPACE_NAME)     "表空间名",      

 D.TOT_GROOTTE_MB      "表空间大小(M)",    

D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",      

 To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')        || '%'      "使用比",    

   F.TOTAL_BYTES      "空闲空间(M)",  

 F.MAX_BYTES   "最大块(M)" FROM   (SELECT TABLESPACE_NAME,        

   Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,          

 Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES         FROM   SYS.DBA_FREE_SPACE         GROUP  BY TABLESPACE_NAME) F,    

 (SELECT DD.TABLESPACE_NAME,     Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB         FROM   SYS.DBA_DATA_FILES DD         GROUP  BY DD.TABLESPACE_NAME) D WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER  BY 1

希望这次分享对大家有帮助,在下文凯,感谢老铁的三连,术之尽头,一零化流。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值