Oracle 表空间与数据文件

一、概念

表空间:是一个或多个数据文件的逻辑集合

表空间逻辑存储对象:永久段-->如表与索引

临时段-->如临时表数据与排序段

                           回滚段-->用于事物回滚或闪回内存的撤销数据

表空间分类:系统表空间(system、sysaux),非系统表空间

一个表空间至少包含一个数据文件,一个数据文件只能属于一个表空间。

不可或缺的几个表空间:

SYSTEM --->字典表空间,不能被损坏

UNDO --->dml,dql把数据快照到此,数据提交即消失(用于恢复)

SYSAUX --->10g 高并发系统繁忙时,会造成system争用,将工具放到SYSAUX,减轻system的压力,SYSAUX不影响系统(影响性能)

TEMP --->临时数据相关的内容

USERS --->10g  用户数据从system拨离出来

二、Oracle的存储结构

1.Schema: 用户--->创建相关对象、表、视图、序列、函数、存储过程、包等

2.逻辑结构:database数据库--->tablespace表空间---> segment段--->extent区间----> block块

逻辑结构是Oracle内部管理数据库中对象的方式

3.物理结构:OS  block --->datafile 物理结构通常是一系列数据文件

4.举例描述scott用户创建对象的组织方式

--查看scott用户的默认表空间及数据文件

SQL> select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE    from dba_users  where username = ‘SCOTT‘;

--查看表空间及数据文件

SQL> select t1.name,t2.name  from v$tablespace t1,v$datafile t2  where t1.ts# = t2.ts#;

三、表空间

--简要语法:

CREATE [BIGFILE | SMALLFILE] [TEMPORARY] TABLESPACE tablespace name

DATAFILE datafile spec | TEMPFILE tempfile spec

[MINIMUM EXTENT minimum extent size]

[BLOCKSIZE blocksize]

[[COMPRESS|NOCOMPRESS] DEFAULT STORAGE (default storage clause)]

[LOGGING|NOLOGGING]

[FORCE LOGGING]

[ONLINE|OFFLINE]

[EXTENT MANAGEMENT DICTIONARY |

LOCAL [AUTOALLOCATE|UNIFORM SIZE size]]

[SEGMENT SPACE MANAGEMENT MANUAL|AUTO]

[FLASHBACK ON|OFF]

--创建表空间的条件

1.具有create tablespace的权限,DBA角色具有该权限,sysdba,sysoper

2.创建的是bigfiel ,还是smallifle  超过T 级别应考虑bigfile

3.新建的表空间的I/O,是否会导致磁盘I/O不够用

4.datafile后跟的路径应该具备写的权限  */

--查看缺省是BIGFILE 还是SMALLFILE,当缺省为SMALLFILE,创建表空间不指定表空间类型则为SMALLFILE

SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME like ‘%TBS%‘;

DEFAULT_TBS_TYPE SMALLFILE

--可修改默认值

SQL> alter database set default bigfile tablespace;

--改回默认值

SQL> alter database set default smallfile tablespace;

--创建表空间(单实例)

CREATE TABLESPACE YYHHQQ DATAFILE

‘F:\MYDB\YYHHQQ.DBF‘ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 200M

LOGGING

ONLINE

PERMANENT

EXTENT MANAGEMENT LOCAL AUTOALLOCATE

BLOCKSIZE 8K

SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

--rac

CREATE TABLESPACE EXAMPLE DATAFILE
‘+DATA/bol/datafile/example01.dbf‘ SIZE 100M AUTOEXTEND ON NEXT 640K MAXSIZE 32767M
NOLOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

--修改db默认的表空间

SQL> ALTER DATABASE DEFAULT   TABLESPACE YYHHQQ

--修改用户的默认表空间

SQL> alter user hr default tablespace IN_THE_CLEAR;

--移动表到另外的表空间

SQL> alter table tablename move tablespace tablespacename;

--创建临时表空间:

创建临时表空间,不能使用非标准数据块,另临时表空间不能存放永久对象。

SQL> DROP TABLESPACE YHQ_TEMP INCLUDING CONTENTS AND DATAFILES;

CREATE TEMPORARY TABLESPACE YHQ_TEMP TEMPFILE

‘F:\MYDB\YHQ_TEMP.DBF‘ SIZE 20M AUTOEXTEND ON NEXT 10M MAXSIZE 100M

TABLESPACE GROUP ‘‘

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

临时表空间具有以下特征:

临时数据文件不能置为只读

临时数据文件不能重命名

监时数据文件的日志方式总是NOLOGGING

--重置临时文件大小

SQL> alter database tempfile   ‘F:\MYDB\YHQ_TEMP.DBF‘ resize 50m

--重置临时文件能自动扩展

SQL> alter database tempfile  ‘F:\MYDB\YHQ_TEMP.DBF‘ autoextend on next 10m maxsize 50m;

--增加临时文件

SQL> alter tablespace YHQ_TEMP add TEMPFILE ‘F:\MYDB\YHQ_TEMP2.DBF‘ size 10m;

--查看临时文件

SQL> select TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 "SIZE(MB)" from dba_temp_files;

TEMP F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF 20

YHQ_TEMP F:\MYDB\YHQ_TEMP.DBF 50

YHQ_TEMP F:\MYDB\YHQ_TEMP2.DBF 10

--默认临时表空间

SQL> select * from database_properties;

--修改默认临时表空间:

SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE YHQ_TEMP;

--修改用户的默认临时表空间

SQL> alter user hr  temporary tablespace TEMP;

默认临时表空间最好要指定一下,如果没有指定默认的临时表空间,那么将使用system表空间作为排序区

默认临时表空间有一定的限制:

默认临时表空间不能删除

默认临时表空间不能脱机

获取创建表空间的语句

SQL> SELECT dbms_metadata.get_ddl(‘TABLESPACE‘,‘SYSTEM‘) FROM dual; --返回一个clob

--创建UNDO表空间(还原表空间)

DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;

CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE

‘F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF‘ SIZE 35M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED

ONLINE

RETENTION NOGUARANTEE

BLOCKSIZE 8K

FLASHBACK ON;

--修改当前系统的UNDO表空间:

SQL>  ALTER SYSTEM SET UNDO_TABLESPACE=yhq_undo; ----scope=memory|spfile|both

---default 的是memory,实例重启后失效

---spfile保存在spfile中,重启后才能有效

---both保存在实例和spfile 中

---system只能指定一个空间

UNDO表空间扩容:

--重置DATAFILE大小

--让DATAFILE能AUTOEXTEND

--添加数据文件

注:当前的UNDO表空间不能删除

系统只能使用一个UNDO表空间

CREATE UNDO TABLESPACE yhq_undo DATAFILE

‘F:\MYDB\YHQ_undo.DBF‘  SIZE 35M AUTOEXTEND ON NEXT 5M MAXSIZE 100m

ONLINE

RETENTION NOGUARANTEE

BLOCKSIZE 8K

FLASHBACK ON;

--查看表空间使用的管理方式

SQL> select TABLESPACE_NAME,EXTENT_MANAGEMENT,BLOCK_SIZE,STATUS,CONTENTS,FORCE_LOGGING,BIGFILE from dba_tablespaces;

--表空间改名,必须在open状态下,system,sysaux不能改名

SQL> alter tablespace xxx renmae to yyy;

--重置数据文件大小

SQL> alter database datafile  ‘F:\MYDB\YYHHQQ.DBF‘  resize 100m;

--设置数据文件能自动增长

SQL> alter database  DATAFILE ‘F:\MYDB\YYHHQQ.DBF‘ AUTOEXTEND OFF;

SQL> alter database  DATAFILE ‘F:\MYDB\YYHHQQ.DBF‘ AUTOEXTEND ON NEXT 4M  MAXSIZE 50M;

--查看

SQL> select name,file#,bytes/1024/1024 MB,status from v$datafile;

--为表空间添加数据文件

SQL> alter tablespace YYHHQQ add datafile ‘F:\MYDB\YYHHQQ2.DBF‘ size 100m;

--表空间的四种状态:

online

offline

read only

read write

--alter tablespace test1 offline;

--alter tablespace test1 online;

--alter tablespace test1 read only;

--alter tablespace test1 read write;

tablespace_name  online read only
system 必须online ready write
sysaux 可以offline 不能read only
undo 不能offline 不能read only

--查看表空间的状态

SQL> select tablespace_name,file#,v.status,v.enabled from dba_data_files d,v$datafile v where d.file_id = v.file#;

删除表空间:

意味着表空间和数据文件的信息从数据库中删除,同时也应该将相应的操作系统文件删除

不能删除的表空间

系统表空间

有活动回滚段的表空间

默认临时/永久表空间

DROP TABLESPACE tablespace_name [INCLUDING CONTENTS [AND DATAFILES]]

INCLUDING CONTENTS                -- 删除表空间及所有段

INCLUDING CONTENTS [AND DATAFILES] --删除表空间、所有段、数据文件、同时删除系统中的物理文件

SQL>  alter tablespace starhub including contents and datafiles cascade constraints;

--限制某个用户对表空间的使用

--alter user username quota n on tablespacename;

SQL> alter user scott QUOTA 10m on UU;

--取消限制

--alter user username QUOTA UNLIMITED on tablespacename;

--grant unlimited tablespace to username;

--获取表空间和数据文件信息

--表空间信息,系统视图

dba_tablespaces,v$tablespace

--数据文件信息

dba_data_files,v$datafile

--临时数据文件信息

dba_temp_files,v$tempfile

四、数据文件

数据文件是数据库中最重要的一个要求,是所有的数据库内容存放的地方

datafile是按照表空间为组织单位,表空间的构成是按照段区块为层次---数据文件的逻辑结构

datafile就是表空间的物理文件。

datafile中的内容是通过dbwr把data buffer cache中的dirty buffer data 写入的

--数据文件的增加与删除

SQL> alter tablespace tb1 add datafile ‘/u01/app/oradata/orcl/tbs02.dbf‘ size 10m autoextend on;

SQL> alter tablespace tb1 drop datafile 9;--v$datafile中的file#,有数据的数据文件不能删,

数据文件的日志记录

只有temp表空间是nologing  别的都是logging的

日志记录的几种模式

nologing          并不是不记录日志而是记录的很少

logging          正常记录日志信息

force logging    记录的日志比logging还详细 记录信息非常多  用于DG data guard 容灾的情况

SQL> alter tablespace tb1 nologging  | logging | force logging;

SQL> select tablespace_name ,logging,force_logging from dba_tablespaces;

SQL> alter tablespace EXAMPLE logging;

原文地址:https://www.cnblogs.com/yhq1314/p/10000174.html

时间: 2024-10-29 19:08:23

Oracle 表空间与数据文件的相关文章

Oracle 表空间和数据文件之间的关系

首先,你需要明白的一点是:数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件.日志文件和控制文件.数据库的文件为数据库信息提供真正的物理存储. 每一个Oracle数据库有一个或多个物理的数据文件(data file).一个数据库的数据文件包含全部数据库数据.逻辑数据库结构(如表.索引等)的数据物理地存储在数据库的数据文件中.数据文件通常为*.dbf格式,例如:userCIMS.dbf.数据文件有下列特征:①.一个数据文件仅与一个数据库联系:②

ORACLE RMAN备份及还原 RMAN可以进行增量备份:数据库,表空间,数据文件

ORACLE RMAN备份及还原 RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_header 在noarchivelog模式下,可以使用RMAN备份read-only和offline的表空间 ORACLE RMAN停机备份: 备份 RMAN连接上ORACLE,WINDOWS下在命令模式下 RMAN TARGET / 连接本地数据库用的是本地认证模式.RM

ORACLE - 管理表空间和数据文件

ORACLE表空间是一个逻辑分区,一个数据文件只能属于一个表空间,一个表空间可以拥有多个数据文件. 一般情况下,如果一个实例分配给多个应用使用,需要创建不同的表空间,每个用户使用自己的表空间. 一.表空间的创建与授权 首先查看表空间的使用情况: select tablespace_name,sum(bytes)/1024/1024 as MB from dba_data_files group by tablespace_name; ---剩余容量(在固定大小的情况下) select table

zbb20170816 oracle Oracle 查看表空间、数据文件的大小及使用情况sql语句

oracle Oracle 查看表空间.数据文件的大小及使用情况sql语句 --表空间 --1G=1024MB --1M=1024KB --1K=1024Bytes --1M=11048576Bytes --1G=1024*11048576Bytes=11313741824Bytes SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) &qu

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

每一个Oracle数据库都是由三种类型的文件组成:数据文件(Data File).日志文件(Log File)和控制文件(Control File).数据库的文件为数据库信息提供真正的物理存储.      每个数据库有一个或多个物理的数据文件.逻辑数据库结构(如表.索引等)的数据物理地存储在数据库的数据文件中,数据文件通常为*.dbf格式. 数据文件有下列特征: 1.一个数据文件仅与一个数据库联系: 2.一旦建立,数据文件只增不减: 3.一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成

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

一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括表空间.段.区和块.说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样的一种结构,可以提高数据库的效率. 三.表空间1.概念表空间用于从逻辑上组织数据库的数据.数据库逻辑上是由一个或是多个表空间组成的.通过表空间可以达到以下作用:1).控制数据库占

如何查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件

要查看Oracle数据库表空间大小,是否需要增加表空间的数据文件,在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问题比较常见. --1.查看表空间已经使用的百分比 Sql代码 select   a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024   "used MB",b.bytes/1024/1024 "free MB",round(((a.by

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

一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括表空间.段.区和块.说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样的一种结构,可以提高数据库的效率. 三.表空间1.概念表空间用于从逻辑上组织数据库的数据.数据库逻辑上是由一个或是多个表空间组成的.通过表空间可以达到以下作用:1).控制数据库占

RMAN数据库恢复之恢复表空间和数据文件

执行表空间或数据文件恢复时,数据库既可以是MOUNT状态,也可以是OPEN状态.1.恢复表空间在执行恢复之前,如果被操作的表空间未处理OFFLINE状态,必须首先通过ALTER TABLESPACE…OFFLINE语句将其置为脱机.然后再RESTORE-->RECOVER--->ONLINE即可. RMAN> SQL 'ALTER TABLESPACE USERS OFFLINE IMMEDIATE'; 在恢复目录中注册的数据库的新原型 正在启动全部恢复目录的 resync 完成全部 r