• 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 用户名;

  • 相关阅读:
    C#|.NET从控制反转(依赖注入)想到事件注入 (非AOP)
    libevent 2.1.3 for VS2008 source code
    如何进行object以及Array(数组)的深复制
    Flash ProgressEvent.bytesTotal为0的原因和解决
    Flash字体嵌入方法总结—(4)进阶篇
    mysql分组取每组前几条记录(排名) 附group by与order by的研究
    Flash游戏优化技巧
    教程:深入理解Flash的沙箱 – Application Domains
    Flash Player 11异步解码Bitmap
    常用公式
  • 原文地址:https://www.cnblogs.com/qinjf/p/8414632.html
Copyright © 2020-2023  润新知