zoukankan      html  css  js  c++  java
  • oracle表空间的管理

    1、创建表空间

    CREATE TABLESPACE TBS_TR_DATA
    DATAFILE '/oradata/rTBS_TR_DATA_001.dbf'
    SIZE 64G
    EXTENT MANAGEMENT LOCAL
    SEGMENT SPACE MANAGEMENT AUTO ONLINE;

    ALTER TABLESPACE TBS_TR_DATA
    ADD DATAFILE '/oradata/rTBS_TR_DATA_002.dbf'
    SIZE 64G
    AUTOEXTEND OFF;

    2、查询表空间的基本信息

    --包含数据库中所有表空间的描述信息
    SELECT * FROM DBA_TABLESPACES

    --包含当前用户的表空间的描叙信息
    SELECT * FROM USER_TABLESPACES

    --包含从控制文件中获取的表空间名称和编号信息
    SELECT * FROM V$TABLESPACE;

    3、查看数据文件

    --包含数据文件以及所属的表空间的描述信息
    SELECT * FROM DBA_DATA_FILES

    --包含临时数据文件以及所属的表空间的描述信息
    SELECT * FROM DBA_TEMP_FILES

    --包含从控制文件中获取的数据文件的基本信息,包括它所属的表空间名称、编号等
    SELECT * FROM V$DATAFILE

    --包含所有临时数据文件的基本信息
    SELECT * FROM V$TEMPFILE

    4、查看表空间的使用情况

    SELECT A.TABLESPACE_NAME AS TABLESPACE_NAME,
    ROUND(A.BYTES/(1024*1024*1024),2) AS "TOTAL(G)" ,
    ROUND(B.BYTES/(1024*1024*1024),2) AS "USED(G)" ,
    ROUND(C.BYTES/(1024*1024*1024),2) AS "FREE(G)" ,
    ROUND((B.BYTES * 100) / A.BYTES,2) AS "% USED" ,
    ROUND((C.BYTES * 100) / A.BYTES,2) AS "% 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;

    5、计算表空间使用情况(考虑了数据文件自动增长情况)

    SELECT UPPER(F.TABLESPACE_NAME) AS "表空间名称",
    ROUND(D.AVAILB_BYTES ,2) AS "表空间大小(G)",
    ROUND(D.MAX_BYTES,2) AS "最终表空间大小(G)",
    ROUND((D.AVAILB_BYTES - F.USED_BYTES),2) AS "已使用空间(G)",
    TO_CHAR(ROUND((D.AVAILB_BYTES - F.USED_BYTES) / D.AVAILB_BYTES * 100,
    2), '999.99') AS "使用比",
    ROUND(F.USED_BYTES, 6) AS "空闲空间(G)",
    F.MAX_BYTES AS "最大块(M)"
    FROM (
    SELECT TABLESPACE_NAME,
    ROUND(SUM(BYTES) / (1024 * 1024 * 1024), 6) USED_BYTES,
    ROUND(MAX(BYTES) / (1024 * 1024 * 1024), 6) MAX_BYTES
    FROM SYS.DBA_FREE_SPACE
    GROUP BY TABLESPACE_NAME) F,
    (SELECT DD.TABLESPACE_NAME,
    ROUND(SUM(DD.BYTES) / (1024 * 1024 * 1024), 6) AVAILB_BYTES,
    ROUND(SUM(DECODE(DD.MAXBYTES, 0, DD.BYTES, DD.MAXBYTES))/(1024*1024*1024),6) MAX_BYTES
    FROM SYS.DBA_DATA_FILES DD
    GROUP BY DD.TABLESPACE_NAME) D
    WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
    ORDER BY 4 DESC

    6、删除表空间

    DROP TABLESPACE 表空间名 [INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]]
    SQL> DROP TABLESPACE URER01 INCLUDING CONTENTS;
    如果在表空间中包含数据库对象,则必须在DROP TABLESPACE语句中显示的指定INCLUDING CONTENTS. 如果要再删除表空间USER的同时删除它所对应的数据文件,则可以使用下面的语句
    SQL>DROP TABLESPACE USER01 INCLUDING CONTENTS AND DATAFILES;
    注意:删除表空间时,CONTENTS与DATAFILES选项错位,会报如下错误:
    SQL>DROP TABLESPACE TBS_STAGE_DAT INCLUDING DATAFILES AND CONTENTS
    ORA-01911:contents keyword expected

    7、给表空间增加数据文件

    SQL> ALTER TABLESPACE TBS_TR_IND
    ADD DATAFILE '/oradata/rTBS_TR_IND_002.dbf'
    SIZE 32G
    AUTOEXTEND OFF;

    SQL> ALTER TABLESPACE TBS_EDS_DAT
    ADD DATAFILE 'G:datafileTBS_EDS_DAT01.DBF'
    SIZE 100M
    AUTOEXTEND ON
    NEXT 10M
    MAXSIZE 20480M;

    SQL> ALTER TABLESPACE temp01
    ADD TMPFILE 'D:ORACLEDATA emp01_02.dbf' SIZE 10M REUSE;

    8、调整数据文件大小

    ALTER DATABASE DATAFILE '/database/oracle/oradata/gsp/tbs_dm_data_002.dbf'
    RESIZE 500M;

    9、删除数据文件

    ALTER TABLESPACE TEST
    DROP DATAFILE '/database/oracle/oradata/gsp/tbs_dm_data_002.dbf'

    10、移动数据文件

    1.1:连接数据库
    SQL> conn sysdba/manage as sysdba
    已连接。

    1.2:把要移动数据文件的表空间脱机
    SQL> ALTER TABLESPACE TBS_EDS_DAT OFFLINE NORMAL ;
    表空间已更改。

    1.3:移动物理数据文件。

    1.4:重命名文件
    SQL> ALTER DATABASE
    RENAME FILE
    'D:ORACLEPRODUCT10.2.0ORADATAWGODSTBS_EDS_DAT.DBF'
    TO
    'G:datafileTBS_EDS_DAT.DBF';
    数据库已更改。

    1.5:表空间联机
    SQL> ALTER TABLESPACE TBS_DM_DAT ONLINE;
    表空间已更改。

    1.6:如果要删除以前的数据文件,则必须先关闭数据库,手动删除文件,否则会报错。
    SQL> shutdow immediate
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。

    SQL> startup
    ORACLE 例程已经启动。
    Total System Global Area 612368384 bytes
    Fixed Size 1250428 bytes
    Variable Size 104860548 bytes
    Database Buffers 499122176 bytes
    Redo Buffers 7135232 bytes
    数据库装载完毕。
    数据库已经打开。

    11、移动表在表空间的物理位置

    alter table t1 move;

    12、清除表空间

    purge tablespace 用户名;

  • 相关阅读:
    女白领在家玩打地鼠游戏,无意间学会python编程,还有教程有源码
    Python入门小游戏,炫酷打地鼠教程第二部分,都是干货
    从python入门开始,玩这个炸弹超人小游戏,打通关就可以掌握编程
    Python如何入门?直接按这个方式玩炸弹超人小游戏,就能掌握编程
    Python如何入门?搭配这些游戏,学习高效还有趣
    资深程序员教你,利用python预测NBA比赛结果,太精彩了
    Python入门小迷宫,走完这个迷宫,就能掌握python编程基础
    从零基础开始,用python手把手教你玩跳一跳小游戏,直接打出高分
    戏精程序员,用python开发了一个女朋友,天天秀恩爱
    Python入门小游戏之坦克大战,不懂编程都能做出来,附所有源码
  • 原文地址:https://www.cnblogs.com/qinjf/p/8414632.html
Copyright © 2011-2022 走看看