• 18->数据文件损坏修复


    1.数据文件恢复原理:   

         由于数据的修改会体现在联机重做日志中 所以数据可以通过重做日志恢复到数据文件中 所以如果是归档模式下 可以全部数据恢复 如果是非归档模式下 只能恢复到当前重做日志

    中存在的数据

    2.模拟数据文件损坏

    添加一个表空间和临时表空间 并且创建一个用户 指定该表空间和默认表空间

    create tablespace mydata datafile 'C:appjiaozioradataorclmydata.dbf' s
    ize 100m autoextend on next 10M;
    表空间已创建。

    SQL> create temporary tablespace mytemp tempfile 'C:appjiaozioradataorclmyt
    mp.dbf' size 100m autoextend on next 10m;
    表空间已创建。

    SQL> create user my identified by my default tablespace mydata temporary tablesp
    ace mytemp;

    SQL> grant dba to my;
    用户已创建。

    登录my 创建表 插入数据

    conn my/my

    create table u(id number,name varchar2(20));

    insert into u values(1,'zs');

    insert into u values(2,'ls');

    insert into u values(3,'ww');

    commit;

    将数据库关闭 

     shutdown immediate

    将数据文件mydata.dbf删除

    此时启动数据库会出现异常

    SQL> startup
    ORACLE 例程已经启动。
    Total System Global Area 1071333376 bytes
    Fixed Size                  1375792 bytes
    Variable Size             671089104 bytes
    Database Buffers          394264576 bytes
    Redo Buffers                4603904 bytes
    数据库装载完毕。
    ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
    ORA-01110: 数据文件 6: 'C:APPJIAOZIORADATAORCLMYDATA.DBF'

    3.恢复数据文件

    通过启动抛出异常 可以看出数据文件编号6(mydata.dbf)文件出现了异常 可以通过select * from v$recover_file; 查询需要恢复文件编号

    此时 因为数据文件已经被删除 所以需要重建该文件 

    SQL> alter database create datafile 'C:APPJIAOZIORADATAORCLMYDATA.DBF'
    数据库已更改。

    开始恢复数据文件

    SQL> recover datafile 6;  --或者 recover datafile ‘C:APPJIAOZIORADATAORCLMYDATA.DBF’
    完成介质恢复。
    SQL> alter database open
    数据库已更改。

    测试是否成功恢复

    SQL> conn my/my;
    已连接。
    SQL> select * from u;


            ID NAME
    ---------- --------------------
             1 zs
             2 ls
             3 ww
             4 zl



    4.恢复损坏临时表空间

      临时表空间如果被删除 默认启动会自动重建

     如果临时表空间 出现问题可以新建一个临时表空间 

     alter database default temporary tablespace 临时表空间名称



  • 相关阅读:
    selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
    ERROR: virtualenvwrapper could not find virtualenv in your path
    VM中的Centos 7配置静态IP
    CentOS7 安装JumpServer
    ERROR 1130 (HY000): Host 'test177' is not allowed to connect to this MySQL server
    获取到一张表中指定字段重复的数量
    Windows7设置局域网文件共享
    vmware虚拟机安装Windows 7后虚拟机自动挂起
    关于PHP版本比较函数version_compare的问题
    关于数据表中一对多、多对一关系的设计
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331225.html
Copyright © 2020-2023  润新知