oracle 11.2 控制文件还原
******************************************1.控制文件备份分类******************************************通常分为:1)在线镜像备份2)结构备份3)历史备份恢复
****************************************** 1.控制文件备份分类 ****************************************** 通常分为: 1)在线镜像备份 2)结构备份 3)历史备份 恢复时优先考虑镜像备份. 除了镜像备份外其它备份恢复主要按照下面的步骤: 步骤1:从备份中还原控制文件 步骤2:利用重做日志介质恢复数据库 步骤3:重设日志打开数据库 利用resetlogs命令打开数据库的原因是recover命令只能修复控制文件中的 数据库物理结构信息无法修改控制文件中的当前重做日志的序列号等信息, 当你recover命令完成后,控制文件中当前日志序列号还是备份时的序列号, 国语陈旧. ****************************************** 2.recover database几种区别 ****************************************** 第一类:SQL>recover database; 该命令用来对所有数据文件进行恢复,并且只能使用保存 在文件系统上的归档日志和在线日志。使用该命令的前提 是控制文件不能是还原或重建得来的,即控制文件必须 是在线的或损坏镜像还原的. 第二类:SQL>recover database using backup controfile; 该命令用来对所有数据文件以及控制文件进行恢复,并且只能使用保存 在文件系统上的归档日志和在线日志。 第三类:RMAN>recover database; 该命令用来对所有数据文件以及控制文件进行恢复,并且可以使用 增量备份、备份中的和文件系统上的归档日志以及文件系统上的在线日志. ****************************************** 3.利用在线镜像恢复 ****************************************** /*** 基本步骤: 1)startup nomount 2)查看日志了解控制文件损坏情况 3)利用系统命令拷贝或手动拷贝将损坏的控制文件替换 4)alter database mount 5)alter database open *****/ 一、控制文件损坏的恢复(一个文件) 损坏单个控制文件是比较容易恢复的,因为一般的数据库系统,控制文件都不是一个, 而且所有的控制文件都互为镜像,只要拷贝一个好的控制文件替换坏的控制文件就可以了。 --方法1:使用spfile多路复用 NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string E:\APP\ADMINISTRATOR\ORADATA\O RCL\CONTROL01.CTL, E:\APP\ADMI NISTRATOR\FLASH_RECOVERY_AREA\ ORCL\CONTROL02.CTL SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 host del E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL SQL> startup ORACLE 例程已经启动。 Total System Global Area 599785472 bytes Fixed Size 1250380 bytes Variable Size 171969460 bytes Database Buffers 423624704 bytes Redo Buffers 2940928 bytes ORA-00205: ?????????, ??????, ??????? SQL> shutdown immediate; ORA-01507: ?????? ORACLE 例程已经关闭。 SQL> host copy E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL 已复制 1 个文件。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 599785472 bytes Fixed Size 1250380 bytes Variable Size 171969460 bytes Database Buffers 423624704 bytes Redo Buffers 2940928 bytes 数据库装载完毕。 数据库已经打开。 SQL> show parameter control_files; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string E:\APP\ADMINISTRATOR\ORADATA\O RCL\CONTROL01.CTL, E:\APP\ADMI NISTRATOR\FLASH_RECOVERY_AREA\ ORCL\CONTROL02.CTL --方法2: 通过初始化文件修改设置多路控制文件复制 1)直接修改服务器参数文件. create pfile='e:\initorcl.ora' from spfile; 2_编辑修改e:\initorcl.ora文件. 修改control_files部分,将丢失的控制文件删除.如: *.control_files='E:\app\Administrator\oradata\orcl\control01.ctl', 'E:\app\Administrator\flash_recovery_area\orcl\control02.ctl' 修改为: *.control_files='E:\app\Administrator\oradata\orcl\control01.ctl' 3)启动 startup pfile='e:\initorcl.ora'; 说明: 1、损失单个控制文件是比较简单的,因为数据库中所有的控制文件都是镜像的,只需要简 单的拷贝一个好的就可以了 2、建议镜像控制文件在不同的磁盘上 3、建议多做控制文件的备份,长期保留一份由alter database backup control file to trace产生的控制文件的文本备份 ****************************************** 4.利用手动备份还原 ****************************************** /***基本步骤: 1)startup nomount 2)restore controlfile from autobackup; 3)alter database mount 4)recover database命令恢复数据库 5)alter database open resetlogs *****/ 案例演示: --(1).利用手动备份控制文件和参数文件 run { configure controlfile autobackup on; configure controlfile autobackup format for device type disk to 'E:\backup\controlfile\bak_%F'; allocate channel c1 device type disk format 'E:\backup\data\bak_%u'; allocate channel c2 device type disk format 'E:\backup\data\bak_%u'; backup tablespace users ; release channel c1; release channel c2; } allocate channel for maintenance device type disk; 旧的 RMAN 配置参数: CONFIGURE CONTROLFILE AUTOBACKUP OFF; 新的 RMAN 配置参数: CONFIGURE CONTROLFILE AUTOBACKUP ON; 已成功存储新的 RMAN 配置参数 旧的 RMAN 配置参数: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:\backup\bak_%F'; 新的 RMAN 配置参数: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:\backup\controlfile\bak_%F'; 已成功存储新的 RMAN 配置参数 释放的通道: ORA_DISK_1 分配的通道: c1 通道 c1: SID=202 设备类型=DISK 分配的通道: c2 通道 c2: SID=201 设备类型=DISK 启动 backup 于 2013-07-23 14:52:39 通道 c1: 正在启动全部数据文件备份集 通道 c1: 正在指定备份集内的数据文件 输入数据文件: 文件号=00004 名称=F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF 通道 c1: 正在启动段 1 于 2013-07-23 14:52:41 通道 c1: 已完成段 1 于 2013-07-23 14:52:42 段句柄=E:\BACKUP\DATA\BAK_89OFFHPP 标记=TAG20130723T145241 注释=NONE 通道 c1: 备份集已完成, 经过时间:00:00:01 完成 backup 于 2013-07-23 14:52:42 启动 Control File and SPFILE Autobackup 于 2013-07-23 14:52:42 段 handle=E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130723-08 comment=NONE 完成 Control File and SPFILE Autobackup 于 2013-07-23 14:52:45 释放的通道: c1 释放的通道: c2 RMAN> allocate channel for maintenance device type disk; 分配的通道: ORA_MAINT_DISK_6 通道 ORA_MAINT_DISK_6: SID=202 设备类型=DISK --(2).模拟删除控制文件 SQL> show parameters control_files; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string F:\APP\ADMINISTRATOR\ORADATA\O RCL\CONTROL01.CTL, F:\APP\ADMI NISTRATOR\ORADATA\ORCL\CONTROL 02.CTL, F:\APP\ADMINISTRATOR\O RADATA\ORCL\CONTROL03.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL --(3)启动数据库,查看错误日志 SQL> startup ORACLE 例程已经启动。 Total System Global Area 2538741760 bytes Fixed Size 2257872 bytes Variable Size 1627393072 bytes Database Buffers 889192448 bytes Redo Buffers 19898368 bytes ORA-00205: ?????????, ??????, ??????? F:\app\Administrator\diag\rdbms\orcl\orcl\trace Tue Jul 23 14:58:29 2013 ALTER DATABASE MOUNT ORA-00210: cannot open the specified control file ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL' ORA-27041: unable to open file OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ORA-00210: cannot open the specified control file ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL' ORA-27041: unable to open file OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ORA-00210: cannot open the specified control file ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL' ORA-27041: unable to open file OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ORA-205 signalled during: ALTER DATABASE MOUNT... Tue Jul 23 14:58:29 2013 Checker run found 3 new persistent data failures ---(4).利用手动备份恢复 C:\>rman target / 恢复管理器: Release 11.2.0.3.0 - Production on 星期二 7月 23 15:02:11 2013 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 已连接到目标数据库: ORCL (未装载) /****************************常见错误*************************************** --由于控制文件丢失,香港服务器,未装载数据库.所以不能查询备份情况 RMAN> list backup of controlfile; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: list 命令 (在 07/23/2013 15:03:06 上) 失败 ORA-01507: 未装载数据库 ---备份为备份到快速恢复区,所以不能找到备份 RMAN> restore controlfile from autobackup; 启动 restore 于 2013-07-23 15:03:40 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 恢复区目标: F:\arch 用于搜索的数据库名 (或数据库的唯一名称): ORCL 通道 ORA_DISK_1: 在恢复区中没有找到 AUTOBACKUP 由于未设置 DBID 而未尝试使用格式 "%F" 搜索 AUTOBACKUP RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: restore 命令 (在 07/23/2013 15:03:41 上) 失败 RMAN-06172: 没有找到 AUTOBACKUP, 或者指定的句柄不是有效副本或片段 **********************************************************************/ RMAN> restore controlfile from 'E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130723-08'; 启动 restore 于 2013-07-23 15:06:07 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在还原控制文件 通道 ORA_DISK_1: 还原完成, 用时: 00:00:02 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL 完成 restore 于 2013-07-23 15:06:09 RMAN> alter database mount; 数据库已装载 释放的通道: ORA_DISK_1 RMAN> recover database; 启动 recover 于 2013-07-23 15:11:35 启动 implicit crosscheck backup 于 2013-07-23 15:11:35 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 已交叉检验的 1 对象 完成 implicit crosscheck backup 于 2013-07-23 15:11:37 启动 implicit crosscheck copy 于 2013-07-23 15:11:37 使用通道 ORA_DISK_1 完成 implicit crosscheck copy 于 2013-07-23 15:11:37 搜索恢复区中的所有文件 正在编制文件目录... 没有为文件编制目录 使用通道 ORA_DISK_1 正在开始介质的恢复 线程 1 序列 1055 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 存在于磁盘上 归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 线程=1 序列=1055 介质恢复完成, 用时: 00:00:02 完成 recover 于 2013-07-23 15:11:53 RMAN> alter database open resetlogs; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 1 下一个存档日志序列 1 当前日志序列 1 ****************************************** 5.利用自动备份还原 ****************************************** /***基本步骤: 1)startup nomount 2)restore controlfile from autobackup; 3)alter database mount 4)recover database命令恢复数据库 5)alter database open resetlogs *****/ 案例演示: --(1).利用自动备份控制文件和参数文件 run { configure controlfile autobackup on; configure CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE type disk clear; allocate channel c1 device type disk format 'E:\backup\data\bak_%u'; allocate channel c2 device type disk format 'E:\backup\data\bak_%u'; backup tablespace users ; release channel c1; release channel c2; } allocate channel for maintenance device type disk; 旧的 RMAN 配置参数: CONFIGURE CONTROLFILE AUTOBACKUP ON; 新的 RMAN 配置参数: CONFIGURE CONTROLFILE AUTOBACKUP ON; 已成功存储新的 RMAN 配置参数 RMAN 配置参数已成功重置为默认值 释放的通道: ORA_DISK_1 分配的通道: c1 通道 c1: SID=129 设备类型=DISK 分配的通道: c2 通道 c2: SID=198 设备类型=DISK 启动 backup 于 2013-07-23 15:54:44 通道 c1: 正在启动全部数据文件备份集 通道 c1: 正在指定备份集内的数据文件 输入数据文件: 文件号=00004 名称=F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF 通道 c1: 正在启动段 1 于 2013-07-23 15:54:44 通道 c1: 已完成段 1 于 2013-07-23 15:54:45 段句柄=E:\BACKUP\DATA\BAK_8DOFFLE4 标记=TAG20130723T155444 注释=NONE 通道 c1: 备份集已完成, 经过时间:00:00:01 完成 backup 于 2013-07-23 15:54:45 启动 Control File and SPFILE Autobackup 于 2013-07-23 15:54:45 段 handle=F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP --备份位置 comment=NONE 完成 Control File and SPFILE Autobackup 于 2013-07-23 15:54:49 释放的通道: c1 释放的通道: c2 RMAN> allocate channel for maintenance device type disk; 分配的通道: ORA_MAINT_DISK_1 通道 ORA_MAINT_DISK_1: SID=129 设备类型=DISK RMAN> SHOW CONTROLFILE AUTOBACKUP FORMAT; --查看autobackup位置 db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default --(2).模拟删除控制文件 shutdown immediate; SQL> show parameters control_files; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string F:\APP\ADMINISTRATOR\ORADATA\O RCL\CONTROL01.CTL, F:\APP\ADMI NISTRATOR\ORADATA\ORCL\CONTROL 02.CTL, F:\APP\ADMINISTRATOR\O RADATA\ORCL\CONTROL03.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL --(3)启动数据库,查看错误日志 SQL> startup ORACLE 例程已经启动。 Total System Global Area 2538741760 bytes Fixed Size 2257872 bytes Variable Size 1627393072 bytes Database Buffers 889192448 bytes Redo Buffers 19898368 bytes ORA-00205: ?????????, ??????, ??????? F:\app\Administrator\diag\rdbms\orcl\orcl\trace Tue Jul 23 14:58:29 2013 ALTER DATABASE MOUNT ORA-00210: cannot open the specified control file ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL' ORA-27041: unable to open file OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ORA-00210: cannot open the specified control file ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL' ORA-27041: unable to open file OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ORA-00210: cannot open the specified control file ORA-00202: control file: 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL' ORA-27041: unable to open file OSD-04002: 无法打开文件 O/S-Error: (OS 2) 系统找不到指定的文件。 ORA-205 signalled during: ALTER DATABASE MOUNT... Tue Jul 23 14:58:29 2013 Checker run found 3 new persistent data failures ---(4).利用自动备份恢复 C:\>rman target / 恢复管理器: Release 11.2.0.3.0 - Production on 星期二 7月 23 15:02:11 2013 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 已连接到目标数据库: ORCL (未装载) /****************************常见错误*************************************** --由于控制文件丢失,香港虚拟主机,未装载数据库.所以不能查询备份情况 RMAN> list backup of controlfile; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: list 命令 (在 07/23/2013 15:03:06 上) 失败 ORA-01507: 未装载数据库 **********************************************************************/ RMAN> restore controlfile from autobackup; 启动 restore 于 2013-07-23 16:23:46 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 恢复区目标: F:\arch 用于搜索的数据库名 (或数据库的唯一名称): ORCL 通道 ORA_DISK_1: 在恢复区中找到 AUTOBACKUP F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP 由于未设置 DBID 而未尝试使用格式 "%F" 搜索 AUTOBACKUP 通道 ORA_DISK_1: 正在从 AUTOBACKUP F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP 还原控制文件 通道 ORA_DISK_1: 从 AUTOBACKUP 还原控制文件已完成 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL 完成 restore 于 2013-07-23 16:23:47 RMAN> alter database mount; 数据库已装载 释放的通道: ORA_DISK_1 RMAN> recover database; 启动 recover 于 2013-07-23 16:25:39 启动 implicit crosscheck backup 于 2013-07-23 16:25:39 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 已交叉检验的 1 对象 完成 implicit crosscheck backup 于 2013-07-23 16:25:40 启动 implicit crosscheck copy 于 2013-07-23 16:25:40 使用通道 ORA_DISK_1 完成 implicit crosscheck copy 于 2013-07-23 16:25:41 搜索恢复区中的所有文件 正在编制文件目录... 目录编制完毕 已列入目录的文件的列表 ======================= 文件名: F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP 使用通道 ORA_DISK_1 正在开始介质的恢复 线程 1 序列 1 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 存在于磁盘上 线程 1 序列 2 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 存在于磁盘上 归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 线程=1 序列=1 归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 线程=1 序列=2 介质恢复完成, 用时: 00:00:03 完成 recover 于 2013-07-23 16:25:58 RMAN> alter database open resetlogs; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 1 下一个存档日志序列 1 当前日志序列 1 ****************************************** 6.利用历史备份还原 ****************************************** -----6.1自动修复不一致 /********基本步骤: 1)startup nomount 2)restore controlfile from ''; 3)alter database mount 4)recover database命令恢复数据库 5)alter database open resetlogs *********/ 案例演示: --(1).利用手动备份控制文件和参数文件 run { configure controlfile autobackup on; configure controlfile autobackup format for device type disk to 'E:\backup\controlfile\bak_%F'; allocate channel c1 device type disk format 'E:\backup\data\bak_%u'; allocate channel c2 device type disk format 'E:\backup\data\bak_%u'; backup tablespace users ; release channel c1; release channel c2; } allocate channel for maintenance device type disk; configure controlfile autobackup off; --(2).新建一个表空间 SQL> select file_name from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF create tablespace test datafile 'F:\app\administrator\oradata\orcl\test.dbf' size 100m autoextend on next 10m maxsize unlimited extent management local autoallocate segment space management auto; SQL> select file_name from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF --已经存在test F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF --(3).模拟删除控制文件 SQL> show parameters control_files; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string F:\APP\ADMINISTRATOR\ORADATA\O RCL\CONTROL01.CTL, F:\APP\ADMI NISTRATOR\ORADATA\ORCL\CONTROL 02.CTL, F:\APP\ADMINISTRATOR\O RADATA\ORCL\CONTROL03.CTL shutdown immediate; host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL --(3)启动数据库,查看错误日志 SQL> startup ORACLE 例程已经启动。 Total System Global Area 2538741760 bytes Fixed Size 2257872 bytes Variable Size 1627393072 bytes Database Buffers 889192448 bytes Redo Buffers 19898368 bytes ORA-00205: ?????????, ??????, ??????? ---(4).利用手动备份恢复 C:\>rman target / 恢复管理器: Release 11.2.0.3.0 - Production on 星期二 7月 23 17:11:51 2013 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 已连接到目标数据库: ORCL (未装载) /****************************常见错误*************************************** --由于控制文件丢失,未装载数据库.所以不能查询备份情况 RMAN> list backup of controlfile; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: list 命令 (在 07/23/2013 15:03:06 上) 失败 ORA-01507: 未装载数据库 ---备份为备份到快速恢复区,服务器空间,所以不能找到备份 RMAN> restore controlfile from autobackup; 启动 restore 于 2013-07-23 15:03:40 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 恢复区目标: F:\arch 用于搜索的数据库名 (或数据库的唯一名称): ORCL 通道 ORA_DISK_1: 在恢复区中没有找到 AUTOBACKUP 由于未设置 DBID 而未尝试使用格式 "%F" 搜索 AUTOBACKUP RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: restore 命令 (在 07/23/2013 15:03:41 上) 失败 RMAN-06172: 没有找到 AUTOBACKUP, 或者指定的句柄不是有效副本或片段 **********************************************************************/ RMAN> restore controlfile from 'E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130723-0C'; 启动 restore 于 2013-07-23 17:13:57 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 通道 ORA_DISK_1: 正在还原控制文件 通道 ORA_DISK_1: 还原完成, 用时: 00:00:01 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL 完成 restore 于 2013-07-23 17:13:59 RMAN> alter database mount; SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF ---还原的控制文件中没有新建的表空间TEST. RMAN> recover database; 启动 recover 于 2013-07-23 17:16:22 启动 implicit crosscheck backup 于 2013-07-23 17:16:22 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 已交叉检验的 1 对象 完成 implicit crosscheck backup 于 2013-07-23 17:16:24 启动 implicit crosscheck copy 于 2013-07-23 17:16:24 使用通道 ORA_DISK_1 完成 implicit crosscheck copy 于 2013-07-23 17:16:24 搜索恢复区中的所有文件 正在编制文件目录... 目录编制完毕 已列入目录的文件的列表 ======================= 文件名: F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP 使用通道 ORA_DISK_1 正在开始介质的恢复 线程 1 序列 1 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 存在于磁盘上 归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 线程=1 序列=1 创建数据文件, 文件号 = 5 名称 = F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF --新建了文件TEST 归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 线程=1 序列=1 介质恢复完成, 用时: 00:00:03 完成 recover 于 2013-07-23 17:16:36 SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF --TEST出现了 F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF RMAN> alter database open resetlogs; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 1 下一个存档日志序列 1 当前日志序列 1 SQL> alter system switch logfile; 系统已更改。 SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 1 下一个存档日志序列 2 当前日志序列 2 -----6.2手动修复不一致 /********基本步骤: 1)startup nomount 2)restore controlfile from ''; 3)alter database mount 4)recover database命令恢复数据库 5)alter database open resetlogs *********/ 案例演示: --(1).利用手动备份控制文件和参数文件 run { configure controlfile autobackup on; configure controlfile autobackup format for device type disk to 'E:\backup\controlfile\bak_%F'; allocate channel c1 device type disk format 'E:\backup\data\bak_%u'; allocate channel c2 device type disk format 'E:\backup\data\bak_%u'; backup tablespace users ; release channel c1; release channel c2; } allocate channel for maintenance device type disk; 旧的 RMAN 配置参数: CONFIGURE CONTROLFILE AUTOBACKUP ON; 新的 RMAN 配置参数: CONFIGURE CONTROLFILE AUTOBACKUP ON; 已成功存储新的 RMAN 配置参数 旧的 RMAN 配置参数: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:\backup\controlfile\bak_%F'; 新的 RMAN 配置参数: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:\backup\controlfile\bak_%F'; 已成功存储新的 RMAN 配置参数 释放的通道: ORA_DISK_1 分配的通道: c1 通道 c1: SID=129 设备类型=DISK 分配的通道: c2 通道 c2: SID=197 设备类型=DISK 启动 backup 于 2013-07-23 17:24:49 通道 c1: 正在启动全部数据文件备份集 通道 c1: 正在指定备份集内的数据文件 输入数据文件: 文件号=00004 名称=F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF 通道 c1: 正在启动段 1 于 2013-07-23 17:24:49 通道 c1: 已完成段 1 于 2013-07-23 17:24:50 段句柄=E:\BACKUP\DATA\BAK_8LOFFQN1 标记=TAG20130723T172449 注释=NONE 通道 c1: 备份集已完成, 经过时间:00:00:01 完成 backup 于 2013-07-23 17:24:50 启动 Control File and SPFILE Autobackup 于 2013-07-23 17:24:50 段 handle=E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130723-0E comment=NONE 完成 Control File and SPFILE Autobackup 于 2013-07-23 17:24:54 释放的通道: c1 释放的通道: c2 configure controlfile autobackup off; --(2).删除一个表空间 SQL> select file_name from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF drop tablespace test including contents and datafiles; SQL> select file_name from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF --(3).模拟删除控制文件 SQL> show parameters control_files; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string F:\APP\ADMINISTRATOR\ORADATA\O RCL\CONTROL01.CTL, F:\APP\ADMI NISTRATOR\ORADATA\ORCL\CONTROL 02.CTL, F:\APP\ADMINISTRATOR\O RADATA\ORCL\CONTROL03.CTL shutdown immediate; host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL --(3)启动数据库,查看错误日志 SQL> startup ORACLE 例程已经启动。 Total System Global Area 2538741760 bytes Fixed Size 2257872 bytes Variable Size 1627393072 bytes Database Buffers 889192448 bytes Redo Buffers 19898368 bytes ORA-00205: ?????????, ??????, ??????? ---(4).利用手动备份恢复 C:\>rman target / 恢复管理器: Release 11.2.0.3.0 - Production on 星期二 7月 23 17:31:04 2013 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 已连接到目标数据库: ORCL (未装载) /****************************常见错误*************************************** --由于控制文件丢失,未装载数据库.所以不能查询备份情况 RMAN> list backup of controlfile; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: list 命令 (在 07/23/2013 15:03:06 上) 失败 ORA-01507: 未装载数据库 ---备份为备份到快速恢复区,所以不能找到备份 RMAN> restore controlfile from autobackup; 启动 restore 于 2013-07-23 15:03:40 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 恢复区目标: F:\arch 用于搜索的数据库名 (或数据库的唯一名称): ORCL 通道 ORA_DISK_1: 在恢复区中没有找到 AUTOBACKUP 由于未设置 DBID 而未尝试使用格式 "%F" 搜索 AUTOBACKUP RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: restore 命令 (在 07/23/2013 15:03:41 上) 失败 RMAN-06172: 没有找到 AUTOBACKUP, 或者指定的句柄不是有效副本或片段 **********************************************************************/ RMAN> restore controlfile from 'E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130723-0E'; 启动 restore 于 2013-07-23 17:31:28 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 通道 ORA_DISK_1: 正在还原控制文件 通道 ORA_DISK_1: 还原完成, 用时: 00:00:01 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL 完成 restore 于 2013-07-23 17:31:30 RMAN> alter database mount; SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF ---还原的控制文件中存在新建的表空间TEST. RMAN> recover database skip tablespace "TEST"; 启动 recover 于 2013-07-23 17:36:32 使用通道 ORA_DISK_1 执行: alter database datafile 5 offline 正在开始介质的恢复 线程 1 序列 2 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 存在于磁盘上 归档日志文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 线程=1 序列=2 介质恢复完成, 用时: 00:00:01 完成 recover 于 2013-07-23 17:36:39 SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF ---表空间TEST消失了. RMAN> alter database open resetlogs; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 1 下一个存档日志序列 1 当前日志序列 1 SQL> alter system switch logfile; 系统已更改。 SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 1 下一个存档日志序列 2 当前日志序列 2 ****************************************** 7.缺失归档日志 ****************************************** ----1.数据库开启归档 SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 3 下一个存档日志序列 5 当前日志序列 5 ----2.新建测试表 create tablespace test datafile 'F:\app\administrator\oradata\orcl\test.dbf' size 100m autoextend on next 10m maxsize unlimited extent management local autoallocate segment space management auto; select file_name from dba_data_files; create table t1 ( sid number not null primary key, sname varchar2(20) )tablespace test; insert into t1 values(101,'A'); SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 4 下一个存档日志序列 6 当前日志序列 6 SQL> alter system switch logfile; 系统已更改。 SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 5 下一个存档日志序列 7 当前日志序列 7 set linesize 300 col name for a60 select name,sequence#,archived,status from v$archived_log where status='A' and archived='YES' ; NAME SEQUENCE# ARC S ------------------------------------------------------------ ---------- --- - F:\ARCH\ARC0000000006_0821554663.0001 6 YES A ----3.利用手动备份控制文件和参数文件 run { configure controlfile autobackup on; configure controlfile autobackup format for device type disk to 'E:\backup\controlfile\bak_%F'; allocate channel c1 device type disk format 'E:\backup\data\bak_%u'; allocate channel c2 device type disk format 'E:\backup\data\bak_%u'; backup tablespace "TEST" ; release channel c1; release channel c2; } allocate channel for maintenance device type disk; RMAN> list backup of controlfile; 备份集列表 =================== BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间 ------- ---- -- ---------- ----------- ------------ ------------------- 240 Full 10.14M DISK 00:00:02 2013-07-24 11:16:17 BP 关键字: 245 状态: AVAILABLE 已压缩: NO 标记: TAG20130724T111615 段名:E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130724-01 包括的控制文件: Ckp SCN: 42235305 Ckp 时间: 2013-07-24 11:16:15 ----4.插入数据并归档 SQL> select * from t1; SID SNAME ---------- -------------------- 101 A insert into t1 values(102,'B'); SQL> commit; 提交完成。 SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 5 下一个存档日志序列 7 当前日志序列 7 alter system switch logfile; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 6 下一个存档日志序列 8 当前日志序列 8 set linesize 300 col name for a60 select name,sequence#,archived,status from v$archived_log where status='A' and archived='YES' ; NAME SEQUENCE# ARC S ------------------------------------------------------------ ---------- --- - F:\ARCH\ARC0000000006_0821554663.0001 6 YES A F:\ARCH\ARC0000000007_0821554663.0001 7 YES A insert into t1 values(103,'C'); commit; alter system switch logfile; insert into t1 values(104,'D'); commit; alter system switch logfile; insert into t1 values(105,'E'); commit; alter system switch logfile; archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 f:\arch 最早的联机日志序列 9 下一个存档日志序列 11 当前日志序列 11 set linesize 300 col name for a60 select name,sequence#,archived,status from v$archived_log where status='A' and archived='YES' ; NAME SEQUENCE# ARC S ------------------------------------------------------------ ---------- --- - F:\ARCH\ARC0000000006_0821554663.0001 6 YES A F:\ARCH\ARC0000000007_0821554663.0001 7 YES A F:\ARCH\ARC0000000008_0821554663.0001 8 YES A F:\ARCH\ARC0000000009_0821554663.0001 9 YES A F:\ARCH\ARC0000000010_0821554663.0001 10 YES A ----5.模拟删除控制文件 SQL> show parameters control_files; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string F:\APP\ADMINISTRATOR\ORADATA\O RCL\CONTROL01.CTL, F:\APP\ADMI NISTRATOR\ORADATA\ORCL\CONTROL 02.CTL, F:\APP\ADMINISTRATOR\O RADATA\ORCL\CONTROL03.CTL shutdown immediate; host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL host del F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL ----6.启动数据库,查看错误日志 SQL> startup ORACLE 例程已经启动。 Total System Global Area 2538741760 bytes Fixed Size 2257872 bytes Variable Size 1627393072 bytes Database Buffers 889192448 bytes Redo Buffers 19898368 bytes ORA-00205: ?????????, ??????, ??????? -----7.利用手动备份恢复 --7.1 恢复控制文件 C:\>rman target / 恢复管理器: Release 11.2.0.3.0 - Production on 星期三 7月 24 12:36:11 2013 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 已连接到目标数据库: ORCL (未装载) RMAN> restore controlfile from 'E:\BACKUP\CONTROLFILE\BAK_C-1320546556-20130724-01'; 启动 restore 于 2013-07-24 12:36:31 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 通道 ORA_DISK_1: 正在还原控制文件 通道 ORA_DISK_1: 还原完成, 用时: 00:00:01 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL 输出文件名=F:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL 完成 restore 于 2013-07-24 12:36:33 --7.2 装载数据库 RMAN> alter database mount; --7.3 恢复数据库 -7.3.1 recover database RMAN> recover database; 启动 recover 于 2013-07-24 12:37:50 启动 implicit crosscheck backup 于 2013-07-24 12:37:50 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 已交叉检验的 1 对象 完成 implicit crosscheck backup 于 2013-07-24 12:37:51 启动 implicit crosscheck copy 于 2013-07-24 12:37:51 使用通道 ORA_DISK_1 完成 implicit crosscheck copy 于 2013-07-24 12:37:51 搜索恢复区中的所有文件 正在编制文件目录... 目录编制完毕 已列入目录的文件的列表 ======================= 文件名: F:\ARCH\ORCL\AUTOBACKUP\2013_07_23\O1_MF_S_821548486_8YWFP782_.BKP 使用通道 ORA_DISK_1 正在开始介质的恢复 线程 1 序列 9 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG 存在于磁盘上 线程 1 序列 10 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG 存在于磁盘上 线程 1 序列 11 的归档日志已作为文件 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG 存在于磁盘上 归档日志文件名=F:\ARCH\ARC0000000007_0821554663.0001 线程=1 序列=7 无法找到归档日志 归档日志线程=1 序列=8 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: recover 命令 (在 07/24/2013 12:37:58 上) 失败 RMAN-06054: 介质恢复正在请求未知的线程 1 序列 8 的归档日志以及起始 SCN 42235549 --提示需要8的归档日志 SQL> select sequence# from v$log where status='CURRENT'; SEQUENCE# ---------- 7 --当前还原的控制文件中看到的是日志7 /************ 提示需要8的归档日志,当前还原的控制文件中看到的是日志7, 只要让oracle放弃归档日志8,那么恢复就可以继续进行. ************/ --7.3.2备份控制文件到trace alter database backup controlfile to trace; select value from v$diag_info where; VALUE --------------------------------------------------------------------- F:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_ora_757704.trc 查看备份到追踪文件的控制文件 show parameter user_dump_dest; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ user_dump_dest string F:\app\Administrator\diag\rdbms\orcl\orcl\trace select a.spid from v$process a, v$session b where a.addr=b.paddr and b.username='SYS'; ---内容如下: CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 584 LOGFILE GROUP 1 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG' SIZE 50M BLOCKSIZE 512 -- STANDBY LOGFILE DATAFILE 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF' CHARACTER SET ZHS16GBK ; --7.3.3先关闭数据库 SQL> shutdown immediate; ORA-01109: 数据库未打开 已经卸载数据库。 ORACLE 例程已经关闭。 --7.3.4启动数据库到nomount状态 SQL> startup force nomount; ORACLE 例程已经启动。 Total System Global Area 2538741760 bytes Fixed Size 2257872 bytes Variable Size 1627393072 bytes Database Buffers 889192448 bytes Redo Buffers 19898368 bytes --7.3.5 新建控制文件 CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 584 LOGFILE GROUP 1 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG' SIZE 50M BLOCKSIZE 512 -- STANDBY LOGFILE DATAFILE 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOG01.DBF', 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\JINRILOGINDEX01.DBF' CHARACTER SET ZHS16GBK ; SQL> select open_mode from v$database; OPEN_MODE -------------------- MOUNTED ---7.3.6 利用新建的控制文件recover database RMAN>recover database; 启动 recover 于 2013-07-24 12:52:16 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=129 设备类型=DISK 正在开始介质的恢复 无法找到归档日志 归档日志线程=1 序列=11 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: recover 命令 (在 07/24/2013 12:52:20 上) 失败 RMAN-06054: 介质恢复正在请求未知的线程 1 序列 11 的归档日志以及起始 SCN 42237323 SQL> select sequence#,status,group# from v$log; SEQUENCE# STATUS GROUP# ---------- ---------------- ---------- 10 INACTIVE 1 9 INACTIVE 3 11 CURRENT 2 --日志11在联机日志中 SQL>col member for a50 SQL>select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_ ---------- ------- ------- -------------------------------------------------- --- 2 STALE ONLINE F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG NO --需要的日志 1 STALE ONLINE F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG NO 3 STALE ONLINE F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG NO SQL> recover database using backup controlfile; ORA-00279: ?? 42237323 (? 07/24/2013 11:50:11 ??) ???? 1 ???? ORA-00289: ??: F:\ARCH\ARC0000000011_0821554663.0001 ORA-00280: ?? 42237323 (???? 1) ??? #11 ? 指定日志: {本文出自 “记录点滴!” 博客,请务必保留此出处

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Oracle에 대한 솔루션은 개설 할 수 없습니다. 1. 데이터베이스 서비스 시작; 2. 청취자를 시작하십시오. 3. 포트 충돌을 확인하십시오. 4. 환경 변수를 올바르게 설정하십시오. 5. 방화벽이나 바이러스 백신 소프트웨어가 연결을 차단하지 않도록하십시오. 6. 서버가 닫혀 있는지 확인하십시오. 7. RMAN을 사용하여 손상된 파일을 복구하십시오. 8. TNS 서비스 이름이 올바른지 확인하십시오. 9. 네트워크 연결 확인; 10. Oracle 소프트웨어를 다시 설치하십시오.

Oracle Cursor Closure 문제를 해결하는 방법에는 다음이 포함됩니다. Close 문을 사용하여 커서를 명시 적으로 닫습니다. For Update 절에서 커서를 선언하여 범위가 종료 된 후 자동으로 닫히십시오. 연관된 PL/SQL 변수가 닫히면 자동으로 닫히도록 사용 절에서 커서를 선언하십시오. 예외 처리를 사용하여 예외 상황에서 커서가 닫혀 있는지 확인하십시오. 연결 풀을 사용하여 커서를 자동으로 닫습니다. 자동 제출을 비활성화하고 커서 닫기를 지연시킵니다.

Oracle 데이터베이스 페이징은 rownum pseudo-columns 또는 fetch 문을 사용하여 구현합니다. Fetch 문은 지정된 첫 번째 행 수를 얻는 데 사용되며 간단한 쿼리에 적합합니다.

Oracle에서 FOR 루프 루프는 커서를 동적으로 생성 할 수 있습니다. 단계는 다음과 같습니다. 1. 커서 유형을 정의합니다. 2. 루프를 만듭니다. 3. 커서를 동적으로 만듭니다. 4. 커서를 실행하십시오. 5. 커서를 닫습니다. 예 : 커서는 상위 10 명의 직원의 이름과 급여를 표시하기 위해주기별로 만들 수 있습니다.

Oracle 데이터베이스를 중지하려면 다음 단계를 수행하십시오. 1. 데이터베이스에 연결하십시오. 2. 즉시 종료; 3. 셧다운은 완전히 중단됩니다.

SQL 문은 Oracle의 동적 SQL을 사용하여 런타임 입력을 기반으로 작성 및 실행할 수 있습니다. 단계에는 다음이 포함됩니다 : 동적으로 생성 된 SQL 문을 저장할 빈 문자열 변수 준비. 즉시 실행 또는 준비 명령문을 사용하여 동적 SQL 문을 컴파일하고 실행하십시오. 바인드 변수를 사용하여 사용자 입력 또는 기타 동적 값을 동적 SQL로 전달하십시오. 동적 SQL 문을 실행하려면 즉시 실행 또는 실행을 사용하십시오.

Centos 시스템에서 Hadoop 분산 파일 시스템 (HDF)을 구축하려면 여러 단계가 필요합니다. 이 기사는 간단한 구성 안내서를 제공합니다. 1. 초기 단계에서 JDK를 설치할 준비 : 모든 노드에 JavadevelopmentKit (JDK)을 설치하면 버전이 Hadoop과 호환되어야합니다. 설치 패키지는 Oracle 공식 웹 사이트에서 다운로드 할 수 있습니다. 환경 변수 구성 : /etc /프로파일 파일 편집, Java 및 Hadoop 설정 설정 시스템에서 JDK 및 Hadoop의 설치 경로를 찾을 수 있습니다. 2. 보안 구성 : SSH 비밀번호가없는 로그인 SSH 키 : 각 노드에서 ssh-keygen 명령을 사용하십시오.

Oracle 데이터베이스를 열기위한 단계는 다음과 같습니다. Oracle 데이터베이스 클라이언트를 열고 데이터베이스 서버에 연결하십시오. username/password@servername sqlplus 명령을 사용하여 데이터베이스를 엽니 다.
