免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2674 | 回复: 1

丢失全部数据库文件及全部redolog的恢复方法,可用作RMAN数据库迁移 [复制链接]

论坛徽章:
0
发表于 2008-12-27 17:06 |显示全部楼层
模拟数据库全部文件丢失(redolog、datafile、controlfile、spfile),只依靠备份恢复的过程,测试数据库版本为11g,可用作RMAN迁移数据库

SQL> shutdown abort;
ORACLE 例程已经关闭。
SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断


C:\Documents and Settings\Administrator>cd \

C:\>g:\
'g:\' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\>g:

G:\>cd oradata

G:\oradata>dir
驱动器 G 中的卷没有标签。
卷的序列号是 30F4-B971

G:\oradata 的目录

2008-12-27  13:46    <DIR>          .
2008-12-27  13:46    <DIR>          ..
2008-12-27  16:22    <DIR>          orcl
               0 个文件              0 字节
               3 个目录  8,586,199,040 可用字节

G:\oradata>cd orcl

G:\oradata\orcl>dir
驱动器 G 中的卷没有标签。
卷的序列号是 30F4-B971

G:\oradata\orcl 的目录

2008-12-27  16:22    <DIR>          .
2008-12-27  16:22    <DIR>          ..
2008-12-27  16:34        10,076,160 CONTROL01.CTL
2008-12-27  16:34        10,076,160 CONTROL02.CTL
2008-12-27  16:34        10,076,160 CONTROL03.CTL
2008-12-27  16:34        52,429,312 REDO01.LOG
2008-12-27  16:34        52,429,312 REDO02.LOG
2008-12-27  16:34        52,429,312 REDO03.LOG
2008-12-27  16:34       214,704,128 SYSAUX01.DBF
2008-12-27  16:34       335,552,512 SYSTEM01.DBF
2008-12-27  16:34       225,452,032 UNDOTBS01.DBF
2008-12-27  16:34         5,251,072 USERS01.DBF
              10 个文件    968,476,160 字节
               2 个目录  8,586,199,040 可用字节

G:\oradata\orcl>del *
G:\oradata\orcl\*, 是否确认(Y/N)? y

G:\oradata\orcl>del *.*
G:\oradata\orcl\*.*, 是否确认(Y/N)? y

G:\oradata\orcl>dir
驱动器 G 中的卷没有标签。
卷的序列号是 30F4-B971

G:\oradata\orcl 的目录

2008-12-27  16:34    <DIR>          .
2008-12-27  16:34    <DIR>          ..
               0 个文件              0 字节
               2 个目录  9,554,685,952 可用字节

G:\oradata\orcl>del E:\oracle\product\11.1.0\db_1\database\SPFILEORCL.ORA

G:\oradata\orcl>cd g:\backup

G:\backup>dir
驱动器 G 中的卷没有标签。
卷的序列号是 30F4-B971

G:\backup 的目录

2008-12-27  15:24    <DIR>          .
2008-12-27  15:24    <DIR>          ..
2008-12-27  15:22           539,648 BACKUP_20081227_1_1_01K3AHM0_1_1
2008-12-27  15:23       391,593,984 BACKUP_20081227_2_1_02K3AHM2_1_1
2008-12-27  15:23             4,608 BACKUP_20081227_3_1_03K3AHOF_1_1
2008-12-27  15:24         9,830,400 CTRL_C-1202355191-20081227-00
               4 个文件    401,968,640 字节
               2 个目录  9,554,685,952 可用字节

G:\backup>cd E:\oracle\product\11.1.0\db_1\database

G:\backup>e:

(如果你不是迁移数据库,以下重建密码文件的过程可以不需要做)

E:\oracle\product\11.1.0\db_1\database>orapwd file=PWDorcl.ora password=sys entries=5;

OPW-00005: 存在同名文件 - 请删除或重命名

E:\oracle\product\11.1.0\db_1\database>del PWDorcl.ora

E:\oracle\product\11.1.0\db_1\database>orapwd file=PWDorcl.ora password=sys entries=5;

E:\oracle\product\11.1.0\db_1\database>rman target /

恢复管理器: Release 11.1.0.6.0 - Production on 星期六 12月 27 16:43:09 2008

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup nomount;

启动失败: ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'E:\ORACLE\PRODUCT\11.1.0\DB_1\DATABASE\INITORCL.ORA
'

在没有参数文件的情况下启动 Oracle 实例以检索 spfile
Oracle 实例已启动

系统全局区域总计     159019008 字节

Fixed Size                     1331852 字节
Variable Size                 67112308 字节
Database Buffers              83886080 字节
Redo Buffers                   6688768 字节

RMAN> exit


恢复管理器完成。

E:\oracle\product\11.1.0\db_1\database>rman target /

恢复管理器: Release 11.1.0.6.0 - Production on 星期六 12月 27 16:43:31 2008

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到目标数据库: DUMMY (未装载)

RMAN> restore spfile to 'E:\oracle\product\11.1.0\db_1\database\spfileorcl.ora'
from 'G:\backup\CTRL_C-1202355191-20081227-00';

启动 restore 于 27-12月-08
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=99 设备类型=DISK

通道 ORA_DISK_1: 正在从 AUTOBACKUP G:\backup\CTRL_C-1202355191-20081227-00 还原
spfile
通道 ORA_DISK_1: 从 AUTOBACKUP 还原 SPFILE 已完成
完成 restore 于 27-12月-08

RMAN> shutdown immediate;

使用目标数据库控制文件替代恢复目录
Oracle 实例已关闭

RMAN> startup nomount;

已连接到目标数据库 (未启动)
Oracle 实例已启动

系统全局区域总计     535662592 字节

Fixed Size                     1334380 字节
Variable Size                167773076 字节
Database Buffers             360710144 字节
Redo Buffers                   5844992 字节

RMAN> restore controlfile from 'g:\backup\CTRL_C-1202355191-20081227-00';

启动 restore 于 27-12月-08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=153 设备类型=DISK

通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:07
输出文件名=G:\ORADATA\ORCL\CONTROL01.CTL
输出文件名=G:\ORADATA\ORCL\CONTROL02.CTL
输出文件名=G:\ORADATA\ORCL\CONTROL03.CTL
完成 restore 于 27-12月-08

RMAN> exit


恢复管理器完成。

E:\oracle\product\11.1.0\db_1\database>sqlplus / as sysdba

SQL*Plus: Release 11.1.0.6.0 - Production on 星期六 12月 27 16:45:27 2008

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> alter database mount;

数据库已更改。

SQL> alter database backup controlfile to trace;

数据库已更改。

SQL> shutdown abort;
ORACLE 例程已经关闭。
SQL>


找到TRACE文件,将源文件内容修改如下:
CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'G:\ORADATA\ORCL\REDO01.LOG'  SIZE 50M,
  GROUP 2 'G:\ORADATA\ORCL\REDO02.LOG'  SIZE 50M,
  GROUP 3 'G:\ORADATA\ORCL\REDO03.LOG'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  'G:\ORADATA\ORCL\SYSTEM01.DBF',
  'G:\ORADATA\ORCL\SYSAUX01.DBF',
  'G:\ORADATA\ORCL\UNDOTBS01.DBF',
  'G:\ORADATA\ORCL\USERS01.DBF'
CHARACTER SET ZHS16GBK
;

这里主要是修改了以RESETLOGS方式重建控制文件,这样以RESETLOGS方式打开数据库时REDOLOG可以重建


先不要重建控制文件,先要restore恢复必要的数据文件:
C:\>rman target /

恢复管理器: Release 11.1.0.6.0 - Production on 星期六 12月 27 16:55:18 2008

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到目标数据库: ORCL (未装载)

RMAN> startup mount;

数据库已经启动
数据库已装载

RMAN> restore database;

启动 restore 于 27-12月-08
启动 implicit crosscheck backup 于 27-12月-08
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=156 设备类型=DISK
已交叉检验的 3 对象
完成 implicit crosscheck backup 于 27-12月-08

启动 implicit crosscheck copy 于 27-12月-08
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 27-12月-08

搜索恢复区中的所有文件
正在编制文件目录...
没有为文件编制目录

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 G:\ORADATA\ORCL\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 G:\ORADATA\ORCL\SYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 G:\ORADATA\ORCL\UNDOTBS01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 G:\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份片段 G:\BACKUP\BACKUP_20081227_2_1_02K3AHM2_1_1
通道 ORA_DISK_1: 段句柄 = G:\BACKUP\BACKUP_20081227_2_1_02K3AHM2_1_1 标记 = TAG20081227T152242
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:01:05
完成 restore 于 27-12月-08

RMAN> exit


恢复管理器完成。

C:\>sqlplus / as sysdba;

SQL*Plus: Release 11.1.0.6.0 - Production on 星期六 12月 27 16:59:26 2008

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> shutdown abort;
ORACLE 例程已经关闭。
SQL> startup nomount;
ORACLE 例程已经启动。

Total System Global Area  535662592 bytes
Fixed Size                  1334380 bytes
Variable Size             167773076 bytes
Database Buffers          360710144 bytes
Redo Buffers                5844992 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  ARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 292
  7  LOGFILE
  8    GROUP 1 'G:\ORADATA\ORCL\REDO01.LOG'  SIZE 50M,
  9    GROUP 2 'G:\ORADATA\ORCL\REDO02.LOG'  SIZE 50M,
10    GROUP 3 'G:\ORADATA\ORCL\REDO03.LOG'  SIZE 50M
11  -- STANDBY LOGFILE
12  DATAFILE
13    'G:\ORADATA\ORCL\SYSTEM01.DBF',
14    'G:\ORADATA\ORCL\SYSAUX01.DBF',
15    'G:\ORADATA\ORCL\UNDOTBS01.DBF',
16    'G:\ORADATA\ORCL\USERS01.DBF'
17  CHARACTER SET ZHS16GBK
18  ;

控制文件已创建。

SQL> recover database using backup controlfile until cancel;
ORA-00279: ?? 308379 (? 12/27/2008 15:22:43 ??) ???? 1 ????
ORA-00289: ??:
G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_12_27\O1_MF_1_20_%U_.ARC
ORA-00280: ?? 308379 (???? 1) ??? #20 ?


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open resetlogs;

数据库已更改。

SQL>

论坛徽章:
0
发表于 2008-12-29 21:50 |显示全部楼层
好帖,属于基础类的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP