表空间是数据库的逻辑划分,一个表空间仅仅能属于一个数据库。

全部的数据库对象都存放在建立指定的表空间中。但主要存放的是表, 所以称作表空间。在oracle 数据库中至少存在一个表空间。即SYSTEM的表空间。一个表空间能够包括多个段。以及区。以及最小的块,同一时候也能够包括多个数据文件(物理结构)。

oracle 能够依据表空间对相关的用户配额以及磁盘空间都有极大的保护作用,并且还能够灵活的存放。同一时候也能够把不同的数据文件分开存放,保证不同数据文件的安全行。

所以在一般数据创建后,就会创建相关的表空间,再创建相关的用户。

Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。能够这么说,Oracle中非常多优化都是基于表空间的设计理念而实现的。



下面针对数据表空间一些相关命令进行汇总

1,表空间汇总

--创建表空间的脚本

CREATE TABLESPACE TEST_FILE

LOGGING

DATAFILE '/U02/APP/ORACLE/ORADATA/ITSDB/TEST_FILE.DBF'

SIZE 10M  

AUTOEXTEND ON  

NEXT 10M MAXSIZE 10240M  

EXTENT MANAGEMENT LOCAL;



--查看用户的默认表空间

SELECT T.USERNAME,T.DEFAULT_TABLESPACE FROM DBA_USERS  T



--改动用户的默认表空间TABLESPACE_B

ALTER   USER   USER_A   DEFAULT   TABLESPACE   TABLESPACE_B



--用户在表空间上放开限制

ALTER   USER   USER_A   QUOTA   UNLIMITED   ON   TABLESPACE_B;  



--回收权限

REVOKE   UNLIMITED   TABLESPACE   ON   TABLESPACE_A   FROM   USER_A



--以使USER_A帐户不能在TABLESPACE_A上创建不论什么对象。

ALTER   USER   USER_A   QUOTA   0   ON   TABLESPACE_A





--移动表的表空间

ALTER TABLE CQRM.CQ_FLIGHTS_SEATS_SEQUENCE MOVE TABLESPACE CQRM;COMMIT;



--批量移动表空间的语句

SELECT 'ALTER TABLE '||TABLE_NAME||' MOVE TABLESPACE CQRM;COMMIT;' FROM USER_TABLES WHERE TABLESPACE_NAME='TEST';



--在表空间上重建索引

SELECT 'ALTER INDEX '||OWNER||'.'||INDEX_NAME||' REBUILD TABLESPACE CQRM;COMMIT;' FROM DBA_INDEXES WHERE  TABLE_NAME IN ('')

AND OWNER='TEST'





SELECT 'ALTER TABLE '||OWNER||'.'||TABLE_NAME||' MOVE TABLESPACE TEST;COMMIT;' FROM DBA_TABLES WHERE TABLESPACE_NAME='TEST1' AND OWNER='TEST'



2,改变表空间状态



1.使表空间脱机



ALTER TABLESPACE GAME OFFLINE;



假设是意外删除了数据文件,则必须带有RECOVER选项



ALTER TABLESPACE GAME OFFLINE FOR RECOVER;



2.使表空间联机



ALTER TABLESPACE GAME ONLINE;



3.使数据文件脱机



ALTER DATABASE DATAFILE 3 OFFLINE;



4.使数据文件联机



ALTER DATABASE DATAFILE 3 ONLINE;



5.使表空间仅仅读



ALTER TABLESPACE GAME READ ONLY;



6.使表空间可读写



ALTER TABLESPACE GAME READ WRITE;



删除表空间



DROP TABLESPACE DATA01 INCLUDING CONTENTS AND DATAFILES;



扩展表空间



3,首先查看表空间的名字和所属文件



SELECT TABLESPACE_NAME, FILE_ID, FILE_NAME,

ROUND(BYTES/(1024*1024),0) TOTAL_SPACE

FROM DBA_DATA_FILES

ORDER BY TABLESPACE_NAME;



1.添加数据文件

ALTER TABLESPACE GAME

ADD DATAFILE '/ORACLE/ORADATA/DB/GAME02.DBF' SIZE 1000M;



2.手动添加数据文件尺寸

ALTER DATABASE DATAFILE '/ORACLE/ORADATA/DB/GAME.DBF'

RESIZE 4000M;



3.设定数据文件自己主动扩展

ALTER DATABASE DATAFILE '/ORACLE/ORADATA/DB/GAME.DBF'

AUTOEXTEND ON NEXT 100M

MAXSIZE 10000M;

4.更改数据文件的位置

ALTER TABLESPACE APP_DATA RENAME DATAFILE  

'' TO ''





--整合表空间的碎片

ALTER TABLESPACE TABLESPACENAME COALESCE

此语句是整合表空间的碎片添加表空间的连续性,可是他不会收缩一个文件的大小的。

设定后查看表空间信息



SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,

(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"

FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C

WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;



--查看表空间使用状况



SELECT UPPER(F.TABLESPACE_NAME) "表空间名",

       D.TOT_GROOTTE_MB "表空间大小(G)",

       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(G)",

       CASE

         WHEN D.TOT_GROOTTE_MB = 0 THEN

          0

         ELSE

          TO_NUMBER(TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) /

                                  D.TOT_GROOTTE_MB * 100,

                                  2),

                            '990.99'))

       END "使用比",

       F.TOTAL_BYTES "空暇空间(G)",

       F.MAX_BYTES "最大块(G)"

  FROM (SELECT TABLESPACE_NAME,

               ROUND(SUM(BYTES) / (1024 * 1024 * 1024), 2) TOTAL_BYTES,

               ROUND(MAX(BYTES) / (1024 * 1024 * 1024), 2) MAX_BYTES

          FROM SYS.DBA_FREE_SPACE

         GROUP BY TABLESPACE_NAME) F,

       (SELECT DD.TABLESPACE_NAME,

               ROUND(SUM(DD.BYTES) / (1024 * 1024 * 1024), 2) TOT_GROOTTE_MB

          FROM SYS.DBA_DATA_FILES DD

         GROUP BY DD.TABLESPACE_NAME) D

 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

 ORDER BY 4 DESC

--也能够从视图DBA_TABLESPACE_USAGE_METRICS  查询假设表空间不是自己主动扩展则两者查询结果同样,假设是自己主动扩展的话则两者有偏差,以上面的查询为准





--查看用户使用了那些表空间

SELECT OWNER, OBJECT_TYPE, TABLESPACE_NAME

  FROM (SELECT DISTINCT 'TABLE' OBJECT_TYPE, OWNER, TABLESPACE_NAME

          FROM DBA_TABLES

        UNION

        SELECT DISTINCT 'INDEX' OBJECT_TYPE, OWNER, TABLESPACE_NAME

          FROM DBA_INDEXES)

 WHERE TABLESPACE_NAME IS NOT NULL

   AND OWNER = 'EZOFFICE'

 ORDER BY 1, 2, 3;

 

 

 SELECT T.SEGMENT_NAME, T.TABLESPACE_NAME, BYTES / 1024 / 1024

  FROM DBA_SEGMENTS T

 WHERE T.SEGMENT_NAME IN

       ('')

   AND OWNER = 'USER'



--能够查看回收的数据文件大小

SELECT 'ALTER DATABASE DATAFILE ''' || A.FILE_NAME || ''' RESIZE ' ||

       ROUND(A.FILESIZE - (A.FILESIZE - C.HWMSIZE - 100) * 0.8) || 'M;',

       A.FILESIZE || 'M' AS "数据文件的总大小",

       C.HWMSIZE || 'M' AS "数据文件的有用大小"

  FROM (SELECT FILE_ID, FILE_NAME, ROUND(BYTES / 1024 / 1024) AS FILESIZE

          FROM DBA_DATA_FILES) A,

       (SELECT FILE_ID, ROUND(MAX(BLOCK_ID) * 8 / 1024) AS HWMSIZE

          FROM DBA_EXTENTS

         GROUP BY FILE_ID) C

 WHERE A.FILE_ID = C.FILE_ID

AND A.FILESIZE - C.HWMSIZE > 100;

下一篇会继续讲述uodo表空间

oracle表空间查询维护命令大全之中的一个(数据表空间)史上最全的更多相关文章

  1. oracle表空间查询维护命令大全之二(undo表空间)

    --undo表空间汇总 --查看全部的表空间名字 select name from v$tablespace; --创建新的UNDO表空间,并设置自己主动扩展參数; create undo table ...

  2. oracle表空间查询维护命令大全之三(暂时表空间)史上最全

    --UNDO表空间汇总 --查看全部的表空间名字 SELECT NAME FROM V$TABLESPACE; --创建新的UNDO表空间,并设置自己主动扩展參数; CREATE UNDO TABLE ...

  3. ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法

    ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块  --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...

  4. 转载:Oracle RAC日常基本维护命令

    本文转载自: https://blog.csdn.net/tianlesoftware/article/details/5358573 Oracle RAC日常基本维护命令 好文转载, Oracle  ...

  5. Oracle 史上最全近百条Oracle DBA日常维护SQL脚本指令

    史上最全近百条Oracle DBA日常维护SQL脚本指令 https://mp.weixin.qq.com/s?__biz=MjM5MDAxOTk2MQ==&mid=2650281305&am ...

  6. 优秀后端架构师必会知识:史上最全MySQL大表优化方案总结

    本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186 1.引言   MySQL作为开源技术的代表作之一,是 ...

  7. [No00004F]史上最全Vim快捷键键位图(入门到进阶)vim常用命令总结

    在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...

  8. 【2016年特别福利】史上最全CSS学习资料大全

    css学习篇 [2016年特别福利]史上最全CSS学习资料大全

  9. 史上最全最实用HBuilder快捷键大全

    史上最全最实用HBuilder快捷键大全 一.文件操作二.编辑操作三.插入操作四.转义操作五.选择操作六.跳转操作七.查找操作八.运行九.视图一.文件操作新建菜单: ctrl + N新建: ctrl ...

随机推荐

  1. 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)

    1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对 ...

  2. FZU Problem 2062 Suneast & Yayamao

    http://acm.fzu.edu.cn/problem.php?pid=2062 题目大意: 给你一个数n,要求求出用多少个数字可以表示1~n的所有数. 思路: 分解为二进制. 对于一个数n,看它 ...

  3. Fiddler--功能简介

    Fiddler的基本介绍 Fiddler的官方网站:  www.fiddler2.com Fiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料. Fiddler是最 ...

  4. Maven 使用Eclipse构建Maven的SpringMVC项目

    首先Eclipse需要安装Maven的插件,地址:http://m2eclipse.sonatype.org/sites/m2e. 用MyEclipse安装Maven插件,建出的Maven项目有些问题 ...

  5. [WPF自定义控件库]使用TextBlockHighlightSource强化高亮的功能,以及使用TypeConverter简化调用

    1. 强化高亮的功能 上一篇文章介绍了使用附加属性实现TextBlock的高亮功能,但也留下了问题:不能定义高亮(或者低亮)的颜色.为了解决这个问题,我创建了TextBlockHighlightSou ...

  6. 5、regulator系统的概念及测试

    概念:Regulator : 电源芯片, 比如电压转换芯片Consumer : 消费者,使用电源的部件, Regulator是给Consumer供电的machine : 单板,上面焊接有Regulat ...

  7. [PReact] Integrate Redux with Preact

    Redux is one of the most popular state-management libraries and although not specific to React, it i ...

  8. Android内存优化杂谈

    Android内存优化是我们性能优化工作中比较重要的一环,这里其实主要包括两方面的工作: 优化RAM,即降低运行时内存.这里的目的是防止程序发生OOM异常,以及降低程序由于内存过大被LMK机制杀死的概 ...

  9. 24、驱动调试之printk

    1.uboot跳转到内核启动的时候通过环境变量 console设置控制台 (console = ttySAC0表示输出到串口,并从串口结束输入,也可以设置console=tty1,表示输出到LCD,从 ...

  10. 解读AFNetworking中Demo的MVC

    Demo的下载地址:AFNetworking下载 打开Demo: 现实的功能.就是一个简易的微博timeline界面: 项目预览: 用到的第三方:AFNetworking 和 UIKit+AFNetw ...