今天用RMAN进行数据库备份,遇到错误如下:
RMAN> backup database plus archivelog format '/u02/backup/%u' delete input;
启动 backup 于 14-5月 -08
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =12 记录 ID=28 时间戳=654716551
通道 ORA_DISK_1: 正在启动段 1 于 14-5月 -08
通道 ORA_DISK_1: 已完成段 1 于 14-5月 -08
段句柄=/u02/backup/1ejgcbk7 标记=TAG20080514T174231 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =/u02/oraarch/1_12_654552251.dbf 记录 ID=28 时间戳 =654716551
完成 backup 于 14-5月 -08
启动 backup 于 14-5月 -08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
输入数据文件 fno=00006 name=/u02/oradata/demo1_01.dbf
输入数据文件 fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
输入数据文件 fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
输入数据文件 fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
输入数据文件 fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 14-5月 -08
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: backup plus archivelog 命令 (在 05/14/2008 17:42:41 上) 失败
ORA-19502: 文件 "/u01/app/oracle/flash_recovery_area/ORCL/backupset/2008_05_14/o1_mf_nnndf_TAG20080514T174234_%u_.bkp", 块编号 10625 写错误 (块大小 = 8192)
ORA-27072: 文件 I/O 错误
Linux Error: 2: No such file or directory
Additional information: 4
Additional information: 10625
Additional information: 675840
因为之前使用rm -f 删除了/u01/app/oracle/flash_recovery_area/ORCL/backupset/下的内容,所以尝试执行了如下命令再进行备份,但是问题依旧:
crosscheck archivelog all;
delete expired archivelog all;
接下来尝试自己分配通道执行备份,可以备份成功 ,但是执行backup database plus archivelog format '/u02/backup/bak_%U' delete all input;仍然是原来的错误:
RMAN> run
2> {
3> allocate channel t1 device type disk format='/u02/backup/%U';
4> backup database plus archivelog delete all input;
5> release channel t1;
6> }
使用目标数据库控制文件替代恢复目录
分配的通道: t1
通道 t1: sid=152 devtype=DISK
启动 backup 于 15-5月 -08
当前日志已存档
通道 t1: 正在启动存档日志备份集
通道 t1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =15 记录 ID=31 时间戳=654765650
输入存档日志线程 =1 序列 =16 记录 ID=32 时间戳=654799485
通道 t1: 正在启动段 1 于 15-5月 -08
通道 t1: 已完成段 1 于 15-5月 -08
段句柄=/u02/backup/1kjgesju_1_1 标记=TAG20080515T164445 注释=NONE
通道 t1: 备份集已完成, 经过时间:00:00:08
通道 t1: 正在删除存档日志
存档日志文件名 =/u02/oraarch/1_15_654552251.dbf 记录 ID=31 时间戳 =654765650
存档日志文件名 =/u02/oraarch/1_16_654552251.dbf 记录 ID=32 时间戳 =654799485
完成 backup 于 15-5月 -08
启动 backup 于 15-5月 -08
通道 t1: 启动全部数据文件备份集
通道 t1: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
输入数据文件 fno=00006 name=/u02/oradata/demo1_01.dbf
输入数据文件 fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
输入数据文件 fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
输入数据文件 fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
输入数据文件 fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf
通道 t1: 正在启动段 1 于 15-5月 -08
通道 t1: 已完成段 1 于 15-5月 -08
段句柄=/u02/backup/1ljgesk7_1_1 标记=TAG20080515T164454 注释=NONE
通道 t1: 备份集已完成, 经过时间:00:03:45
完成 backup 于 15-5月 -08
启动 backup 于 15-5月 -08
当前日志已存档
通道 t1: 正在启动存档日志备份集
通道 t1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =17 记录 ID=33 时间戳=654799722
通道 t1: 正在启动段 1 于 15-5月 -08
通道 t1: 已完成段 1 于 15-5月 -08
段句柄=/u02/backup/1mjgesra_1_1 标记=TAG20080515T164842 注释=NONE
通道 t1: 备份集已完成, 经过时间:00:00:04
通道 t1: 正在删除存档日志
存档日志文件名 =/u02/oraarch/1_17_654552251.dbf 记录 ID=33 时间戳 =654799722
完成 backup 于 15-5月 -08
启动 Control File and SPFILE Autobackup 于 15-5月 -08
段 handle=/u02/backup/c-1179280681-20080515-00 comment=NONE
完成 Control File and SPFILE Autobackup 于 15-5月 -08
释放的通道: t1
RMAN> backup database plus archivelog format '/u02/backup/bak_%U' delete all input;
启动 backup 于 15-5月 -08
当前日志已存档
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=152 devtype=DISK
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =18 记录 ID=34 时间戳=654799831
通道 ORA_DISK_1: 正在启动段 1 于 15-5月 -08
通道 ORA_DISK_1: 已完成段 1 于 15-5月 -08
段句柄=/u02/backup/bak_1ojgesun_1_1 标记=TAG20080515T165031 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =/u02/oraarch/1_18_654552251.dbf 记录 ID=34 时间戳 =654799831
完成 backup 于 15-5月 -08
启动 backup 于 15-5月 -08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
输入数据文件 fno=00006 name=/u02/oradata/demo1_01.dbf
输入数据文件 fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
输入数据文件 fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
输入数据文件 fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
输入数据文件 fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 15-5月 -08
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: backup plus archivelog 命令 (在 05/15/2008 16:50:37 上) 失败
ORA-19502: 文件 "/u01/app/oracle/flash_recovery_area/ORCL/backupset/2008_05_15/o1_mf_nnndf_TAG20080515T165034_%u_.bkp", 块编号 257 写错误 (块大小 = 8192)
ORA-27072: 文件 I/O 错误
Linux Error: 2: No such file or directory
Additional information: 4
Additional information: 257
Additional information: 307200
在run代码块中分配通道:allocate channel t1 device type disk format='/u02/backup/%U';可以备份成功,再比较我的备份命令:backup database plus archivelog format '/u02/backup/bak_%U' delete all input;
自己想想应该是format位置的问题,尝试将 format '/u02/backup/bak_%U' 放到 plus archivelog 之前,用如下命令进行备份:backup database format '/u02/backup/bak_%U' plus archivelog delete all input,备份成功:
RMAN> backup database format '/u02/backup/bak_%U' plus archivelog delete all input;
启动 backup 于 15-5月 -08
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =20 记录 ID=36 时间戳=654800809
通道 ORA_DISK_1: 正在启动段 1 于 15-5月 -08
通道 ORA_DISK_1: 已完成段 1 于 15-5月 -08
段句柄=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2008_05_15/o1_mf_annnn_TAG20080515T170649_42qz9bp0_.bkp 标记=TAG20080515T170649 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =/u02/oraarch/1_20_654552251.dbf 记录 ID=36 时间戳 =654800809
完成 backup 于 15-5月 -08
启动 backup 于 15-5月 -08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
输入数据文件 fno=00006 name=/u02/oradata/demo1_01.dbf
输入数据文件 fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
输入数据文件 fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
输入数据文件 fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
输入数据文件 fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 15-5月 -08
通道 ORA_DISK_1: 已完成段 1 于 15-5月 -08
段句柄=/u02/backup/bak_1tjgettc_1_1 标记=TAG20080515T170652 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:03:45
完成 backup 于 15-5月 -08
启动 backup 于 15-5月 -08
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =21 记录 ID=37 时间戳=654801038
通道 ORA_DISK_1: 正在启动段 1 于 15-5月 -08
通道 ORA_DISK_1: 已完成段 1 于 15-5月 -08
段句柄=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2008_05_15/o1_mf_annnn_TAG20080515T171038_42qzjhpd_.bkp 标记=TAG20080515T171038 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =/u02/oraarch/1_21_654552251.dbf 记录 ID=37 时间戳 =654801038
完成 backup 于 15-5月 -08
启动 Control File and SPFILE Autobackup 于 15-5月 -08
段 handle=/u02/backup/c-1179280681-20080515-01 comment=NONE
完成 Control File and SPFILE Autobackup 于 15-5月 -08
总结上述备份报错的原因如下:
Backup taken like:
backup database plus archivelog format ...
Since format only applies to last part of backup command (with archivelog), only the archivelog backups use the FORMAT specification. The database backup has no format and thus is placed in the default location. The default may be under ORACLE_HOME, or flashback area in Oracle10g.
backup database plus archivelog format ...这个的命令格式进行备份,备份集默认生成在flashback area,而不是backup命令format选项指定的路径下,刚好我的flashback area空间不足,所以就出现了上面的错误!