`

3、管理表空间和数据文件

 
阅读更多
一、表空间查询
1.在DBA_DATA_FILES数据字典中查询
SQL> col file_name for a50;
SQL> select tablespace_name, file_name ,bytes/1024/1024 M from dba_data_files or
der by tablespace_name;
TABLESPACE_NAME  FILE_NAME                                                   M
---------------- -------------------------------------------------- ----------
CWMLITE          D:\ORACLE\ORADATA\C_DB\CWMLITE01.DBF                       20
DRSYS            D:\ORACLE\ORADATA\C_DB\DRSYS01.DBF                         20
EXAMPLE          D:\ORACLE\ORADATA\C_DB\EXAMPLE01.DBF                  149.375
INDX             D:\ORACLE\ORADATA\C_DB\INDX01.DBF                          25
ODM              D:\ORACLE\ORADATA\C_DB\ODM01.DBF                           20
SYSTEM           D:\ORACLE\ORADATA\C_DB\SYSTEM01.DBF                       400
TOOLS            D:\ORACLE\ORADATA\C_DB\TOOLS01.DBF                         10
UNDOTBS1         D:\ORACLE\ORADATA\C_DB\UNDOTBS01.DBF                      200
USERS            D:\ORACLE\ORADATA\C_DB\USERS01.DBF                         25
XDB              D:\ORACLE\ORADATA\C_DB\XDB01.DBF                       38.125

2.SYSTEM 和SYSAUX 表空间
SYSTEM表空间存放数据字典表的结构和数据
SYSTEM 表空间内存放的对象
SQL> select distinct segment_type,owner,tablespace_name from dba_segments where
tablespace_name ='SYSTEM' order by owner ,segment_type;
SEGMENT_TYPE       OWNER                          TABLESPACE_NAME
------------------ ------------------------------ ----------------
INDEX              MDSYS                          SYSTEM
LOBINDEX           MDSYS                          SYSTEM
LOBSEGMENT         MDSYS                          SYSTEM
TABLE              MDSYS                          SYSTEM
INDEX              ORDSYS                         SYSTEM
TABLE              ORDSYS                         SYSTEM
INDEX              OUTLN                          SYSTEM
TABLE              OUTLN                          SYSTEM
INDEX              SCOTT                          SYSTEM
TABLE              SCOTT                          SYSTEM
CACHE              SYS                            SYSTEM

SYSAUX 表空间
SYSAUX是11G新加的表空间,存放各模式的对象数据,如:智能代理用户DBSNMP,数据挖掘用户ODM等。
查询SYSAUX表空间存放的用户对象
SQL> select owner ,count(*) from dba_segments where tablespace_name='SYSAUX' group by owner;

3.UNDO 表空间
UNDO表空间的段被称为撤销段或回退段。
撤销段的目的:
回退事务,独一致性,事务恢复,闪回操作
查看相关参数
--撤销管理方式
SQL> show parameter undo_management;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------------------
undo_management                      string      AUTO
SQL> show parameter undo_tablespace;
--撤销表空间名称
NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------------------
undo_tablespace                      string      UNDOTBS1
--实例中配置的撤销保留时间
SQL> show parameter undo_retention;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------------------
undo_retention                       integer     10800
--创建撤销表空间
create undo tablespace undo_tabs02 datafile '/OS_PATH/undo_t.dbf' size 2G;
--切换UNDO表空间
alter system set undo_tablespace = undo_tabs02 ;
注:在RAC(Real application cluster)机构中,不同例程必须使用独立的UNDO表空间,不能共用同一个UNDO表空间。
--检查UNDO表空间的数据
--UNDO统计信息,每10分钟统计一次
SQL> select to_char(begin_time,'HH24:MI:SS') begin_time,to_char(end_time,'HH24:MI:SS') end_time,undoblks from v$undostat;
BEGIN_TI END_TIME   UNDOBLKS
-------- -------- ----------
20:15:42 20:25:42         16
20:05:42 20:15:42         19
19:55:42 20:05:42         16
19:45:42 19:55:42         17
19:35:42 19:45:42         18
19:25:42 19:35:42         17
19:15:42 19:25:42         15
19:05:42 19:15:42         19
18:55:42 19:05:42         19
--显示UNDO段统计数
select a.name undo段的名称 ,b.xacts 包含的活动事务的个数,b.writes 写入的字节数 ,b.extents 段的区个数 
from v$rollname a, v$rollstat b where a.usn =b.usn;
UNDO段的名称                   包含的活动事务的个数 写入的字节数 段的区个数
------------------------------ -------------------- ------------ ----------
SYSTEM                                            0         6900          6
_SYSSMU1$                                         0       279714          6
_SYSSMU2$                                         0       370476          7
--显示活动事务信息
select a.username ,b.name,c.used_ublk from v$session a,v$rollname b ,v$transaction c 
where a.saddr = c.ses_addr and b.usn = c.xidusn and a.username='risk';
--显示UNDO信息区
select extent_id,bytes,status from dba_undo_extents where segment_name='_SYSMU5$';

4.临时表空间
临时表空间是一个磁盘空间,当内存排序不够使用时必须将数据写入的那个磁盘空间。排序操作完成后,Oracle系统自动的释放。
常见的临时表空间操作:
SELECT DISTINCT
UNION
INTERSECT
MINUS
ANALYZE
连接2个没有索引的表

第一、创建临时表空间:
CREATE [DEFAULT] --默认的临时表空间
TEMPORARY TABLESPACE TEMP_TBS 
TEMPFILE '/OS_PATH/TEMP1.DBF' SIZE 2G;
在v$tempfiles中查看临时表空间信息
SQL> select file_name ,bytes/1024/1024 M ,tablespace_name from dba_temp_files;
FILE_NAME                            M             TABLESPACE_NAME
D:\ORACLE\ORADATA\C_DB\TEMP01.DBF    40            TEMP
第二、临时表空间组
在11g中可以创建多个临时表空间,并且将他们组成一个临时表空间组,这样在排序时,使用组里的多个临时表空间。如果删除组中的全部临时表空间,那么组也被删除。
好处:
避免临时表空间不足时引起的磁盘排序问题
当一个用户同时有多个会话时,可以使用不同的临时表空间。
--1.创建临时表空间组
CREATE TEMPORARY TABLESPACE TEMPTS1 GEMPFILE '/OS_PATH/TEMP01.DBF'
SIZE 20M TABLESPACE GROUP GROUP_1;
--2.查看
SELECT * FROM DBA_TABLESPACE_GROUPS;
--3.将临时表空间换组
ALTER TABLESPACE TEMPTS1 TABLESPACE GROUP GROUP_N;
--4.为用户指定临时表空间
ALTER USER scott TEMPORARY TABLESPACE GROUP_N;
--5.修改数据库的临时表空间组
ALTER DATABASE c_db DEFAULT TEMPROARY TABLESPACE GROUP_N;

5.创建表空间
CREATE [SMALLFILE/BIGFILE] --大文件或小文件表空间
TABLESPACE tabspace_name   --名称
DATAFILE '/OS_PATH/file_name' SIZE INTEGER [K/M] --设置物理路径和大小
         REUSE   --如果文件存在,清除后重新建;否则直接建立
         [,'/OS_PATH/file_name' SIZE INTEGER [K/M] REUSE]
[AUTOEXTEND [OFF/ON] NEXT INTEGER[K/M] --是否自动扩展,ON需要设置NEXT 大小
[MAXSIZE[UNLIMITED /INTEGER [K/M]]]]  --最大表空间大小
[MINIMUM EXTENT INTEGER[K/M]]   
[DEFAULT STORAGE storage]    --指定以后要创建表,索引及簇的存储参数
[ONLINE/OFFLINE]    
[LOGGING/NOLOGGING]      --是否产生日志
[PERMANENT/TEMPORARY]    --永久或临时 ,默认是永久表空间
[EXTENT MANAGEMENT   --扩展段得管理      
[DICTIONARY/LOCAL    --数据字典管理还是本地管理,建议本地管理 
[AUTOALLOCATE|UNIFORM SIZE INTEGER[K/M]]]]
--例子---------------------------
create tablespace myspace datafile 'D:\ORACLE\ORADATA\C_DB\myspace01.DBF'
size 256M reuse
autoextend on next 20M maxsize unlimited
logging online
permanent 
-- blocksize 16384 加上这句,表示建立非标准块的表空间
extent management local autoallocate
segment space management auto;
--上面的表空间建立中,有很多参数可以是系统默认的。
--修改表空间大小的2种方法
alter database datafile 'D:\ORACLE\ORADATA\C_DB\myspace01.DBF' resize 1G; 
alter tablespace myspace resize 10G;
--改变表空间的读写状态
--条件:表空间处于ONLINE,没有任何回滚段,(归档模式或数据发行中不能改为只读)
alter tablespace myspace read only;
alter tablespace myspace read write;
------------------------------------------------------------
--表空间的操作  
------------------------------------------------------------
--1.修改表空间的名字
--先查询
SELECT TABLESPACE_NAME ,FILE_NAME FROM DBA_DATA_FILES;
ALTER TABLESPACE OLD_NAME TO NEW_NAME;
--修改后,旧表空间存放的对象被自动的更名为新表空间
--2.设置默认表空间
alter database default tablespace myspace;
select property_value from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE';
--3.删除表空间
--语法
-----------------------------------------
DROP TABLESPACE TABLESPACE_NAME   --表空间名称
[INCLUDING CONTENTS]              --删除表空间以及里面的数据 
[CASCADE CONSTRAINS]              --删除相关的完整性约束(主键,索引等)
[color=red]注:如果使用了分区【partition】的表空间,要先使用alter table ...remove partition将表空间的数据移到别的表空间去,然后才能drop[/color]
drop tablespace my_tabs including contents cascade constraints;
--4.新增数据文件到表空间
alter tablespace my_tabs add datafile '/OS_PATH/xxx.dbf' size 300MB;
--5.删除表空间中无数据的数据文件
--在11gR2后才能删除数据文件
alter tablespace my_tabs drop datafile '/OS_PATH/xxx.dbf' ;
--6.在数据文件中设置自动扩展属性
ALTER DATABASE/TABLESPACE [FILE_PATH]   --file_path表示路径+文件名
AUTOEXTEND ON NEXT[INCREMENT_SIZE]      --自动扩展的大小
MAXSIZE[MAX_SIZE/UNLIMITED]             --最大值或无限大小UNLIMITED
--查询数据文件,并改为自动扩展
SQL> select file_name ,tablespace_name,bytes/1024/1024 M,autoextensible from dba_data_files order by tablespace_name;
FILE_NAME                                  TABLESPACE          M AUT
------------------------------------------ ---------- ---------- ---
D:\ORACLE\ORADATA\C_DB\CWMLITE01.DBF       CWMLITE            20 YES
D:\ORACLE\ORADATA\C_DB\DRSYS01.DBF         DRSYS              20 YES
D:\ORACLE\ORADATA\C_DB\EXAMPLE01.DBF       EXAMPLE       149.375 YES
D:\ORACLE\ORADATA\C_DB\INDX01.DBF          INDX               25 YES
D:\ORACLE\ORADATA\C_DB\ODM01.DBF           ODM                20 YES
D:\ORACLE\ORADATA\C_DB\SYSTEM01.DBF        SYSTEM            400 YES
D:\ORACLE\ORADATA\C_DB\TOOLS01.DBF         TOOLS              10 YES
D:\ORACLE\ORADATA\C_DB\UNDOTBS01.DBF       UNDOTBS1          200 YES
D:\ORACLE\ORADATA\C_DB\USERS01.DBF         USERS              25 YES
D:\ORACLE\ORADATA\C_DB\my_tabs.DBF         MY_TABS        38.125 NO
alter database datafile 'D:\ORACLE\ORADATA\C_DB\my_tabs.DBF'
autoextend on next 200M maxsize 5000M;
分享到:
评论

相关推荐

    表空间和数据文件的管理

    【表空间和数据文件的管理】是数据库管理系统中的核心概念,尤其在Oracle数据库中尤为重要。本文将深入探讨这两个概念以及如何进行相关操作。 首先,**表空间(Tablespace)**是数据库的逻辑组织单位,它从逻辑上...

    如何正确的删除Oracle表空间数据文件

    在Oracle数据库管理中,删除表空间数据文件是一项关键操作,涉及到数据的安全性和系统的稳定性。本文将详细介绍如何正确地删除Oracle表空间数据文件,探讨OFFLINE和OFFLINE DROP的区别,以及在操作系统层面删除数据...

    如何查询Oracle表空间和数据文件信息

    在Oracle数据库管理中,了解和监控表空间及数据文件的状态对于数据库管理员至关重要。表空间是数据库逻辑结构的一部分,它将数据库对象与物理存储关联起来。本文将详细介绍如何查询Oracle数据库中的表空间和数据文件...

    oracle数据库、表空间及数据文件之间的关系

    综上所述,在Oracle数据库中,数据库、表空间和数据文件之间存在着明确的关系:数据库包含多个表空间,而表空间又由一个或多个数据文件组成。这种层次结构不仅有助于更好地组织和管理数据,还使得在扩展存储容量时变...

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

    ### Oracle表空间和数据文件的管理 #### 6.1 Oracle引入逻辑结构的目的 Oracle数据库管理系统采用了一种独特的设计思路,即通过引入一系列逻辑结构来处理数据存储问题,而不是直接操作底层的数据文件。这种设计的...

    oracle表空间和数据文件管理.ppt

    Oracle 表空间和数据文件管理 Oracle 数据库的存储结构可以分为物理存储...本章内容包括 Oracle 的存储结构、创建表空间、临时表空间、回滚表空间、表空间的状态、表空间信息查询、删除表空间和数据文件管理等内容。

    管理表空间和数据文件

    对与oracle中的表空间和数据文件有了较为详细的描述,是一份不可多的学习oracle的资料

    Oracle管理表空间和数据文件.ppt.pptx

    本篇文章将详细讲解如何管理和操作Oracle中的表空间和数据文件。 首先,表空间的创建是数据库初始化的重要步骤。创建表空间的语法包括定义表空间名称、数据文件的位置和大小,以及可选的存储参数。例如,创建名为...

    oracle表空间和数据文件管理.pptx

    "Oracle表空间和数据文件管理" Oracle数据库存储结构可以分为物理存储结构和逻辑存储结构。物理存储结构是指数据库文件在磁盘中的物理存放方式,包括数据文件、日志文件、参数文件、控制文件等。逻辑存储结构是指...

    oracle教程10管理表空间和数据文件.ppt

    本教程主要关注如何管理表空间和数据文件,这是Oracle数据库存储管理的基础。 首先,表空间(Tablespace)是Oracle数据库逻辑存储的单位,它将磁盘上的物理存储空间组织成逻辑单元。表空间可以分为两类:系统表空间...

    Oracle-管理表空间和数据文件.ppt

    逻辑存储结构则描述了数据库内部数据的组织方式,独立于操作系统,由数据块、区、段和表空间等逻辑单位构成,这些信息存储在数据库的数据字典中。 表空间是Oracle数据库中的一个重要概念,它是逻辑存储结构的最高...

    \Oracle 表空间与数据文件

    通过以上内容,我们详细了解了Oracle中的表空间与数据文件的概念、分类以及它们在Oracle数据库存储结构中的作用,并学习了如何通过SQL查询来查看和管理这些表空间和数据文件。这对于管理和优化Oracle数据库的性能至...

    管理表空间和数据文件.pdf

    1. **本地管理的表空间**:本地管理表空间(Locally Managed Tablespace, LMT)使用段和块来管理空间,与传统的字典管理方式相比,它提供了更高效的空间管理。 2. **列出表空间和数据文件**:可以使用`DBA_DATA_...

    Oracle 表空间与数据文件

    表空间的管理还需要了解数据文件的管理,包括数据文件的创建、修改和删除等。 Oracle 表空间的应用包括数据库设计、数据库优化和数据库维护等。表空间的应用需要了解表空间的逻辑结构和物理结构,了解表空间的分类...

    Oracle表空间和数据文件的设置管理研究.pdf

    Oracle数据库是一种广泛使用的大型关系型数据库管理系统,其中表空间(Tablespace)和数据文件(Data File)是管理和组织数据的核心概念。表空间是Oracle数据库中最大的逻辑存储结构,它为数据库对象提供了一个有序...

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

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

Global site tag (gtag.js) - Google Analytics