`
秋天的童话穷
  • 浏览: 78663 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracel逻辑结构—表空间

 
阅读更多

Tablespace:表空间是一个逻辑的概念,是数据文件( datafile )的容器,是数据文件在数据库中逻辑的组织形式。而数据文件真实的存在于操作系统之上 , 也可以是裸设备( ASM )。

 

常见的表空间有:

1、 system系统表空间

数据库创建时就创建,必须包含,存放数据库基本组件信息 比如基表。主要存储的是基表和数据字典,其实大家在对表、索引等数据库对象修改结构时都是在操作system 表空间里的表。如 alter 语句;

 

2、 sysaux辅助表空间

10G引入  system 太大了 . 就将部分功能组件(如 sqlplus 的工具)取出放到 sysaux 里, 属于SYSTEM 表空间的辅助表空间,独立出来的好处, SYSTEM 表空间的负荷得以减轻 . ,反复创建一些相关对象及组件引起 SYSTEM 表空间的碎片问题得以避免。

查看sysaux 表空间内的组件信息和大小

Select OCCUPANT_NAME,SPACE_USAGE_KBYTES from V$SYSAUX_OCCUPANTS;

 

3、 undotbs回退表空间

用于事务回退, 保存改前镜像块

 

4、 temp临时表空间

存放临时数据 磁盘排序或临时表

 

5、 users example

oracle提供的样本数据表空间

 

6、 用户数据表空间

用户自建

 

一、 表空间的类型

查看表空间的类型

idle> select TABLESPACE_NAME,CONTENTS from dba_tablespaces;

有:永久表空间

临时表空间

回退表空间

1、永久表空间管理

又分为:

小文件表空间( 一个表空间可以存放 1023 个文件 每个文件 4M*block_size)

基本应用都是这类 默认创建也是它

大文件表空间( 一个表空间可以存放 1 个文件 文件管理 4G*block_size)

很少使用, 不利于 IO 分散 , 容易产生争用 , 容易被 FS 限制

1)、查看:

select tablespace_name,file_id,file_name,ceil(bytes/1048567)||'M' MB from dba_data_files;

 

2)、创建小表空间

文件系统:create tablespace mytbs datafile '/PATH/file.dbf' size 10m;

裸设备:create tablespace rawtbs datafile '/dev/raw/raw1' size 4095M

 

3)、创建大文件表空间

 create bigfile tablespace bigtbs datafile '/u01/oracle/oradata/beijing/bigtbs01.dbf' size 5M;

 select tablespace_name,bigfile from dba_tablespaces;

 

二、临时表空间

    存放排序的中间结果或临时表

查看:

select tablespace_name,contents from dba_tablespaces where CONTENTS='TEMPORARY';

创建临时表空间:

create temporary tablespace NAME tempfile '' size 10M;

 

修改用户的临时表空间:

select temporary_tablespace from dba_users where username='SCOTT';

 

alter user scott temporary tablespace temp2;

 

修改数据库默认临时表空间:

alter database default temporary tablespace temp;

 

三、 回退表空间

UNDO表空间 存储的是  rollback segment

1 system 回退段 系统创建 为 system 表空间的对象提供回退

2、非系统回退段 用户创建 为用户表空间的对象提供回退

3、延迟回退段   系统创建 表空间非正常离线时自动创建 我们不能管理

回退表空间的作用:

1.交易的回退 : 没有提交的交易可以 rollback

2.交易的恢复 : 数据库崩溃时 , 将磁盘的不正确数据恢复到交易前

3.读一致性   : 被查询的记录有事务占用 , 转向回滚段找改前镜像

4.闪回数据   : 从回滚段中构造历史数据

回滚段创建的时候是空闲的,只有事务产生时候才会产生数据。

 

创建UNDO 表空间:

 create undo tablespace undo2 datafile '/u01/oracle/oradata/ora10g/undo02.dbf' size 10M;

 

管理风格:自动或手动

 

SQL> show parameter undo

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

undo_management                      string      AUTO

undo_retention                       integer     900

undo_tablespace                      string      UNDOTBS1

 

undo_management=AUTO 回滚表空间段的段管理模式,

自动管理:

管理员只需要备足够的表空间容量,oracle 会自动管理扩展回滚段的数量。

只能使用一个UNDO 表空间

undo_tablespace:只有在自动管理模式下才可以使用。指明使用哪个 UNDO 表空间。

查看回顾段:select segment_name,tablespace_name,status from dba_rollback_segs;

 

回滚段的名字系统自动取

system是系统回退段 ,DBA 不能管理 .

 

切换回滚表空间的时候不会影响回滚数据:

SQL> alter system set undo_tablespace=undo2;

 

undo_retention 900  :提交之后旧的镜像保持在回滚段中的时间。非强制的回退保持时间 .( 回滚空间不足老的镜像就会被覆盖 )

 

强制保持:但是对空间要求较大,要慎用。(10g 开始支持 )

alter tablespace UNDOTABS1 RETENTION GUARANTEE;

select  tablespace_name,RETENTION from dba_tablespaces;

 

手工管理UNDO:

修改方法

SYS@beijing> show parameter rollback;

NAME      TYPE  VALUE

------------------------------------ ----------- ------------------------------

fast_start_parallel_rollback      string  LOW

rollback_segments      string

transactions_per_rollback_segment    integer  5

 

默认一个回滚段可以维持5 个事务  不要放太多事务 会产生回滚段头争用 

因为段头中记录段中的块的位置   找段里的数据就要访问段头

 

改成手动

SQL> alter system set undo_management=manual scope=spfile;

SQL> startup force

由于undo_management 是非自动管理,所以要重启才可以生效。

查看undo 段:

select SEGMENT_NAME,TABLESPACE_NAME,STATUS from dba_rollback_segs;

手动创建回滚段 段会自动拓展大小 所以不需要指明

create rollback segment rbs1 tablespace undotbs1;

修改状态:alter rollback segment rbs1 online;

 

关于回滚段的知识我会在segment 中详细讲解。

 

 

五、表空间的状态

查看表空间的状态:

select tablespace_name,status from dba_tablespaces;

修改状态:

alter tablespace mytbs read write/read only/offline;

 

1、 Online(读写 ) 状态

 

2、 Readonly(只读)状态

只读表空间 只能select 查询和 drop 删除对象 不能修改 (INTSERT update delete truncate)system undotbs temp  包含活动事务的表空间都不能只读,只读表空间不可以修改表数据 但可以删除表结构 因为表结果存储在数据字典中 数据字典在 system 表空间。

 

3、 offline(离线 ) 状态

只可以删除对象(drop)  不可以 select dml truncate, 系统表空间 +default 临时 + 包含活动事务的表空间是不能离线的 , 离线状态 DBA 可以移动数据文件路径 , 离线就是冻结 将 SCN 号锁定在某一时刻

select name,checkpoint_change# open_scn,last_change# stop_scn from v$datafile;

结果:NAME      OPEN_SCN STOP_SCN

-------------------------------------------------- ---------- ----------

/u01/oracle/oradata/ora10g/system01.dbf        475662

/u01/oracle/oradata/ora10g/undotbs01.dbf         475662

/u01/oracle/oradata/ora10g/sysaux01.dbf         475662

/u01/oracle/oradata/ora10g/users01.dbf         476689   476689

/u01/oracle/oradata/ora10g/mytbs01.dbf         476652

 

 

六、表空间扩容

查看表空间大小:

select tablespace_name,sum(bytes/1048576) curr_MB,sum(MAXBYTES/1048576) MAX_MB from dba_data_files group by TABLESPACE_NAME;

结果:

TABLESPACE_NAME    CURR_MB     MAX_MB

--------------- ---------- ----------

SYSAUX 240 32767.9844

UNDOTBS1 25 32767.9844

USERS 25 32767.9844

SYSTEM     480 32767.9844

MYTBS 10    10

如果最大大小为空 说明不能增长。

 

 

查询当前分配大小中的剩余尺寸:

SQL> select TABLESPACE_NAME,sum(bytes/1048576) free_mb from dba_free_space group by TABLESPACE_NAME;

结果:

TABLESPACE_NAME    FREE_MB

--------------- ----------

UNDOTBS1     4.0625

SYSAUX       .875

USERS    24.5625

SYSTEM      6.875

MYTBS     10.875

 

扩容的方法:

1、使文件自动增长

alter database datafile '' autoextend on next 10M maxsize 4G;

alter database datafile '' autoextend off;

2、 增加新文件

alter tablespace uses add datafile '' size 5M;

alter tablespace uses drop datafile ''; /*10G才能删 有数据不能删 第一个文件不能删 */

3、 修改现有文件的大小

alter database datafile '' resize 15M;

alter database datafile '' resize 10M;

 

删除表空间和数据文件

1、 删除表空间及其内容一起删除

drop tablespace mytbs INCLUDING CONTENTS;

2、 删除表空间及其文件一起删除

drop tablespace mytbs INCLUDING CONTENTS and datafiles;

 

注意:

创建索引或主键和唯一约束时将索引指定位置存放 生产库一定要把表和索引分开存放

创建索引和带索引的约束时, 指定索引的存储位置

SQL> create index t1_ind on t1(empno) tablespace mytbs;

SQL> ALTER TABLE T1 MODIFY(ENAME constraint T1_pk primary key using index tablespace mytbs);

分享到:
评论

相关推荐

    oracle逻辑结构分析

    oracle的逻辑结构包括表空间(tablespace),段(segment),区(extent),数据块(data block) oracle数据库在逻辑上是由多个表间组成的,表空间中存储的对象叫段,比如数据段,索引段,和回退段。段由区组成,区是磁盘...

    Oracle数据库用户、表、表空间之间关系.doc

    Oracle数据库用户、表、表空间之间关系 先需要明白数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正...

    Oracle表空间和数据文件的管理.docx

    Oracle表空间和数据文件的管理

    Oracle第8章_逻辑存储结构

    上海交大,Oracle数据库在逻辑上可以划分为一系列的逻辑空间,每一个逻辑空间就可以称为一个表空间。

    Oracle如何更改表空间的数据文件位置详解

    Oracle的表空间属于Oracle中的存储结构,是一种用于存储数据库对象(如:数据文件)的逻辑空间,是Oracle中信息存储的最大逻辑单元,其下还包含有段、区、数据块等逻辑数据类型。表空间是在数据库中开辟的一个空间,...

    Oracle数据库的逻辑结构

    oracle的体系逻辑结构  oracle 数据库的逻辑结构是:  (1)表空间(TABLESPACE) ,包括:系统表空间、回滚段表空间、临时表空间、用户表空间(除用户表空间外其他三张表空间有各自特定的用途,不可随意更改和...

    Oracle表空间设置和管理浅析

    表空间是 Oracle 特有的一种逻辑结构,是管理和组织 Oracle 数据文件一种方式,一个Oracle 数据库能够有一个或多个表空间,而一个表空间则对应一个或多个物理的数据库文件。Oracle 的表空间分为永久空间和临时表空间...

    Oracle数据库维护培训

    数据库的逻辑结构 创建表空间 改变表空间的大小 为临时段分配空间 改变表空间的状态 改变表空间的存储参数设置 在线重做日志文件的作用 在线重做日志文件的结构 控制日志文件切换和检查点执行 多路复用在线重做日志...

    oracle 11g体系结构讲解胶片

    Oracle 11g的逻辑结构:表空间、段、区间、数据块、表、其他逻辑对象。 Oracle 11g的物理结构:数据文件、控制文件、日志文件、初始化参数文件、其他文件。 Oracle 11g的总体结构:内存结构、后台进程、Oracle例程。...

    Oracle四大宝典之二:Oracle基本管理 中文版

    ORACLE数据库和数据库的物理结构,就如同人的身体结构一样,展现了一个人的外部特征,ORACLE实例如同人的神经,展现了一个人对事务的内部反应,ORACLE的逻辑结构,如同人的不同的内部组织,执行着人生存的基本功能。...

    oracle 体现

    ORACLE总体架构 ORACLE数据库文件以及逻辑结构 ORACLE内存结构 ORACLE进程结构 ORACLE实例创建/维护/卸载 ORACLE表空间、数据文件等创建/维护/卸载 ORACLE重要的数据字典(系统视图)

    表空间和数据文件

    为了管理数据文件,ORACLE提出了表空间的...这样ORACLE就不会直接操作底层操作系统的数据文件,而是提供一个中间层,这个中间层就是ORALCE的逻辑结构,它与操作系统的平台无关,而中间层到数据文件的映射通过DBMS来完成

    oracle基础教程

    1.3.2 逻辑结构 10 1.3.3 表(Table) 14 1.3.4 视图(View) 18 1.3.5 索引(Index) 18 1.3.6 同义词(Synonym) 19 1.3.7 序列(Sequence) 19 1.3.8 数据库链(Database Link) 20 第2章 管理ORACLE数据库 21 ...

    oracle 优化培训资料

    逻辑结构包括表空间(tablespaces), 段(segments), 区(extents),和数据块(data blocks). Oracle server 可以有条理的通过表空间以及段、扩展、数据块控制磁盘空间,表空间(Tablespaces):Oracle database 的数据存储...

    Oracle 表空间时点恢复(TSPITR)

    表空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式。它整合了RMAN以及DataPump这2个备份恢复工具来实现时点恢复。那...

    一、oracle体系架构(教学PPT)

    ORACLE总体架构 ORACLE数据库文件以及逻辑结构 ORACLE内存结构 ORACLE进程结构 ORACLE实例创建/维护/卸载 ORACLE表空间、数据文件等创建/维护/卸载 ORACLE重要的数据字典(系统视图)

    oracle基础内容培训

    Oracle实例(内存结构和后台进程) Oracle数据库物理文件(数据文件,控制文件,联机日志,参数文件) Oracle数据库逻辑结构(表空间,段,块)

    Oracle试卷及答案

    1、 段是表空间中一种逻辑存储结构,以下(D)不是ORACLE数据库使用的段类型。 (A) 索引段 (B)临时段 (C)回滚段 (D)代码段 2、 ORACLE数据库物理结构包括以下三种文件,以下不属于的是(A) (A) 系统...

    oracle10g课堂练习I(1)

    逻辑和物理数据库结构 1-20 课程示例: HR 方案 1-22 数据库体系结构:结构化组件概要 1-23 小结 1-24 2 安装 Oracle 数据库软件 课程目标 2-2 Oracle 数据库管理员的任务 2-3 用于管理 Oracle 数据库的...

Global site tag (gtag.js) - Google Analytics