ITPub博客

首页 > 数据库 > Oracle > 表空间

表空间

原创 Oracle 作者:QQ1521 时间:2017-04-19 10:46:02 0 删除 编辑

--创建表空间
  --语法:
  CREATE [ TEMPORARY | UNDO ] TABLESPACE tablespace_name
  [ DATAFILE datafile_tempfile_spacification ]
  [ BLOCKSIZE number K ]
  [ ONLINE | OFFLINE ]
  [ LOGGING | NOLOGGING ]
  [ FORCE LOGGGING ]
  [ DEFAULT STORAGE storage ]
  [ COMPRESS | NOCOMPRESS ]
  [ PERMANENT | TEMPORARY ]
  [ EXTENT MANAGEMETN DICTIONARY |
  LOCAL [ AUTOALLOCATE | UNIFORM SIZE number K | M ]  ]
  [ SEGMENT SPACE MANAGEMENT AUTO | MANUAL ];
  --实例:
  --临时表空间
  CREATE TEMPORARY TABLESPACE CHENCHAO_TEMP
         --LOGGING --创建表空间时重做日志,数据丢失可找回,如果是备份表空间可换成NOLOGGING
         TEMPFILE 'D:\APP\ORACLE\ORADATA\ORCL\CHENCHAO_TEMP.DBF' --数据文件路径
         SIZE 200M --初始大小,需跟在路径后
         AUTOEXTEND ON --自动扩展表表空间,设成OFF则不扩展
         NEXT 10M --自增大小
         MAXSIZE 1024M--表空间最大值,单位为M或K,可以无限制UNLIMITED
         EXTENT MANAGEMENT LOCAL--存储区管理方法,优先LOCAL
         ;
  --基本表空间
  CREATE TABLESPACE CHENCHAO_DATA
         LOGGING --创建表空间时重做日志,数据丢失可找回,如果是备份表空间可换成NOLOGGING
         DATAFILE 'D:\APP\ORACLE\ORADATA\ORCL\CHENCHAO_DATA.DBF' --数据文件路径
         SIZE 200M --初始大小,需跟在路径后
         AUTOEXTEND ON --自动扩展表表空间,设成OFF则不扩展
         NEXT 10M --自增大小
         MAXSIZE 1024M--表空间最大值,单位为M或K,可以无限制UNLIMITED
         EXTENT MANAGEMENT LOCAL--存储区管理方法,优先LOCAL
         ; 
  --查看表空间使用情况:
  SELECT A.TABLESPACE_NAME "表空间名",
         TOTAL "表空间大小",
         FREE "表空间剩余大小",
         (TOTAL - FREE) "表空间使用大小",
         TOTAL / (1024 * 1024 * 1024) "表空间大小(G)",
         FREE / (1024 * 1024 * 1024) "表空间剩余大小(G)",
         (TOTAL - FREE) / (1024 * 1024 * 1024) "表空间使用大小(G)",
         ROUND((TOTAL - FREE) / TOTAL, 4) * 100 "使用率 %"
    FROM (SELECT TABLESPACE_NAME, SUM(BYTES) FREE
            FROM DBA_FREE_SPACE
           GROUP BY TABLESPACE_NAME) A,
         (SELECT TABLESPACE_NAME, SUM(BYTES) TOTAL
            FROM DBA_DATA_FILES
           GROUP BY TABLESPACE_NAME) B
   WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME;
  --修改表的表空间
  ALTER TABLE CHENCHAO.EMP MOVE TABLESPACE CHENCHAO_DATA;


--查询表空间是否自动扩展
SELECT T.TABLESPACE_NAME,
       D.FILE_NAME,
       D.AUTOEXTENSIBLE,
       D.BYTES,
       D.MAXBYTES,
       D.STATUS
  FROM DBA_TABLESPACES T, DBA_DATA_FILES D
 WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME
 ORDER BY TABLESPACE_NAME, FILE_NAME;
--查看表空间的大小
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
       D.TOT_GROOTTE_MB "表空间大小(M)",
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
       TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                     2),
               '990.99') "使用比",
       F.TOTAL_BYTES "空闲空间(M)",
       F.MAX_BYTES "最大块(M)"
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
               ROUND(MAX(BYTES) / (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), 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;


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;

alter database datafile '/app/data/ctcore/tblspace_payment01.dbf' resize 4096M;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30488948/viewspace-2137576/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: DB_LINKS&SYNONYM
下一篇: 查询锁表记录
请登录后发表评论 登录
全部评论

注册时间:2015-09-17

  • 博文量
    15
  • 访问量
    10318