打开数据库
※成功打开数据库的条件:
※数据库从关闭到完全打开,数据库会在相应阶段执行一致性检查,包括:
①NOMOUNT阶段:实例要到达NOMOUNT状态,就必须读取初始化参数文件。
②MOUNT阶段:实例进入MOUNT状态,要经过检查控制文件是否存在且已同步。即使有一个控制文件缺失或损坏都会报错并保持在NOMOUNT状态。
③OPEN阶段:
△只要数据文件不属于SYSTEM或UNDO 表空间,管理员就可使数据文件脱机并打开实例。
※更改实例状态
实例失败
※打开实例后,丢失以下项时,实例会失败:
※多数情况下,实例失败后并没完全关闭,但不能继续工作。
△必须在关闭数据库后才能从这些类型的介质故障进行恢复,因此,管理员必须先执行SHUTDOWN ABORT命令,然后才能开始恢复工作。
恢复方法——丢失控制文件
※只要至少保留了一个控制文件,可按如下步骤恢复:
△建议在任何时间至少要保留两个控制文件
恢复方法——丢失重做日志文件
※丢失了单个重做日志组成员后进行恢复并不会影响运行的实例,按如下步骤恢复:
①检查预警日志,确定是否有缺失的日志文件
②通过以下方式恢复缺失的文件,先删除丢失的重做日志成员:
| SQL> ALTER DATABASE DROP LOGFILE MEMBER 'redo01a.log'; |
| SQL> ALTER DATABASE ADD LOGFILE MEMBER 'redo01a.log' TO GROUP 2; |
※△如果介质故障是由于丢失了磁盘驱动器或控制器造成的,请重命名缺失文件。
※如果重做日志组已归档,或者您处于NOARCHIVELOG 模式下,恢复如下:
①选择清除受影响的日志组
| SQL> ALTER DATABASE CLEAR LOGFILE GROUP #; |
#为相应组号
②重新创建缺失文件来解决问题
|
SQL>ALTER DATABASE ADD LOGFILE GROUP # 'redo#.rdo'; |
△清除未归档的日志组,使用以下命令:
|
SQL> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP #; |
恢复方式——NOARCHIVELOG/ARCHIVELOG模式下
(一)NOARCHIVELOG模式下丢失数据文件
※如果在NOARCHIVELOG 模式下丢失了数据库中的任何数据文件,则需要完全还原数据库,包括控制文件和所有数据文件。
※恢复步骤如下:
(二)ARCHIVELOG模式下丢失非关键数据文件
※如果在NOARCHIVELOG 模式下丢失了数据库中的任何数据文件,则需要完全还原数据库,包括控制文件和所有数据文件。
※由于数据库处于ARCHIVELOG 模式,因此可恢复到上次提交的时间,用户不必重新输入任何数据
(三)ARCHIVELOG模式下丢失系统关键数据文件
※如果某个数据文件丢失或损坏了,且该文件属于SYSTEM或UNDO 表空间,恢复过程如下:
※由于数据库处于ARCHIVELOG 模式,因此可恢复到上次提交的时间,用户不必重新输入任何数据。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26121819/viewspace-707988/ ,如需转载,请注明出处,否则将追究法律责任。