`

oracle表空间管理

 
阅读更多
--查看修改ORACLE表空间
--1、查看所有表空间信息
select a.tablespace_name
      ,round(a.bytes_alloc / 1024 / 1024, 2) megs_alloc
      ,round(nvl(b.bytes_free, 0) / 1024 / 1024, 2) megs_free
      ,round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024, 2) megs_used
      ,round((nvl(b.bytes_free, 0) / a.bytes_alloc) * 100, 2) Pct_Free
      ,100 - round((nvl(b.bytes_free, 0) / a.bytes_alloc) * 100, 2) Pct_used
      ,round(maxbytes / 1048576, 2) Max
  from (select f.tablespace_name
              ,sum(f.bytes) bytes_alloc
              ,sum(decode(f.autoextensible,
                          'YES',
                          f.maxbytes,
                          'NO',
                          f.bytes)) maxbytes
          from dba_data_files f
         group by tablespace_name) a
      ,(select f.tablespace_name
              ,sum(f.bytes) bytes_free
          from dba_free_space f
         group by tablespace_name) b
where a.tablespace_name = b.tablespace_name(+)
union all
select h.tablespace_name
      ,round(sum(h.bytes_free + h.bytes_used) / 1048576, 2) megs_alloc
      ,round(sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) /
             1048576,
             2) megs_free
      ,round(sum(nvl(p.bytes_used, 0)) / 1048576, 2) megs_used
      ,round((sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) /
             sum(h.bytes_used + h.bytes_free)) * 100,
             2) Pct_Free
      ,100 -
       round((sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) /
             sum(h.bytes_used + h.bytes_free)) * 100,
             2) pct_used
      ,round(sum(f.maxbytes) / 1048576, 2) max
  from sys.v_$TEMP_SPACE_HEADER h
      ,sys.v_$Temp_extent_pool  p
      ,dba_temp_files           f
where p.file_id(+) = h.file_id
   and p.tablespace_name(+) = h.tablespace_name
   and f.file_id = h.file_id
   and f.tablespace_name = h.tablespace_name
group by h.tablespace_name
ORDER BY 1;

--2、查看指定表空间详细信息:
Select file_name
      ,BYTES
      ,blocks
      ,autoextensible
      ,nvl(increment_by, 0) increment_by
      ,maxbytes
      ,maxblocks
      ,status
      ,maxblocks maxextend
      ,file_id
  from sys.dba_data_files
where TABLESPACE_NAME = 'USERS';

--3、修改表空间大小:
ALTER DATABASE DATAFILE '/opt/oracle/product/oradata/bocodb/users01.dbf' RESIZE 202M;

--4:开启自动扩展功能
alter database datafile '对应的数据文件路径信息' autoextend on;
--5:关闭自动扩展功能
alter database datafile '对应的数据文件路径信息' autoextend off;

--查看表空间
select * from sys.user_tablespaces;
--查看数据文件
select * from sys.dba_data_files;
--删除表空间及其数据文件
--DROP /*temporary*/ TABLESPACE KSYCMS INCLUDING CONTENTS AND DATAFILES;

--oracle查看表空间使用情况
select b.file_name 物理文件名
      ,b.tablespace_name 表空间
      ,b.bytes / 1024 / 1024 大小M
      ,(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 "已使用M"
       ,substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) "利用率%"
  from dba_free_space a
      ,dba_data_files b
where a.file_id = b.file_id
group by b.tablespace_name
         ,b.file_name
         ,b.bytes
order by b.tablespace_name;

--oracle查看表空间和用户关系
select b.file_name       物理文件名
      ,b.tablespace_name 表空间
      ,b.AUTOEXTENSIBLE  自动扩展
      ,c.username        用户名称
  from dba_data_files b
      ,sys.dba_users  c
where c.default_tablespace = b.TABLESPACE_NAME
   and c.username in ('EMIS',
                      'EMS',
                      'EMS2',
                      'ESS',
                      'OIS',
                      'KSTEST',
                      'KSYCMS',
                      'KSYWEBACCOUNT')
order by c.username
         ,b.AUTOEXTENSIBLE;

--缩减表空间大小
--ALTER DATABASE TEMPFILE '/oracle/product/11.2.0/db_1/dbs/temp10.ora' RESIZE 3000M;
--ALTER TABLESPACE TEMP1 SHRINK TEMPFILE '/oracle/product/11.2.0/db_1/dbs/temp10.ora';
--ALTER TABLESPACE TEMP1 SHRINK SPACE KEEP 20M;

--11、对临时表空间进行shrink(11g新增的功能)
----将temp表空间收缩为20M
--alter tablespace temp shrink space keep 20M;
----自动将表空间的临时文件缩小到最小可能的大小
--ALTER TABLESPACE temp SHRINK TEMPFILE ’/oracle/product/11.2.0/db_1/dbs/temp10.ora’;
--
--临时表空间作用
--Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。
--重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。
--网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB。
--也就是说当前临时表空间文件的大小是历史上使用临时表空间最大的大小。
--
--临时表空间的主要作用:
--  索引create或rebuild;
--  Order by 或 group by;
--  Distinct 操作;
--  Union 或 intersect 或 minus;
--  Sort-merge joins;
--  analyze。

--查看临时表空间
select bytes / 1024 / 1024 "file_size(M)"
       ,bytes / 1024 / 1024 / 1024 "file_size(G)"
       ,t.*
  from dba_temp_files t;
--查看数据文件信息
SELECT file_name
      ,tablespace_name
      ,file_id
      ,'datafile' AS TYPE
  FROM DBA_DATA_FILES
UNION ALL
SELECT file_name
      ,tablespace_name
      ,file_id + value
      ,'tempfile'
  FROM DBA_TEMP_FILES
      ,v$parameter p
WHERE p.name = 'db_files';

--  查看当前用户的缺省表空间
select * from sys.dba_users;

----------增加数据文件---------
-------------------------------
alter tablespace tablespace_name add datafile '+ASMDISK1/mydbfile.dbf' size 10240M;

--------------------------------
-------手工改变数据文件尺寸------
--------------------------------
alter database datafile '+ASMDISK1/mydbfile.dbf' resize 2048M;

--------------------------------
-------容许数据文件自动扩展------
--------------------------------
alter database datafile '+ASMDISK1/mydbfile.dbf' autoextend on next 10M maxsize 30G;

--------------------------------
----也可以这样数据文件自动扩展----
--------------------------------
alter tablespace tablespace_name add datafile '+ASMDISK1/mydbfile.dbf' size 5M autoextend on next 5M maxsize 50G;
分享到:
评论

相关推荐

    oracle 表空间管理

    然而,从Oracle 8i开始,引入了本地管理表空间(Local Managed Tablespace,简称LMT),以提供更高效、更自动化的空间管理机制。 **本地管理表空间(LMT)的优势** 1. **性能提升**:LMT使用位图来跟踪数据文件中...

    oracle表空间管理汇总.docx

    Oracle 表空间管理汇总 Oracle 表空间(Tablespace)是 Oracle 数据库中用于存储数据和索引的逻辑存储单元。...本文对 Oracle 表空间管理进行了总结,希望能够帮助数据库管理员更好地管理表空间。

    oracle 表空间 控制数据日志文件 备份还原

    实验4“Oracle表空间管理”旨在让学生掌握如何创建、扩展和删除表空间,理解表空间与数据文件的关系。在Oracle中,表空间的创建通常涉及以下步骤: 1. **规划表空间**:确定表空间的用途,例如用户数据、临时数据等...

    Oracle表空间操作命令

    根据提供的文件信息,我们可以深入探讨Oracle表空间管理的相关知识点,包括如何查看表空间的状态、类型、大小等信息,以及如何创建、调整表空间大小、设置自动扩展等。 ### Oracle表空间概念 在Oracle数据库中,表...

    获取oracle表空间脚本

    ### 获取Oracle表空间脚本 #### 背景与需求 在进行数据库备份与恢复的过程中,经常需要获取当前Oracle数据库中的表空间信息及其创建脚本。这样做的目的是为了确保在恢复过程中能够快速重建原有的数据库环境,包括...

    Oracle表空间介绍

    ### Oracle表空间详解 ...随着企业对数据处理能力的需求日益增长,合理规划和管理表空间已经成为Oracle数据库管理中的一个关键环节。因此,作为Oracle数据库管理员,深入了解并掌握表空间的相关知识是非常必要的。

    第17章 Oracle表空间的管理.ppt

    总之,Oracle表空间管理是一个复杂而关键的任务,理解并熟练掌握表空间的概念、分类和管理方法对于优化数据库性能和保证数据安全性至关重要。通过选择合适的表空间类型和管理策略,可以有效地支持数据库的日常操作和...

    Oracle本地管理表空间

    **本地管理表空间**是Oracle 8i版本引入的一种新的表空间管理模式。相比于之前的**字典管理表空间**,它采用了更加高效的空间管理机制,主要通过在每个数据文件的头部添加位图来追踪空间的使用情况,而非依赖数据...

    Oracle表空间命令

    ### Oracle表空间管理知识点 #### 一、Oracle表空间概述 在Oracle数据库中,表空间是逻辑存储单元,用于组织和管理数据文件。一个表空间可以包含多个数据文件,而每个数据文件只能属于一个表空间。Oracle中的表...

    \Oracle 表空间与数据文件

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

    oracle表空间误操作

    提供的“收藏过的oracle学习网站.txt”文件可能包含一系列Oracle学习资料链接,这些链接可能涵盖表空间管理、数据库备份恢复、SQL查询优化等多个方面,对于深入理解Oracle表空间的管理至关重要。 6. **工具使用**...

    oracle 表空间创建

    在实际应用中,创建表空间是非常重要的操作,因为它可以帮助用户更好地管理数据库中的数据,并提高数据库的性能。 此外,还可以使用 Oracle 的其他功能,如创建索引、视图、存储过程等,以满足不同的应用需求。 在...

    oracle表空间命令语句大全

    表空间管理是 Oracle 数据库管理的重要组成部分。本文将对 Oracle 表空间命令语句进行详细的介绍和讲解。 一、建立表空间 建立表空间是 Oracle 数据库管理的基本操作。使用 CREATE TABLESPACE 命令可以创建一个新...

    学习oracle创建一个表空间创建临时表空间创建用户表空间资源的权限

    创建和管理表空间及用户资源权限是数据库管理员(DBA)的重要工作之一。以下将详细介绍如何在Oracle中创建表空间、临时表空间以及赋予用户对表空间的权限。 首先,我们来了解如何创建一个常规表空间: 1. **创建表...

    oracle表空间详解

    在 Oracle8i 之后,创建表空间都推荐使用“本地管理表空间”,这种表空间中的分区是一个固定大小的值。语法结构如下: ``` CREATE TABLESPACE 空间名称 DATAFILE '文件名 1' SIZE 数字 M [,'文件名2' SIZE 数字….] ...

    oracle定时删除表空间的数据并释放表空间

    2. **自动段空间管理(Automatic Segment Space Management, ASSM)**:Oracle从9i版本开始引入ASSM,它简化了表空间的空间管理,通过位图块来跟踪空闲空间,提高了空间利用率和删除效率。 3. **purge操作**:Purge...

    从一个表空间 另一个表空间

    根据提供的标题、描述、标签及部分内容,我们可以总结出与Oracle表空间管理相关的多个知识点,具体如下: ### 一、理解Oracle表空间的概念 在Oracle数据库中,表空间是由一个或多个数据文件组成的逻辑存储单元。它...

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

    1. 数据文件必须是ONLINE状态才能执行此命令,如果文件已经OFFLINE,只有在字典管理表空间(DMT)中才能执行,对本地管理表空间(LMT)则不行。 2. 不能删除表空间的第一个数据文件或唯一的数据文件,否则会引发错误...

    oracle表空间查询命令

    ### Oracle表空间查询与管理命令详解 #### 一、Oracle表空间概述 在Oracle数据库中,表空间是逻辑存储单元,用于组织数据文件。每个Oracle数据库至少包含一个表空间,默认情况下,系统会在创建数据库时自动创建`...

Global site tag (gtag.js) - Google Analytics