zoukankan      html  css  js  c++  java
  • 数据文件坏删除数据文件

    没有简单的方法来删除表空间的数据文件,唯一的方法是删除整个定义的表空间,步骤有下面(前提是这个数据文件上的数据是不需要了):


    如果数据库运行在非归档模式:


    1. MOUNT数据库 - startup mount
    2. 删除数据文件 - alter database datafile xxx offline drop
    3. 打开(OPEN)数据库 - alter database open
    4. 查看属于该表空间的所有对象:
           select owner, segment_name, segment_type
           from dba_segments
           where tablespace_name='tbs_name'
    5. 导出该表空间的所有对象------用exp命令来做
    6. 删除表空间 - drop tablespace tbs_name including contents
    7. 删除这个表空间的所有物理的数据文件Delete the physical datafiles belonging to the tablespace
    8. 重建表空间,导入前面导出的DMP文件.



    如果数据库是运行在归档模式:


    1. MOUNT数据库 - startup mount
    2. 删除数据文件 - alter database datafile xxx offline
    (Note: offline这个数据文件,此数据文件还是属于这个数据库的一部分,只是在控制文件中将它的状态标记为offline.)
    3. 在操作系统一级删除物理的数据文件
    4. 打开(OPEN)数据库 - alter database open
    5. 后面的可以做下面操作:
     导出该表空间的对象
     删除表空间
     重建表空间并导入对象


    如果数据库运行在归档模式下,并且数据文件有备份:


    1.MOUNT数据库
    2.OFFLINE数据文件:alter database datafile xxx offline;
    3.将备份的数据文件拷贝到原来数据文件的位置.
    4.将备份数据文件到目前的所有归档日志放到归档目录.
    5.恢复数据文件:recover automatic datafile xxx(要输入全路径名)
    6.然后ONLINE数据文件:alter database datafile xxx online;
    7.打开(OPEN)数据库:alter database open;
    8.做一次数据库的关机全备份.

  • 相关阅读:
    Java初学—类与对象
    linux dd命令测试U盘读写速度
    路由器的几种访问方式
    制作Linux启动盘并安装Linux系统到实体机
    RAID阵列与LVM逻辑卷组创建
    有关Linux下库的概念、生成和升级和使用等
    LInux中VIM的使用和定制
    如何通过mount命令挂载存储设备
    硬盘分区和系统启动
    RAID阵列与LVM逻辑卷组原理
  • 原文地址:https://www.cnblogs.com/jimeper/p/1325319.html
Copyright © 2011-2022 走看看