分类: 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 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 ? 指定日志: { cancel 介质恢复已取消。 SQL> alter database open resetlogs; 数据库已更改。 SQL> |
您对本贴的看法: |
__________________________________ 我要这天,再遮不住我眼,要这地,再埋不了我心,要这众生,都明白我意,要那诸佛,都烟消云散! |
| | | |
(campanula) 天使 ![]() UID:627580 注册:2007-10-12 最后登录: 2008-12-30 帖子: 精华: 状态:...离线... [] [] [博客] |
|