分享

Oracle只有数据文件恢复数据库

 1qxm19 2019-03-20

Oracle只有数据文件恢复数据库

恢复前准备工作

1 备份数据文件,文件路径为%ORACLE_NOME%/oradata/xxxxxxxx为数据库实例)

2备份ORACLE安装路径下的D:\app\Administrator\diag\rdbms\orcl\orcl\trace\alert_xxxx.log

xxxx为数据库实例)

恢复步骤

1安装oracle数据库,安装时不要创建数据库实例

2创建数据库实例:安装完成后创建数据库实例,实例名与原数据库实例相同,并创建

监听服务。

3拷贝数据文件:停止oracle相关服务,拷贝备份的数据文件(包括数据文件及日志文件)到新安装的oracle数据库

安装位置对应路径下,删除新成的控制文件及日志文件(%ORACLE_NOME%/oradata/下所有文件)、完成后重启oracle相关服务。

4准备重建控制文件脚本:打开事先备份的alert_XXX.log文件,查找最后一个create controlfile语句并修改以下部分

若该语句中包含NORESETLOGS,则将其改为RESETLOGS;原因是重做日志文件已经丢失。

LOGFILE段是指重做日志文件到期望的文件位置。

DATAFILE段是指定到数据文件的实际文件位置。不能包含临时表空间用到的文件,否则报错(ora-01503,ora-01160,ora-01110

注意:creat controlfile语句中如果包含NOARCHIVELOG,则为非归档模式,如为ARCHIVELOG,则为归档模式,没有则保持没有。

5重建控制文件

打开sqlplus 使用DBA登录数据库

关闭数据库

示例:SQL>shutdown immediate;

启动数据库,但不挂载数据文件

示例:SQL>startup nomount;

重建控制文件,执行准备好的重建控制文件脚本

示例;

Create controlfile reuse set database "orcl"

MAXINSTANCES 8

MAXLOGHISTORY 1

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

Datafile

'd:\app\Administrator\oradata\orcl\SYSTEM01.DBF',

'd:\app\Administrator\oradata\orcl\SYSAUX01.DBF',

'd:\app\Administrator\oradata\orcl\UNDOTBS01.DBF',

'd:\app\Administrator\oradata\orcl\USERS01.DBF',

'd:\app\Administrator\oradata\orcl\ZWILLING_USERS.DBF'

LOGFILE GROUP 1 ('d:\app\Administrator\oradata\orcl\redo01.log') SIZE 51200K,

GROUP 2 ('d:\app\Administrator\oradata\orcl\redo02.log') SIZE 51200K,

GROUP 3 ('d:\app\Administrator\oradata\orcl\redo03.log') SIZE 51200K RESETLOGS;

resetlogs参数启动数据库,重新生成重做日志文件

   SQL>alter database open resetlogs

注意:执行启动数据库时报错(ORA-01194,ORA-01110,解决办法:recover重做日志文件。

示例:SQL>recover database using backup controlfile until cancel;回车,当提示Specify log:{=suggested|filename|AUTO|CANCEL}

输入日志文件地址如:d:\app\Administrator\oradata\orcl\redo01.log

日志文件redo01.log还有错误,继续SQL>alter database open resetlogs

SQL>recover database using backup controlfile until cancel

输入日志文件地址如:d:\app\Administrator\oradata\orcl\redo02.log

提示介质恢复完成,

使用带resetlogs参数启动数据库SQL>alter database open resetlogs

6添加临时表空间

示例:

SQL>alter tablespace temp add tempfile

   2  'd:\app\Administrator\oradata\orcl\TEMP01.DBF' reuse;

7测试:退出sqlplus,重启数据库服务,使用原数据库普通用户的用户名密码登录;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多