标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,717)
- DB2 (22)
- MySQL (74)
- Oracle (1,577)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (160)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (68)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (576)
- Oracle安装升级 (94)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (81)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (28)
- SQL Server恢复 (9)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- 近1万个数据文件的恢复case
- 不当使用_allow_resetlogs_corruption参数引起ORA-600 2662错误
- CSSD signal 11 in thread clssnmRcfgMgrThread故障处理
- 使用sid方式直接访问pdb(USE_SID_AS_SERVICE_LISTENER)
- ORA-00069: cannot acquire lock — table locks disabled for xxxx
- ORA-600 [4000] [a]相关bug
- sql server数据库“正在恢复”故障处理
- 如何判断数据文件是否处于begin backup状态
- CDM备份缺少归档打开数据库报ORA-600 kcbzib_kcrsds_1故障处理
- ORA-07445: exception encountered: core dump [expgod()+43] [IN_PAGE_ERROR]
- 2025年第一起ORA-600 16703故障恢复
- _gc_undo_affinity=FALSE触发ORA-01558
- public授权语句
- 中文环境显示AR8MSWIN1256(阿拉伯语字符集)
- 处理 Oracle 块损坏
- Oracle各种类型坏块说明和处理
- fio测试io,导致磁盘文件系统损坏故障恢复
- ORA-742 写丢失常见bug记录
- Oracle 19c 202501补丁(RUs+OJVM)-19.26
- 避免 19c 数据库性能问题需要考虑的事项 (Doc ID 3050476.1)
分类目录归档:rman备份/恢复
记录一次rman备份ORA-19502/ORA-27063错误原因分析
rman备份出现ORA-19502/ORA-27063错误
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> 18> 19> 20> allocated channel: t11 channel t11: sid=824 instance=ncdb1 devtype=DISK allocated channel: t12 channel t12: sid=838 instance=ncdb1 devtype=DISK allocated channel: t13 channel t13: sid=809 instance=ncdb1 devtype=DISK allocated channel: t14 channel t14: sid=886 instance=ncdb1 devtype=DISK allocated channel: t15 channel t15: sid=620 instance=ncdb1 devtype=DISK allocated channel: t16 channel t16: sid=599 instance=ncdb1 devtype=DISK allocated channel: t17 channel t17: sid=482 instance=ncdb1 devtype=DISK allocated channel: t18 channel t18: sid=506 instance=ncdb1 devtype=DISK 一共开通8个通道 channel t12: starting full datafile backupset channel t12: specifying datafile(s) in backupset input datafile fno=00008 name=/dev/rnc32g_39 input datafile fno=00016 name=/dev/rnc32g_47 input datafile fno=00024 name=/dev/rnc32g_57 input datafile fno=00032 name=/dev/rnc32g_25 input datafile fno=00040 name=/dev/rnc32g_33 input datafile fno=00048 name=/dev/rnc32g_3 input datafile fno=00056 name=/dev/rnc32g_11 input datafile fno=00064 name=/dev/rnc32g_19 input datafile fno=00072 name=/dev/rnc32g_67 input datafile fno=00080 name=/dev/rnc32g_106 input datafile fno=00088 name=/dev/rnc32g_114 input datafile fno=00096 name=/dev/rnc32g_87 input datafile fno=00104 name=/dev/rnc32g_95 input datafile fno=00112 name=/dev/rnc32g_103 input datafile fno=00120 name=/dev/rnc32g_75 input datafile fno=00003 name=/dev/rnc50_sysaux input datafile fno=00130 name=/dev/rnc32g_119 channel t12: starting piece 1 at 14-MAY-12 --通道12备份数据文件 channel t17: starting full datafile backupset channel t17: specifying datafile(s) in backupset input datafile fno=00002 name=/dev/rnc32g_22 input datafile fno=00013 name=/dev/rnc32g_44 input datafile fno=00021 name=/dev/rnc32g_54 input datafile fno=00029 name=/dev/rnc32g_62 input datafile fno=00037 name=/dev/rnc32g_30 input datafile fno=00045 name=/dev/rnc32g_38 input datafile fno=00053 name=/dev/rnc32g_8 input datafile fno=00061 name=/dev/rnc32g_16 input datafile fno=00069 name=/dev/rnc32g_64 input datafile fno=00077 name=/dev/rncundo_33g_4 input datafile fno=00085 name=/dev/rnc32g_111 input datafile fno=00093 name=/dev/rnc32g_84 input datafile fno=00101 name=/dev/rnc32g_92 input datafile fno=00109 name=/dev/rnc32g_100 input datafile fno=00117 name=/dev/rnc32g_72 input datafile fno=00006 name=/dev/rnc50_4g_1 channel t17: starting piece 1 at 14-MAY-12 --通道17备份数据文件 channel t15: finished piece 1 at 15-MAY-12 piece handle=/rman/db_mpnb04jl_1_1 tag=TAG20120514T204954 comment=NONE channel t15: backup set complete, elapsed time: 06:07:59 channel t11: finished piece 1 at 15-MAY-12 piece handle=/rman/db_mlnb04jk_1_1 tag=TAG20120514T204954 comment=NONE channel t11: backup set complete, elapsed time: 06:17:25 channel t16: finished piece 1 at 15-MAY-12 piece handle=/rman/db_mqnb04jm_1_1 tag=TAG20120514T204954 comment=NONE channel t16: backup set complete, elapsed time: 06:34:49 channel t14: finished piece 1 at 15-MAY-12 piece handle=/rman/db_monb04jl_1_1 tag=TAG20120514T204954 comment=NONE channel t14: backup set complete, elapsed time: 06:40:05 channel t18: finished piece 1 at 15-MAY-12 piece handle=/rman/db_msnb04jn_1_1 tag=TAG20120514T204954 comment=NONE channel t18: backup set complete, elapsed time: 06:43:38 channel t13: finished piece 1 at 15-MAY-12 piece handle=/rman/db_mnnb04jl_1_1 tag=TAG20120514T204954 comment=NONE channel t13: backup set complete, elapsed time: 07:40:56 --这里可以看出rman的备份完成了通道11/13/14/15/16/18,也就是说目前为止通道12/17未完成. RMAN-03009: failure of backup command on t12 channel at 05/15/2012 04:39:58 ORA-19502: write error on file "/rman/db_mmnb04jl_1_1", blockno 30481025 (blocksize=8192) ORA-27063: number of bytes read/written is incorrect IBM AIX RISC System/6000 Error: 28: No space left on device Additional information: -1 Additional information: 1048576 ORA-19502: write error on file "/rman/db_mmnb04jl_1_1", blockno 30480897 (blocksize=8192) ORA-27063: number of bytes read/written is incorrect IBM AIX RISC System/6000 Error: 28: No space left on device channel t12 disabled, job failed on it will be run on another channel --通道12报错(硬盘空间不足) channel t11: starting full datafile backupset channel t11: specifying datafile(s) in backupset input datafile fno=00008 name=/dev/rnc32g_39 input datafile fno=00016 name=/dev/rnc32g_47 input datafile fno=00024 name=/dev/rnc32g_57 input datafile fno=00032 name=/dev/rnc32g_25 input datafile fno=00040 name=/dev/rnc32g_33 input datafile fno=00048 name=/dev/rnc32g_3 input datafile fno=00056 name=/dev/rnc32g_11 input datafile fno=00064 name=/dev/rnc32g_19 input datafile fno=00072 name=/dev/rnc32g_67 input datafile fno=00080 name=/dev/rnc32g_106 input datafile fno=00088 name=/dev/rnc32g_114 input datafile fno=00096 name=/dev/rnc32g_87 input datafile fno=00104 name=/dev/rnc32g_95 input datafile fno=00112 name=/dev/rnc32g_103 input datafile fno=00120 name=/dev/rnc32g_75 input datafile fno=00003 name=/dev/rnc50_sysaux input datafile fno=00130 name=/dev/rnc32g_119 channel t11: starting piece 1 at 15-MAY-12 --在通道12报错后,通道11已经完成了上次备份,所以启动备份通道12出错的数据文件 RMAN-03009: failure of backup command on t17 channel at 05/15/2012 04:39:58 ORA-19502: write error on file "/rman/db_mrnb04jm_1_1", blockno 30753793 (blocksize=8192) ORA-27063: number of bytes read/written is incorrect IBM AIX RISC System/6000 Error: 28: No space left on device Additional information: -1 Additional information: 1048576 ORA-19502: write error on file "/rman/db_mrnb04jm_1_1", blockno 30753665 (blocksize=8192) ORA-27063: number of bytes read/written is incorrect IBM AIX RISC System/6000 Error: 28: No space left on device channel t17 disabled, job failed on it will be run on another channel --通道17也因为磁盘空间报错 channel t13: starting full datafile backupset channel t13: specifying datafile(s) in backupset input datafile fno=00002 name=/dev/rnc32g_22 input datafile fno=00013 name=/dev/rnc32g_44 input datafile fno=00021 name=/dev/rnc32g_54 input datafile fno=00029 name=/dev/rnc32g_62 input datafile fno=00037 name=/dev/rnc32g_30 input datafile fno=00045 name=/dev/rnc32g_38 input datafile fno=00053 name=/dev/rnc32g_8 input datafile fno=00061 name=/dev/rnc32g_16 input datafile fno=00069 name=/dev/rnc32g_64 input datafile fno=00077 name=/dev/rncundo_33g_4 input datafile fno=00085 name=/dev/rnc32g_111 input datafile fno=00093 name=/dev/rnc32g_84 input datafile fno=00101 name=/dev/rnc32g_92 input datafile fno=00109 name=/dev/rnc32g_100 input datafile fno=00117 name=/dev/rnc32g_72 input datafile fno=00006 name=/dev/rnc50_4g_1 channel t13: starting piece 1 at 15-MAY-12 --通道13也尝试备份通道17失败的数据文件 RMAN-03009: failure of backup command on t11 channel at 05/15/2012 04:39:59 ORA-19504: failed to create file "/rman/db_mtnb104u_1_1" ORA-27044: unable to write the header block of file IBM AIX RISC System/6000 Error: 28: No space left on device Additional information: 3 Addition --因为当前没有空闲空间,通道11终止, --这个时候rman异常终止,导致后续的通道13终止记录未打印到日志
阅读完rman日志,很好理解因为存放rman备份的磁盘空间不足导致了一系列错误
检查磁盘剩余空间
Filesystem GB blocks Free %Used Iused %Iused Mounted on /dev/hd4 10.00 9.75 3% 6548 1% / /dev/hd2 10.00 4.55 55% 84383 8% /usr /dev/hd9var 5.00 4.04 20% 6290 1% /var /dev/hd3 5.00 3.87 23% 1551 1% /tmp /dev/hd1 10.00 9.91 1% 382 1% /home /proc - - - - - /proc /dev/hd10opt 5.00 4.89 3% 3502 1% /opt /dev/archalv 99.00 82.98 17% 96 1% /archa /dev/fslv01 40.00 19.49 52% 72324 2% /ora10 /dev/fslv00 1800.00 467.25 75% 10 1% /rman
这下让人迷糊了,磁盘空间还剩余467.25G,怎么会报错呢?
分析原因
RMAN-03009: failure of backup command on t12 channel at 05/15/2012 04:39:58 ORA-19502: write error on file "/rman/db_mmnb04jl_1_1", blockno 30481025 (blocksize=8192) ORA-27063: number of bytes read/written is incorrect IBM AIX RISC System/6000 Error: 28: No space left on device Additional information: -1 Additional information: 1048576 ORA-19502: write error on file "/rman/db_mmnb04jl_1_1", blockno 30480897 (blocksize=8192) ORA-27063: number of bytes read/written is incorrect IBM AIX RISC System/6000 Error: 28: No space left on device channel t12 disabled, job failed on it will be run on another channel RMAN-03009: failure of backup command on t17 channel at 05/15/2012 04:39:58 ORA-19502: write error on file "/rman/db_mrnb04jm_1_1", blockno 30753793 (blocksize=8192) ORA-27063: number of bytes read/written is incorrect IBM AIX RISC System/6000 Error: 28: No space left on device Additional information: -1 Additional information: 1048576 ORA-19502: write error on file "/rman/db_mrnb04jm_1_1", blockno 30753665 (blocksize=8192) ORA-27063: number of bytes read/written is incorrect IBM AIX RISC System/6000 Error: 28: No space left on device channel t17 disabled, job failed on it will be run on another channel
这两个通道在写入rman备份到磁盘中的时候,在05/15/2012 04:39:58发现磁盘空间不足,两个通道分别准备写入30480897/30753665号块的时候出错,那么当时这两个通道分别写入的数据块数为30480896/30753664,写入文件大小为(30480896+30753664)*8192/1024/1024/1024=467.1826171875G.这里可以看出磁盘剩余空间467.25G,其实当时已经写入了467.1826171875G,继续写入的时候出错.然后rman为了保证备份的正确性,自动删除了当时已经备份的467.1826171875G错误的备份文件.从而在备份结束后看到磁盘空间还有大量剩余而rman包空间不足的现象.
利用scn增量备份实现数据库增量恢复
数据库版本
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production TNS for Linux: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production
全备数据库
RMAN> backup as compressed backupset database format '/u01/oracle/oradata/tmp/ora11g_0_%U'; Starting backup at 18-APR-12 using channel ORA_DISK_1 channel ORA_DISK_1: starting compressed full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/oracle/oradata/ora11g/system01.dbf input datafile file number=00002 name=/u01/oracle/oradata/ora11g/sysaux01.dbf input datafile file number=00003 name=/u01/oracle/oradata/ora11g/undotbs01.dbf input datafile file number=00004 name=/u01/oracle/oradata/ora11g/users01.dbf input datafile file number=00006 name=/u01/oracle/oradata/ora11g/xifenfei02.dbf channel ORA_DISK_1: starting piece 1 at 18-APR-12 channel ORA_DISK_1: finished piece 1 at 18-APR-12 piece handle=/u01/oracle/oradata/tmp/ora11g_0_07n8p916_1_1 tag=TAG20120418T234958 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15 channel ORA_DISK_1: starting compressed full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 18-APR-12 channel ORA_DISK_1: finished piece 1 at 18-APR-12 piece handle=/u01/oracle/oradata/tmp/ora11g_0_08n8p93h_1_1 tag=TAG20120418T234958 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 18-APR-12
创建测试数据库验证恢复标准
SQL> conn chf/xifenfei Connected. SQL> drop table xifenfei purge; Table dropped. SQL> create table xifenfei as 2 select * from dba_objects; Table created. SQL> insert into xifenfei 2 select * from dba_objects; 74534 rows created. SQL> / 74534 rows created. SQL> / 74534 rows created. SQL> commit; Commit complete. SQL> select count(*) from xifenfei; COUNT(*) ---------- 298136 SQL> create table xifenfei01 as 2 select * from dba_objects; Table created. SQL> alter system switch logfile; System altered. SQL> / System altered. SQL> / System altered. SQL> / System altered. SQL> create table chf.xifenfei02 as 2 select * from dba_objects; Table created. SQL> alter system switch logfile; System altered.
异机恢复库
RMAN> restore controlfile from '/u01/oracle/oradata/tmp/ora11g_0_08n8p93h_1_1'; Starting restore at 19-APR-12 using channel ORA_DISK_1 channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/u01/oracle/oradata/ora11g/control01.ctl output file name=/u01/oracle/oradata/ora11g/control02.ctl Finished restore at 19-APR-12 RMAN> alter database mount; database mounted released channel: ORA_DISK_1 RMAN> list backup; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 7 Full 262.79M DISK 00:01:08 18-APR-12 BP Key: 7 Status: AVAILABLE Compressed: YES Tag: TAG20120418T234958 Piece Name: /u01/oracle/oradata/tmp/ora11g_0_07n8p916_1_1 List of Datafiles in backup set 7 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 1155510 18-APR-12 /u01/oracle/oradata/ora11g/system01.dbf 2 Full 1155510 18-APR-12 /u01/oracle/oradata/ora11g/sysaux01.dbf 3 Full 1155510 18-APR-12 /u01/oracle/oradata/ora11g/undotbs01.dbf 4 Full 1155510 18-APR-12 /u01/oracle/oradata/ora11g/users01.dbf 6 Full 1155510 18-APR-12 /u01/oracle/oradata/ora11g/xifenfei02.dbf --这里可以发现备份时的scn,增量备份时取这里的最小scn为起点 --为了排除影响,删除所有归档日志记录 RMAN> delete archivelog all; RMAN> list archivelog all; specification does not match any archived log in the repository RMAN> restore database; Starting restore at 19-APR-12 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00001 to /u01/oracle/oradata/ora11g/system01.dbf channel ORA_DISK_1: restoring datafile 00002 to /u01/oracle/oradata/ora11g/sysaux01.dbf channel ORA_DISK_1: restoring datafile 00003 to /u01/oracle/oradata/ora11g/undotbs01.dbf channel ORA_DISK_1: restoring datafile 00004 to /u01/oracle/oradata/ora11g/users01.dbf channel ORA_DISK_1: restoring datafile 00006 to /u01/oracle/oradata/ora11g/xifenfei02.dbf channel ORA_DISK_1: reading from backup piece /u01/oracle/oradata/tmp/ora11g_0_07n8p916_1_1 channel ORA_DISK_1: piece handle=/u01/oracle/oradata/tmp/ora11g_0_07n8p916_1_1 tag=TAG20120418T234958 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:01:36 Finished restore at 19-APR-12 [oracle@xifenfei oradata]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Apr 19 00:54:42 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select file#,to_char(checkpoint_change#,'9999999999999999') "SCN", 2 to_char(RESETLOGS_CHANGE#,'9999999999999999') "RESETLOGS SCN" 3 from v$datafile_header; FILE# SCN RESETLOGS SCN ---------- ---------------------------------- ---------------------------------- 1 1155510 787897 2 1155510 787897 3 1155510 787897 4 1155510 787897 6 1155510 787897 SQL> select file#,to_char(checkpoint_change#,'999999999999999') "SCN", 2 to_char(last_change#,'999999999999999')"STOP_SCN" from v$datafile; FILE# SCN STOP_SCN ---------- -------------------------------- -------------------------------- 1 1155510 2 1155510 3 1155510 4 1155510 6 1155510
基于scn增量备份
RMAN> BACKUP INCREMENTAL FROM SCN 1155510 DATABASE 2> FORMAT '/u01/oracle/oradata/tmp/ora11_scn_%U' tag 'XIFENFEI'; Starting backup at 19-APR-12 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=125 device type=DISK backup will be obsolete on date 26-APR-12 archived logs will not be kept or backed up channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/oracle/oradata/ora11g/system01.dbf input datafile file number=00002 name=/u01/oracle/oradata/ora11g/sysaux01.dbf input datafile file number=00003 name=/u01/oracle/oradata/ora11g/undotbs01.dbf input datafile file number=00004 name=/u01/oracle/oradata/ora11g/users01.dbf input datafile file number=00006 name=/u01/oracle/oradata/ora11g/xifenfei02.dbf channel ORA_DISK_1: starting piece 1 at 19-APR-12 channel ORA_DISK_1: finished piece 1 at 19-APR-12 piece handle=/u01/oracle/oradata/tmp/ora11_scn_0bn8pbsd_1_1 tag=XIFENFEI comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45 using channel ORA_DISK_1 backup will be obsolete on date 26-APR-12 archived logs will not be kept or backed up channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set channel ORA_DISK_1: starting piece 1 at 19-APR-12 channel ORA_DISK_1: finished piece 1 at 19-APR-12 piece handle=/u01/oracle/oradata/tmp/ora11_scn_0cn8pbtq_1_1 tag=XIFENFEI comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 19-APR-12
增量恢复
RMAN> catalog start with '/u01/oracle/oradata/tmp/ora11_scn_09n8pa5h_1_1'; searching for all files that match the pattern /u01/oracle/oradata/tmp/ora11_scn_09n8pa5h_1_1 List of Files Unknown to the Database ===================================== File Name: /u01/oracle/oradata/tmp/ora11_scn_09n8pa5h_1_1 Do you really want to catalog the above files (enter YES or NO)? yes cataloging files... cataloging done List of Cataloged Files ======================= File Name: /u01/oracle/oradata/tmp/ora11_scn_09n8pa5h_1_1 RMAN> recover database; Starting recover at 19-APR-12 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=125 device type=DISK channel ORA_DISK_1: starting incremental datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set destination for restore of datafile 00001: /u01/oracle/oradata/ora11g/system01.dbf destination for restore of datafile 00002: /u01/oracle/oradata/ora11g/sysaux01.dbf destination for restore of datafile 00003: /u01/oracle/oradata/ora11g/undotbs01.dbf destination for restore of datafile 00004: /u01/oracle/oradata/ora11g/users01.dbf destination for restore of datafile 00006: /u01/oracle/oradata/ora11g/xifenfei02.dbf channel ORA_DISK_1: reading from backup piece /u01/oracle/oradata/tmp/ora11_scn_0bn8pbsd_1_1 channel ORA_DISK_1: piece handle=/u01/oracle/oradata/tmp/ora11_scn_0bn8pbsd_1_1.bak tag=XIFENFEI channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:07 starting media recovery --这里表现出来的是利用归档日志恢复,实质是基于scn增量备份的备份集恢复 archived log file name=/u01/oracle/oradata/archivelog/ora11g/1_49_777766629.dbf thread=1 sequence=49 archived log file name=/u01/oracle/oradata/archivelog/ora11g/1_50_777766629.dbf thread=1 sequence=50 archived log file name=/u01/oracle/oradata/archivelog/ora11g/1_51_777766629.dbf thread=1 sequence=51 archived log file name=/u01/oracle/oradata/archivelog/ora11g/1_52_777766629.dbf thread=1 sequence=52 archived log file name=/u01/oracle/oradata/archivelog/ora11g/1_53_777766629.dbf thread=1 sequence=53 archived log file name=/u01/oracle/oradata/archivelog/ora11g/1_54_777766629.dbf thread=1 sequence=54 archived log file name=/u01/oracle/oradata/archivelog/ora11g/1_55_777766629.dbf thread=1 sequence=55 archived log file name=/u01/oracle/oradata/archivelog/ora11g/1_56_777766629.dbf thread=1 sequence=56 archived log file name=/u01/oracle/oradata/archivelog/ora11g/1_57_777766629.dbf thread=1 sequence=57 unable to find archived log archived log thread=1 sequence=58 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 04/19/2012 00:55:48 RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 58 and starting SCN of 1157379 SQL> select file#,to_char(checkpoint_change#,'9999999999999999') "SCN", 2 to_char(RESETLOGS_CHANGE#,'9999999999999999') "RESETLOGS SCN" 3 from v$datafile_header; FILE# SCN RESETLOGS SCN ---------- ---------------------------------- ---------------------------------- 1 1157379 787897 2 1157379 787897 3 1157379 787897 4 1157379 787897 6 1157379 787897 SQL> select file#,to_char(checkpoint_change#,'999999999999999') "SCN", 2 to_char(last_change#,'999999999999999')"STOP_SCN" from v$datafile; FILE# SCN STOP_SCN ---------- -------------------------------- -------------------------------- 1 1157379 2 1157379 3 1157379 4 1157379 6 1157379 SQL> alter database open resetlogs; Database altered. SQL> select count(*) from chf.xifenfei; COUNT(*) ---------- 298136 SQL> select TABLE_NAME from dba_tables where table_name LIKE 'XIFENFEI%'; TABLE_NAME ------------------------------------------------------------ XIFENFEI02 XIFENFEI01 XIFENFEI
使用rman基于scn实现数据库增量恢复是在dg中修复gap的时候常见的方法,其实该方法也可以使用常规的增量恢复,通过人工控制,实现数据库的某种特殊的业务需求(特殊的数据迁移).处理思路主要是获得备库的数据文件最小scn(这个scn可能是通过全备恢复或者增量恢复产生),然后基于该SCN实现数据库增量备份,然后利用该备份进行增量恢复.
rman 备份出现ORA-00245/RMAN-08132
rman备份出现如下错误
RMAN> backup full tag 'dbfull' format '/jfkdata1/rman_bak/full_%d_%u' database 2> include current controlfile plus archivelog format '/jfkdata1/rman_bak/arch_%d_%u'; Starting backup at 13-MAR-12 current log archived using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=297 instance=ykcdb2 device type=DISK channel ORA_DISK_1: starting archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=1 sequence=29 RECID=43 STAMP=777808820 input archived log thread=1 sequence=30 RECID=46 STAMP=777816035 input archived log thread=2 sequence=21 RECID=45 STAMP=777816033 channel ORA_DISK_1: starting piece 1 at 13-MAR-12 channel ORA_DISK_1: finished piece 1 at 13-MAR-12 piece handle=/jfkdata1/rman_bak/arch_YKCDB_01n5p1vf tag=DBFULL comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25 Finished backup at 13-MAR-12 Starting backup at 13-MAR-12 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00002 name=/jfkdata1/oradata/ykcdb/sysaux01.dbf input datafile file number=00001 name=/jfkdata1/oradata/ykcdb/system01.dbf input datafile file number=00003 name=/jfkdata1/oradata/ykcdb/undotbs01.dbf input datafile file number=00005 name=/jfkdata1/oradata/ykcdb/undotbs02.dbf input datafile file number=00004 name=/jfkdata1/oradata/ykcdb/users01.dbf channel ORA_DISK_1: starting piece 1 at 13-MAR-12 channel ORA_DISK_1: finished piece 1 at 13-MAR-12 piece handle=/jfkdata1/rman_bak/full_YKCDB_02n5p209 tag=DBFULL comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 13-MAR-12 channel ORA_DISK_1: finished piece 1 at 13-MAR-12 piece handle=/jfkdata1/rman_bak/full_YKCDB_03n5p213 tag=DBFULL comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 13-MAR-12 Starting backup at 13-MAR-12 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=2 sequence=22 RECID=48 STAMP=777816102 input archived log thread=1 sequence=31 RECID=47 STAMP=777816101 channel ORA_DISK_1: starting piece 1 at 13-MAR-12 channel ORA_DISK_1: finished piece 1 at 13-MAR-12 piece handle=/jfkdata1/rman_bak/arch_YKCDB_04n5p217 tag=DBFULL comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 13-MAR-12 ORA-00245: control file backup operation failed RMAN-08132: WARNING: cannot update recovery area reclaimable file list RMAN>
从这里可以看出数据库文件,归档日志,spfile和controlfile都备份完成,后面又出现一个controlfile失败,应该是控制文件快照备份失败。
错误原因
RMAN creates a copy of the control file for read consistency, this is the snapshot controlfile. Due to the changes made to the controlfile backup mechanism in 11gR2 any instances in the cluster may write to the snapshot controlfile. Therefore, the snapshot controlfile file needs to be visible to all instances. The same happens when a backup of the controlfile is created directly from sqlplus any instance in the cluster may write to the backup controfile file. In 11gR2 onwards, the controlfile backup happens without holding the control file enqueue. For non-RAC database, this doesn't change anything. But, for RAC database, the snapshot controlfile location must be in a shared file system that will be accessible from all the nodes. The snapshot controlfile MUST be accessible by all nodes of a RAC database.
大致意思就是rman的snapshot controlfile必须放在共享存储之上。
解决方法
The snapshot controlfile MUST be accessible by all nodes of a RAC database, if the snapshot controlfile does not reside in on a shared device this error will raise. 1. Check the snapshot controlfile location: RMAN> show all; 2. Configure the snapshot controlfile to a shared disk: RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '<shared_disk>/snapcf_<DBNAME>.f';