Chinaunix首页 | 论坛 | 博客
  • 博客访问: 214270
  • 博文数量: 123
  • 博客积分: 3066
  • 博客等级: 中校
  • 技术积分: 1920
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-23 21:22
文章分类

全部博文(123)

文章存档

2012年(1)

2010年(1)

2009年(48)

2008年(73)

我的朋友

分类: Oracle

2008-12-31 15:16:49

发表于 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              .
2008-12-27  13:46              ..
2008-12-27  16:22              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              .
2008-12-27  16:22              ..
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              .
2008-12-27  16:34              ..
               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              .
2008-12-27  15:24              ..
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 ?


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

数据库已更改。

SQL>



您对本贴的看法:

__________________________________

我要这天,再遮不住我眼,要这地,再埋不了我心,要这众生,都明白我意,要那诸佛,都烟消云散!
| | |
(campanula)
天使



UID:627580
注册:2007-10-12
最后登录: 2008-12-30
帖子:
精华:







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2008-12-29 21:50 
好帖,属于基础类的



您对本贴的看法:

__________________________________

oracle探索者
http://idlblog.vicp.net/blog/dingning239/7

阅读(360) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~