ORACLE表空间是一个逻辑分区,一个数据文件只能属于一个表空间,一个表空间可以拥有多个数据文件。

一般情况下,如果一个实例分配给多个应用使用,需要创建不同的表空间,每个用户使用自己的表空间。

一、表空间的创建与授权

首先查看表空间的使用情况:

select tablespace_name,sum(bytes)// as MB from dba_data_files group by tablespace_name;

---剩余容量(在固定大小的情况下)
select tablespace_name, count(*) as extends, round(sum(bytes) / / , ) as MB, sum(blocks) as blocks from dba_free_space group by tablespace_name; --查看表空间与数据文件对应关系
select tablespace_name, file_name, bytes/1024/1024 from dba_data_files; --查询表空间存放的对象及其拥有者
 select distinct segment_type, owner, tablespace_name from dba_segments where tablespace_name='SC';

1. 创建表空间

create tablespace you_tabs_name datafile  '/opt/oracle/oradata/orcl/ts_01.dbf' size 50m autoextend on;

2. 创建临时表空间(一般用于数据查询时排序操作,在数据量较大内存不足时)

SQL> create temporary tablespace temp2 tempfile '/opt/oracle/oradata/temp02.dbf' size 100m autoextend on;
--可以为新创建的表空间增加数据文件
SQL> alter tablespace temp2 add tempfile '/opt/oracle/oradata/temp03.dbf' size 100m ;

3. 创建一个用户指定默认表空间和临时表空间

create user youuname identified by “yourpwd” default tablespace ts_01 temporary tablespace temp2 profile default quota unlimited on ts_01

4. 创建完成后可查询某个用户的默认表空间

select default_tablespace, temporary_tablespace, d.username  from dba_users d where d.username='SCOTT';

5.如果用户已经创建,可以授权新的表空间给用户使用

alter user uname quota unlimited on  ts_01;
alter user scott default tablespace ts_01; -- 更改用户的默认表空间

6. 当一个表空间不再使用时,可对该表空间下的数据文件离线(离线前千万别在操作系统层删除数据文件)

alter database datafile '/opt/oracle/oradata/orcl/ts_01.dbf' offline;

7. 设置表空间为只读,用于备份和恢复

表空间只读状态下,不能进行insert,update,delete,但可以删除索引和目录。
必须满足以下条件:
() 必须为online
() 不能包含任何回滚段
() 表空间不能在归档模式或数据发行中
SQL>alter tablespace tablespace_name read only;
恢复读写状态
SQL>alter tablespace tablespace_name read write;

8. 重命名表空间

更变名称后,原表空间存放的对象也同时更变,包括用户对于这表空间的权限也同步更改
条件:
() 只能对一般表空间更名,不能更变system,sysaux更名
() 必须处于online状态
SQL>alter tablespace old_name rename to new_name;

二、临时表空间操作

临时表空间一般用于数据量比较大的查询结果中排序操作(当可使用内存比较小的情况下):

1. 查看目前现有的临时表空间

SQL> select tablespace_name,file_name,bytes// file_size,autoextensible from dba_temp_files;
SQL> select name,bytes/1024/1024 from v$tempfile;

2. 创建临时表空间和更改一个用户临时表空间

SQL> create temporary tablespace temp2 tempfile '/opt/oracle/oradata/temp02.dbf' size 100m autoextend on;
--可以为新创建的表空间增加数据文件
SQL> alter tablespace temp2 add tempfile '/opt/oracle/oradata/temp03.dbf' size 100m ; --更改用户临时表空间

SQL> alter user scott temporary tablespace temp1;

 

3. 可修改数据库管理默认使用的临时表空间

SQL> alter database default temporary tablespace temp1;

4. 如果一个临时表空间没有用户在使用时,可删除

SQL> drop tablespace temp;
然后再通过操作系统命令删除数据文件即可

5. 更改表空间大小或设置自动扩展

alter database tempfile '/opt/oracle/oradata/orcl/sc_temp_01.dbf' resize 50M;
alter database tempfile 'opt/oracle/oradata/oracle/sc_temp_01.dbf' autoextend on next 3M maxsize unlimited;

6. 删除一个数据文件

alter database tempfile '/opt/oracle/oradata/orcl/sc_temp_01.dbf' offline;//先把文件离线
alter database tempfile '/opt/oracle/oradata/orcl/sc_temp_01.dbf' drop; --彻底删除一个临时表空间,谨慎使用
drop tablespace temp1 including contents and datafiles

三、UNDO表空间

undo表空间作用:回退事务,读一致性,事务恢复(断电,内存故障,后台进程故障等),闪回操作,UNDO 不属于任何用户,由库公用,默认是自动增长的,直至耗完磁盘.

--显示正在使用的undo表空间
show parameter undo_tablespace; --查询所有undo表空间
select tablespace_name from dba_tablespaces where contents='UNDO';

1 .创建UNDO表空间,这里设置固定大小2G

SQL>create undo tablespace undotbs02 datafile '/xx/xxx/' size 2G;

2. UNDO表空间离线和删除

SQL>alter system set undo_tablespace=undotbs02;
SQL>alter tablespace tablespace_name offline;
SQL>drop tablespace undotbs02;

离线时,必须要有替代的undo表空间。若某个事务正在使用,则还不能离线,查询SQL如下:

SQL>SELECT SEGMENT_NAME, XACTS, V.STATUS FROM V$ROLLSTAT V, DBA_ROLLBACK_SEGS WHERE TABLESPACE_NAME = 'undotbs02' AND SEGMENT_ID = USN; 

当没有数据行时才可以离线,如果有数据行,可查看是否有事务在进行: 
SELECT S.SID, S.SERIAL#, S.USERNAME, R.NAME "ROLLBACK" FROM V$SESSION S, V$TRANSACTION T, V$ROLLNAME R WHERE S.TADDR = T.ADDR AND T.XIDUSN = R.USN;

ORACLE - 管理表空间和数据文件的更多相关文章

  1. Oracle管理表空间和数据文件详解

    介绍 表空间是数据库的逻辑组成部分 从物理上将:数据库数据存放在数据文件中 从逻辑上将:数据库则是存放在表空间中 表空间由一个或是多个数据文件组成 数据库的逻辑结构 介绍: Oracle中逻辑结构包括 ...

  2. 管理表空间和数据文件<六>

    数据库管理 -- 管理表空间和数据文件  介绍 表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库则是存放在表空间中,表 空间由一个或多个数据文件组成. 数据库 ...

  3. Oracle数据库表空间与数据文件的关系描述正确的是( )

    Oracle数据库表空间与数据文件的关系描述正确的是( ) A.一个表空间只能对应一个数据文件 B.一个表空间可以对应多个数据文件 C.一个数据文件可以对应多个表空间 D.表空间与数据文件没任何对应关 ...

  4. 十四、oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  5. oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  6. Oracle的表空间和数据文件

    一. 概念 表空间:是一个或多个数据文件的逻辑集合 表空间逻辑存储对象: 永久段-->如表与索引 临时段-->如临时表数据与排序段 回滚段-->用于事物回滚或闪回内存的撤销数据 表空 ...

  7. oracle维护表空间和数据文件

    1:重要参考 wiki 2: oracle doc 表空间参考 3:来自dba-oracle的参考 26,27,28,29 一:oracle 表空间概念 表空间是联系数据库的物理磁盘(数据文件)和逻辑 ...

  8. Oracle的表空间、数据文件、用户

          每一个Oracle数据库都是由三种类型的文件组成:数据文件(Data File).日志文件(Log File)和控制文件(Control File).数据库的文件为数据库信息提供真正的物理 ...

  9. Oracle 为表空间增加数据文件

    dba权限检查下 select tablespace_name, file_id, file_name, ),) total_space from dba_data_files order by ta ...

随机推荐

  1. C++获取系统当前时间

    1.利用系统函数,不仅可以查看系统时间,而且还能修改系统时间 #include<stdlib.h> #include<iostream> using namespace std ...

  2. javascript基础数据类型与引用类型

    javascript一共有6种数据类型 有5种基本类型:Null,String Number,Boolean,Undefined 和一种引用类型Object 基础类型在内存中存在于栈空间中,例如 va ...

  3. MongoDB--数据库管理

    <strong>1.mongod 启动项注释(默认不能生成路径,需手动建立)</strong><br /><span style="white-sp ...

  4. CSS3学习系列之盒样式(一)

    盒的基本类型 在css中,使用display属性来定义盒的类型,总体上来说,css中的盒分为block类型与inline类型 inline-block类型 inline-block类型是在css2.1 ...

  5. jsp图片上传

    1.要实现图片上传,首先需要一个组件,这里我用的是smartupload.jar可以到这里下载http://download.csdn.net/detail/mengdecike/8279247 2. ...

  6. centos yum 没有可用软件包 nginx。

    新装的centos7中没有nginx的镜像源 因为nginx位于第三方的yum源里面,而不在centos官方yum源里面 解决方案: 安装epel: 去epel官网: http://fedorapro ...

  7. php测试题

    1. LAMP具体结构不包含下面哪种(A) A:Windows系统 B:Apache服务器 C:MySQL数据库 D:PHP语言 2. 以下哪个SQL语句是正确的(D) A:insert into u ...

  8. 在suse上折腾iptables

    需求背景:有台服务器希望屏蔽掉某IP对它的SSH连接. 临时客串下DevOps,下面的做法可能在专业运维的同学里不太专业,还请指教. 该服务器的操作系统是SuSE Linux,服务器上是安装了ipta ...

  9. VB6之扫雷克星

    很久之前,那时候我还不太会玩(现在也不厉害)扫雷这个游戏,同学总在我面前炫耀自己的技术有多叼.“高级,99颗雷,只需三分钟...”,如此这般.也许确实需要天赋,我总要排查个半天才敢点下左键,然后就BO ...

  10. 第二章:2.8 通过Django 在web页面上面输出 “Hello word ”

    1. 第一步:配置 guest 目录下面的 settings.py 文件, 将 sign应用添加到 guest项目中. 2. 在 guest目录下面,打开 urls.py 文件,添加 要打开的路由文件 ...