表空间

数据库的存储结构

数据库主要用于存储和检索相关的信息,Oracle数据库包含逻辑结构和物理结构。

物理结构是指现实存储单元,由一组文件组成如数据文件、日志文件、控制文件。

  数据文件:用于存储数据的文件。如表,索引和数据等都存储在数据文件中。

  日志文件:用于记录对数据库的修改信息。

  控制文件:用于存储 Oracle实例信息、数据文件信息和日志文件信息的二进制文件。由于存储了数据文件和日志文件的信息,所以 Oracle启动时必须访问呢控制文件。  

逻辑结构式是指数据概念性的组织。包括  表空间、表、行等概念组成。

一、表空间(tablespace)的概念

表空间是Oracle特殊的发明,用于存储数据库表,索引等对象的磁盘逻辑空间。在物理上表空间由1个或者多个数据文件组成,而数据库在逻辑上由1个或者多个表空间组成。

表空间在Oracle10g中北分为一下3类:

  1、永久性表空间:一般保持基表、视图、存储过程和索引等数据。SYSTEM、SYSAUX、USERS、EXAMPLE表空间是默认安装的。

  2、临时性表空间:用于保存系统中短期活动的数据,如排序数据等。

  3、插销表空间;用来帮助回退未提交的事务数据,已提交了的数据在这里是不可以恢复的。

  一般不需要建立临时表空间和撤销表空间,除非把它们转移到其他磁盘以提高性能。

  表空间的目的:

  1、对不同用户分配不同的表空间,对不同的模式对象分配不同的表空间,方便对用户操作,对模式对象的管理。

  2、可以将不同数据文件创建到不同的磁盘中,有利于管理磁盘空间,有利于提高I/O性能,有利于备份和恢复数据等。

  

二、系统自带的表空间:

  SYSTEM表空间:用于存放Oracle系统内部表和数据字典的数据,如表名、列名、用户名等。不建议将用户创建的表、索引等对象存放到SYSTEM表空间中。

  SYSAUS表空间:用于存放Oracle系统内部的常用的样例用户的对象。SYSAUX表空间一般不存储用户的数据,由Oracle系统自动维护。

  撤销表空间:撤销表空间用于存放撤销信息的表空间。当我们对数据库表的数据进行增加、修改、删除时,Oracle自动使用撤销表空间来临时存储修改前的数据。当所做操作提交后, Oracle可根据需要保留修改前数据的时间长短来释放撤销表空间的部分空间。一般在创建Oracle实例后,Oracle会自动创建一个名为UNDOTBS1的撤销表空间。

  TEMP表空间:用于存放临时数据的特殊表空间。例如:当用户需要进行排序时,Oracle讲排序的数据临时放到该表空间内。排序完成后即可释放排序数据所占用的空间。

  USERS表空间:Users表空间是Oracle建议用户使用的表空间,可以在这个表空间上创建各种对象,如创建表、索引等。

  

  除了 Oracle自带的表空间外,用户可以根据需要创建多个表空间,以区分用户数据和系统数据。一般在Oracle数据库中,只创建一个数据库实例,而创建多个表空间来管理保存多个项目中的数据库表。

  

 三、创建表空间

  语法:

  CREATE TABLESPACE tablespacename

  DATAFILE ‘filename‘[size integer]

  [AUTOEXTEND[OFF|ON]]

  tablespancename:表示创建表空间的名称。

  filename:表示组成表空间的一个活多个数据文件,当有多个数据文件时,使用,分隔。

  size:指定文件的大小,单位是K(字节)或者M(兆)。

  AUTOEXTEND:用来启用或警用数据文件的自动扩展,只有设置了AUTOEXTEND后,在存储空间使用完毕后才会自动扩展,设置为ON即可,如果设置为OFF,则不能自动扩展。会导致存储空间不足的情况。

  示例:  

--创建一个表空间,物理文件为shop_dev_data.dbf,初始大小为100M,为自动增长
CREATE TABLESPACE shop_dev_data
datafile ‘E:\DB\Shop\shop_dev_data.dbf‘
size 100m autoextend on

四、操作表空间

  1、更改表空间大小:

  ALTER DATABASE DATAFILE ‘数据文件路径‘ resize <新的大小>

--将表空间的物理文件大小设置为50M
ALTER DATABASE DATAFILE ‘E:\DB\Shop\shop_dev_data.dbf‘ resize 50m

  2、改变表空间的读写状态

  ALTER TABLESPACE <表空间名称> READ WRITE;

--设置表空间为只读状态
ALTER TABLESPACE SHOP_DEV_DATA READ ONLY;

--设置表空间为读写状态
ALTER TABLESPACE SHOP_DEV_DATA READ WRITE;

  3、删除表空间

  DROP TABLESPACE tablespacename;

--删除表空间
DROP TABLESPACE SHOP_DEV_DATA
时间: 2024-11-10 00:58:05

表空间的相关文章

Oracle 表空间和用户权限管理

一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻辑结构的一个重要组件. 表空间可以存放各种应用对象,如表.索引等. 而每一个表空间由一个或多个数据文件组成. 1. 表空间的分类 表空间可分为3类: 永久性表空间:一般保存表.上天.过程和索引等数据.system.sysaux.users.example表空间是默认安装的. 临时性表空间:只用于保存

MySQL 表空间传送

1.源库查询表结构 mysql> show create table s_show\G *************************** 1. row ***************************        Table: study_show Create Table: CREATE TABLE `study_show` (   `id` int(11) unsigned NOT NULL AUTO_INCREMENT,   `uid` int(11) DEFAULT '0'

3、创建数据库、表空间、权限管理、表、约束、序列

一.dos常用命令 右键→标记→选中要复制的内容→右击就可以完成赋值 ↑表示找前面代码 data 查看日志time 查看时间cls 清屏exit 退出regedit 注册表taskmgr 任务管理器compmgmt.msc计算机管理mspaint 画图板 开始 运行 命令 集锦 --------------------------------write----------写字板 notepad--------打开记事本shrpubw--------创建共享文件夹 calc-----------启

数据库逻辑存储结构管理(5)-存储-表空间段区块

查看表空间信息SELECT * FROM V$TABLESPACE 查看表空间数据文件路径信息SELECT * FROM DBA_DATA_FILES; 查看表空间的属性信息SELECT * FROM DBA_TABLESPACES 查看表空间组及其所属的表空间的信息SELECT * FROM DBA_TABLESPACE_GROUPS查看表空间里面的表的组成SELECT SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME FROM DBA_SEGMENTS WH

表空间的状态(一) - ONLINE和OFFLINE

前几天问一个表空间状态的问题,也暴露了自己基础知识的薄弱,之所以总结如下两篇博文,主要还是让自己静下心来,补一下相关知识点,并通过实践强化自己的理解. 主要参考: <11g Concept> <11g Administrator's Guide> 表空间的ONLINE和OFFLINE状态 1. 只要数据库处于OPEN状态,除了SYSTEM表空间外的其他表空间,都可以将其置为online或offline状态.SYSTEM表空间之所以不能置为offline,是因为其中保存的数据字典需要

一个sql导致temp表空间爆掉

Buffer sort引发的血案 今天遇到的一个问题,在线系统上,有两张表,test1大概50G,test2大概200G,需要查询出来test1表中部分记录,并且这些记录不存在test2表中.于是就写了一个sql: select t1.* from test1 t1, test2 t2 where t1.col1 = t2.col1(+) and t1.col2 = t2.col2(+) and t1.col3 = t2.col3(+) and t2.col1 is null; 因为是在线系统,

Oracle表空间

Oracle表空间,布布扣,bubuko.com

Oracle 12c创建PDB用户并设置默认表空间

Oracle12c 中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB).CDB全称为 ContainerDatabase,中文翻译为数据库容器,PDB全称为PluggableDatabase,即可插拔数据库.下面是官方文档关于CDB与PDB的关系图. 在CDB中,只能创建以c##或C##开头的用户,如果不加c##,则会提示错误“ORA-65096:公用用户名或角色名无效”,只有在PDB数据库中才能创建我们习惯性命名的用户,oracle称之为Loca

11、oracle 表空间

创建和管理表空间 1.创建表空间例子 select name from v$datafile; SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /u02/oracle/oradata/orcl/system01.dbf /u02/oracle/oradata/orcl/sysaux01.dbf /u02/o

【表空间支持的最大数据文件大小的算法】【数据库限制】【数据文件文件头保留数据块数】

本地管理表空间中设置不同大小的db_block_size时数据文件头保留空间相应例如以下:--?? db_block_size=2KB,文件头保留32个数据块,即64KB. db_block_size=4KB.文件头保留16个数据块,即64KB. db_block_size=8KB,文件头保留8个数据块,即64KB. db_block_size=16KB,文件头保留4个数据块.即64KB. db_block_size=32KB,文件头保留4个数据块.即128KB. --为什么不是64kb? 默认