- 论坛徽章:
- 0
|
模拟数据库全部文件丢失(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> |
|