技术开发 频道

Oracle数据库的备份与恢复方案

    1.4 联机热备份失败后,如何打开数据库?

    系统环境:
    1、操作系统:Windows 2000
    2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
    3、安装路径:C:ORACLE

    错误现象:

    进行联机热备份时,服务器发生故障,如掉电,重新启动服务器,启动数据库时,无法打开数据库,Oracle要求进行介质恢复,因为表空间还处在热备份状态。

    模拟现象及解决方法:

    先将数据库设置为归档模式 

C:>svrmgrl svrmgrl>connect internal svrmgrl>alter tablespace 表空间名 begin backup; --表空间热备模式没结束就强行关闭数据库,造成错误 svrmgrl>shutdown abort svrmgrl>startup mount --将此表空间的数据文件在没打开数据库时置成end backup模式 svrmgrl>alter database datafile '表空间的数据文件名' end backup; --或执行表空间介质恢复 svrmgrl>recover tablespace 表空间名; svrmgrl>alter database open;

    1.5 某个数据文件损坏,如何打开数据库?

    系统环境:
    1、操作系统:Windows 2000 Server,机器内存128M
    2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
    3、安装路径:C:ORACLE

    错误现象:
    因误操作,数据库中某一数据文件被误删,
    控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,
    显示以下错误
    ORA-01033: ORACLE initialization or shutdown in progress

    模拟现象:

create tablespace test datafile 'c:test.ora' size 5M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED default storage (initial 128K next 1M pctincrease 0) / 关闭所有服务stop.bat net stop "OracleWebAssistant0" net stop "OracleOraHome81TNSListener" net stop "OracleServiceORADB" shutdown c 在操作系统中删除test.ora文件 重新启动服务start.bat net start "OracleWebAssistant0" net start "OracleOraHome81TNSListener" net start "OracleServiceORADB"

    服务里OracleServiceORADB显示已启动,但用SQL*Plus无法连接,
    显示ORA-01033: ORACLE initialization or shutdown in progress

    解决方法:

    先让该数据文件脱机,就可以打开数据库

C:>svrmgrl svrmgrl>connect internal svrmgrl>shutdown svrmgrl>startup mount d --ARCHIVELOG模式命令,文件名要大写 svrmgrl>alter database datafile 'C:TEST.ORA' offline; --NOARCHIVELOG模式命令 svrmgrl>alter database datafile 'C:TEST.ORA' offline drop; svrmgrl>alter database open; --查询数据文件联、脱机状态 SQL> select file#,name,status from v$datafile; SQL> drop tablespace test; 表空间已丢弃。 _allow_resetlogs_corruption=true
0
相关文章