Linux x86平台下Oracle 10.2.0.1 ORA-27094
时间:2010-11-15 来源:xunzhaoxz
Linux x86平台下Oracle 10.2.0.1 ORA-27094
本文PDF下载http://xunzhaoxz.itpub.net/resource/40016/30981
一、环境说明
Oracle源主机 |
Oracle目标主机 |
|
主机平台 |
RHEL5.4 2.6.18-164.el5 |
RHEL5.4 2.6.18-164.el5 |
主机名 |
olddbser |
newdbser |
DB name |
oradb |
oradb |
实例名 |
oradb |
oradb |
Oracle版本 |
10.2.0.1 |
10.2.0.1 |
Oracle数据文件存储 |
Filesystem |
LVM RAW LV |
单机或RAC |
单机 |
单机 |
在以上环境下使用rman进行数据库迁移,在数据restore datafile步骤出现本案例。
二、 问题描述
将之前在olddbser上做好的备份集ftp到ndwdbser上,安装oracle software only,重建密码文件、恢复参数文件、控制文件等都已顺利完成,到restore datafile步骤时出现如下错误:
关键信息:
ORA-19870: error reading backup piece /oracle/oradb-20101109-1flshds1_1_1.rman
ORA-19504: failed to create file "/oracle/oradata/oradb/system_1g"
ORA-27094: raw volume used can damage partition table
Additional information: -2
Additional information: 1073741824
完整日志如下:
RMAN> @/oracle/restore_raw.rman
RMAN> run
2> {
3> SET NEWNAME FOR DATAFILE
'/oracle/oradata/ORADB/datafile/o1_mf_users_6ccmb0x6_.dbf'
TO '/oracle/oradata/oradb/user_128m';
4> SET NEWNAME FOR DATAFILE
'/oracle/oradata/ORADB/datafile/o1_mf_sysaux_6ccmb0pf_.dbf'
TO '/oracle/oradata/oradb/sysaux_512m';
5> SET NEWNAME FOR DATAFILE
'/oracle/oradata/ORADB/datafile/o1_mf_undotbs1_6ccmb0w4_.dbf'
TO '/oracle/oradata/oradb/undo01_512m';
6> SET NEWNAME FOR DATAFILE
'/oracle/oradata/ORADB/datafile/o1_mf_system_6ccmb0oy_.dbf'
TO '/oracle/oradata/oradb/system_1g';
7> set until scn 556840;
8> restore database;
9> switch datafile all;
10> recover database;
11> }
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET until clause
Starting restore at 2010-11-09 20:13:58
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /oracle/oradata/oradb/system_1g
restoring datafile 00002 to /oracle/oradata/oradb/undo01_512m
restoring datafile 00003 to /oracle/oradata/oradb/sysaux_512m
restoring datafile 00004 to /oracle/oradata/oradb/user_128m
channel ORA_DISK_1: reading from backup piece /oracle/oradb-20101109-1flshds1_1_1.rman
ORA-19870: error reading backup piece /oracle/oradb-20101109-1flshds1_1_1.rman
ORA-19504: failed to create file "/oracle/oradata/oradb/system_1g"
ORA-27094: raw volume used can damage partition table
Additional information: -2
Additional information: 1073741824
三、wolfop提到“从10.2.0.2开始oracle在linux下面支持直接使用LVM或者原始的硬盘或者硬盘分区的设备文件做datafile而不需要raw这个东西。”“不是要你打补丁到10.2.0.3,就可以直接使用/dev/vg01/lv01了么?”
wolfop至少反应了如下两个信息:
1) 可以直接使用lv,不需要系统的raw设备。
metalink一把, 解决问题
我的机子上没有3628715的补丁,只有p6810189_10204,打上这个补丁后再次尝试恢复,问题解决,数据恢复(迁移)成功。