ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 备份与恢复--重建控制文件

备份与恢复--重建控制文件

原创 Linux操作系统 作者:ora_pascal1982 时间:2013-08-16 14:14:05 0 删除 编辑

场景:

控制文件丢失,有老的数据文件,日志问保存完整。做恢复操作。

模拟流程 :



(点击图片看大图)

模拟场景:

1)备份数据文件

alter database begin backup;
copy datafile;
alter database end backup;

2)备份控制文件到trace下,获取重建控制文件的执行语句

alter database backup controlfile to trace;
--切换日志文件,确保归档日志的最大的scn 大于控制文件检查点的scn(因为后面将使用RESETLOGS方式重建数据库,到时redo日志将丢失)
alter system switch logfile;
--获取归档日志文件信息
select * from v$loghist;
--获取trace文件路径
desc parameter user_dump_desc;
--打开控制文件重建脚本
cat /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_1622.trc

3)删除控制文件

--获取控制文件路径
select name from v$controfile;
--关闭数据库
shutdown immediate
--删除控制文件(模拟控制文件丢失)
rm control0*

4)把备份的数据文件拷贝回来

cp orcl.bak/* orcl/

5)重建控制文件,使用的语句均来自trace文件

--启动数据库到nomount
STARTUP NOMOUNT
--重建控制文件
CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  '/u01/app/oracle/oradata/orcl/system01.dbf',
  '/u01/app/oracle/oradata/orcl/sysaux01.dbf',
  '/u01/app/oracle/oradata/orcl/undotbs01.dbf',
  '/u01/app/oracle/oradata/orcl/example01.dbf',
  '/u01/app/oracle/oradata/orcl/user01.dbf'
CHARACTER SET AL32UTF8
;

--数据库处于mount状态,验证如下:
select open_mode from v$database;

6)恢复数据库,重建incarnation表

RECOVER DATABASE USING BACKUP CONTROLFILE;
恢复临时文件
ALTER TABLESPACE TEMP03 ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp03.dbf'
     SIZE 10485760  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;

完毕!


001.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29121762/viewspace-768672/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2013-08-16

  • 博文量
    9
  • 访问量
    28445