一、基本概念:
表空间是Oracle特殊的发明。
从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在一个或多个表空间中。
逻辑结构包括表空间,段,区和块:
一个表空间向上可以存放各种应用对象,一般把不同的应用(用户或模式或模式对象)放到不同的表空间中;
而更细的划分是将不同的模式对象分配到不同的表空间中,如数据库中所有数据表分配到一个表空间,所有索引分配到一个表空间;一般为一个用户创建一个表空间。而一个表空间向下由多个数据文件组成。
一个数据文件由多个segment(段)组成,
段分为表段,索引段,另一个表段等。
segment由多个extent(区)组成,区是连续的dat-block的集合,是从RAID(独立磁盘冗余阵列)或ROM中一次读取到cache中
的最小数据集。而区是由多个data-block组成,data-block是对数据文件读写的最小数据片,可以记录多条记录
freelist:可用列表是表中的一组可插入数据的可用块。
行连接:指一行存储在多个块中的情况,这是因为该行的长度超过了一个块的可用空间大小,即行链接是跨越多块的行。
行迁移:指一个数据行不适合放入当前块而被重新定位到另一个块(那里有充足的空间)中,但在原始块中保留一个指针的情形。原始块中的指针是必需的,因为索引的ROWID项仍然指向原始位置。
二、分类:
表空间在oracle 10g中被分为三类:
(1)永久性表空间:一般保持基表、视图,过程和索引等的数据。System、SysAux、Users、Example表空间是默认安装的。
(2)临时性表空间:只用于保存系统中短期活动的数据,如排序数据等。
(3)撤销表空间:用来帮助回退未提交的事务数据,当然已提交了的数据在这里是不可以恢复的,若需要从备份技术中建立fash recovery area可以针对这样的问题解决。
当然一般不需要建临时和撤销表空间,除非你把它们转移其它磁盘中以提高性能。
三、目的:
通过表空间可以达到以下作用:
(1)管理:向上对不同用户分配不同的表空间,对不同的模式对象分配不同的表空间,方便对用户操作,对模式对象的管理。
向下可以将不同数据文件创建到不同的磁盘中,有利于管理磁盘空间,有利于提高I/O性能,有利于备份和恢复数据等。
但也会产生磁盘碎片在表空间下,当然是在数据文件的段下面。
(2)性能:
在
定义表时,设置data-block参数,为频繁查询的外键关联的表定义cluster(群)放到统一表空间中,
对同一个表创建不同的分区(PARTITION BY RANG,PARTITION BY HASH,PARTITION BY
LIST)放到不同的表空间中,等提高性能技术。
四、常用应用语句
(当然用EM可以快捷完成部分功能):
1.建立数据表空间
create tablespace myspce datafile ‘d:\oracle\myspace.dbf’ size 20m uniform size 128k
2.使用表空间
create table mytable(A number(3)) tablespace myspace;
3.改变表空间的状态
表空间还有联机(online)、或脱机(Offline)属性、权限属性等,默认表空间创建时是online,rw属性的。在进行维护时要进行改变表空间状态操作,除SYSTEM、UNDOTBS、TEMP表空间外,表空间可以置为脱机(offline)。
(1) 使表空间脱机
alter tablespace myspace offline;
(2) 使表空间联机
alter tablespace myspace online;
4. 更改表空间读写权限
如果不希望在该表空间上执行insert/update/delete操作,那么可以将表空间修改为只读
alter tablespace myspace read only;
我们可以知道Scott.emp是在system这个表空间上,现在我们可以把system改成只读的,但是我们不会成功,因为system是系统表空间,如果是普通表空间,那么我们就可以将其设为只读的。
打开读写权限:
alter tablespace myspace read write;
5.查询表空间和表
知道表空间名,显示该表空间包括的所有表
select * from all_tables where tablespace_name=’myspace’;
知道表名,查看该表属于哪个表空间
select tablespace_name,table_name from user_tables where table_name=’emp’;
6. 删除表空间
drop tablespace myspace including contents and datafiles
记得:删除表空间时要连同它的数据文件和内容一同删除。
7. 扩展表空间
(1)增加数据文件
alter tablespace myspace add datafile ‘d:\test\morf001.dbf’ size 20m
(2)增加数据文件的大小
alter tablespace myspace ‘d:\test\morf01.dbf’ resize 200m;
这一要注意一点就是数据文件的大小不要超过500m
(3)设置文件的自动增长
alter tablespace 表空间名 ‘d:\test\morf01.dbf’ auto extend on next 10m maxsize 500m;
8.移动数据文件
有时,如果你的数据文件所在的磁盘损坏时,该数据文件将不能再使用,为了能够重新使用,需要将这些文件的副本移动到其它的磁盘,然后恢复。
下面以移动数据文件myspace.dbf为例来说明。
(1) 确定数据文件所在的表空间
select tablespace_name from dba_data_files where file_name=’d:\oracle\myspace.dbf’
(2)时表空间脱机
为了确保数据文件的一致性,将表空间转变为offline的状态
alter tablespace morf01 offline;
(3)使用命令移动数据文件到指定的目标位置
host move d:\oracle\myspace.dbf f:\oracle\myspace1.dbf;
(4)执行alter tablespace命令
在物理上移动了数据后,还必须执行alter tablespace命令对数据库文件进行逻辑修改
alter tablespace myspace rename datafile 'd:\oracle\myspace.dbf' to 'f:\oracle\myspace1.dbf';
(5)使表空间联机
在移动了数据文件后,为了使用户可以访问该表空间,必须将其转变为online状态
alter tablespace myspace online;
9.显示表空间信息
(1)查询数据字典视图dba_tablespaces,显示表空间的信息:
select myspace from dba_tablespaces;
(2)显示表空间所包含的数据文件
查询数据字典视图dba_data_files ,可显示表空间所包含的数据文件,如下:
select file_name,bytes from dba_data_files where tablespace_name=’表空间名’;
分享到:
相关推荐
其次,DBA进阶知识包括性能优化、备份恢复、安全性管理和高可用性解决方案。性能优化是DBA日常工作中重要的一环,涉及SQL调优、索引策略、数据库参数调整等方面。备份与恢复策略则关乎数据的安全,包括物理备份、...
二、Oracle DBA进阶 1. 表空间管理:了解如何创建、扩展和收缩表空间,管理数据文件和临时文件。 2. 性能优化:学习SQL调优,使用Explain Plan分析执行计划,调整索引,优化表结构。 3. 高可用性:掌握RAC(Real ...
二、Oracle DBA进阶 随着对Oracle的深入,DBA需要掌握更多高级技巧: 1. 性能优化:学习使用Oracle的性能分析工具,如SQL*Plus、Explain Plan、 tkprof等,进行SQL调优和数据库架构优化。 2. 高可用性与灾难恢复:...
本书首先从基础入手,讲解Oracle数据库的基本架构,包括数据存储、表空间、数据块和索引等核心概念。读者将学习如何创建和管理数据库,配置数据库实例,以及进行备份和恢复操作。 在进阶部分,书中会详细介绍SQL...
### 深入浅出Oracle:DBA入门、进阶与诊断案例 #### 一、Oracle数据库概述 在《深入浅出Oracle:DBA入门、进阶与诊断案例》这本书中,作者盖国强深入地介绍了Oracle数据库的相关知识。Oracle数据库是全球最流行的...
在入门部分,书中会介绍Oracle的基本概念,如数据库结构、表空间、数据文件、控制文件等。还会详细讲解SQL语言,包括数据查询、插入、更新和删除,以及SQL的高级特性,如子查询、联接操作、视图和索引等。这部分内容...
《深入浅出Oracle:DBA入门、进阶与诊断案例》是一本专为Oracle数据库管理员(DBA)设计的综合指南。这本书旨在帮助初学者快速掌握Oracle数据库的基础知识,并逐步提升到高级技能,同时提供了丰富的实战案例来帮助...
《深入浅出Oracle:DBA入门、进阶与诊断案例》是盖国强老师的一部专为Oracle数据库管理员(DBA)编写的权威教程。这本书以其深入浅出的讲解方式,成为了许多Oracle初学者和进阶者的学习宝典。下面我们将深入探讨其中...
《深入浅出Oracle:DBA入门、进阶与诊断案例》是一本专为Oracle数据库管理员(DBA)设计的教程,旨在帮助读者从基础知识到高级技巧,全面掌握Oracle数据库的管理和维护。作者通过多年的实战经验,将理论知识与实际案例...
《深入解析Oracle——DBA入门、进阶与诊断案例》是一本专为Oracle数据库管理员(DBA)设计的详尽指南。这本书旨在帮助初学者掌握Oracle数据库的基本操作,并引导有经验的DBA深入理解Oracle的高级特性,同时提供实用...
在入门阶段,本书会详细介绍Oracle数据库的基础知识,包括数据库体系结构、安装配置、数据存储原理、SQL语言基础、表空间管理等。读者将学习如何创建数据库实例,管理用户权限,以及进行基本的数据查询和操作。这...
在Oracle中,数据存储在表空间中,通过逻辑结构如表、索引、视图进行组织。了解这些概念对于数据库设计和管理至关重要。SQL是用于操作Oracle数据库的主要语言,包括查询、插入、更新和删除数据,以及创建和管理...