zoukankan      html  css  js  c++  java
  • Oracle-11g 从表空间删除数据文件

    从表空间删除数据文件前提条件

    如果欲从表空间中删除数据文件,那么该数据文件必须为空,否则将报出"ORA-03262: the file is non-empty"的错误。
     
    从表空间删除数据文件步骤
    1.确定数据文件为空
    根据数据文件名称及表空间确定文件为空
    SQL> SELECT distinct b.owner, b.segment_name
    FROM dba_data_files a,
         dba_extents b
    WHERE a.file_id = b.file_id
    AND a.tablespace_name ='tablespace_name'
    AND a.file_name ='datafile_name';
    其中,tablespace_name 为数据文件所属表空间名称;datafile_name 为数据文件名称。
    注意:确保该语句查询结果为空。否则需将该数据文件内对象移除该数据文件。
    2.确保对应表空间无回收对象:
    SQL> SELECT original_name, type, ts_name, can_purge
    FROM dba_recyclebin
    WHERE ts_name='tablespace_name';
    其中,tablespace_name 为回收对象所属表空间名称。
    注意:确保该语句查询结果为空。否则需使用 PURGE TABLE 等命令清理回收对象。
    3.从表空间删除数据文件
    登录数据库服务器,进入 sqlplus 环境,运行如下语句。
    SQL> ALTER TABLESPACE tablespace_name DROP DATAFILE 'datafile_name';
    其中,tablespace_name 为数据文件所属表空间名称;datafile_name 为数据文件名称。
    注意:切勿执行中取消操作,谨记
    4.监控执行过程
    执行过程中,可能发生长时间卡死的情况,此时应多方位排查故障
    a.查看 alert.log
    在执行的数据库服务器上查看对应实例的 alert.log 文件。
    b.查看会话等待事件
    SQL> SELECT inst_id, sid, serial#, username, sql_id, event
    FROM gv$session;
    注意:很可能出现 enq TT - contention 的等待事件。应注意排查是否出现阻塞情况。
    c.排查阻塞情况
    SQL> SELECT inst_id, addr, sid, type, id1, id2, lmode, request, ctime, block
    FROM gv$lock
    WHERE (id1, id2, type) IN
        (SELECT id1, id2, type 
        FROM gv$lock
        WHERE request>0);
  • 相关阅读:
    象限极角排序
    并查集与二部图
    POJ 1743 后缀数组不重叠最长重复子串
    POJ 2104 【主席树】【区间第K大】
    两串前缀最长后缀
    Codeforces 450D Jzzhu and Cities [heap优化dij]
    Codeforces 119C DP
    HDU 3068 [最长回文子串]
    Codeforces 132E Bits of merry old England 【最小费用最大流】
    ZOJ 3911Prime Query [素数处理 + 线段树]
  • 原文地址:https://www.cnblogs.com/autopenguin/p/6179892.html
Copyright © 2011-2022 走看看