我有Sun Solaris操作系统上oracle 10g(10.2.0.3)的RMAN完整数据库备份,我想在Linux操作系统上的oracle 11g(11.2.0.3)上恢复该备份。备份片段以二进制模式手动传输到oracle11g服务器。Oracle 11g安装在Linux操作系统上。我只有RMAN备份,无法访问进行备份的主数据库。
-rwxrwxr-x 1 mepc dba 36356096 Jul 16 14:49 snapcf_MEPC.f
-rwxrwxr-x 1 mepc dba 166028800 Jul 16 15:29 MEPC_full_backup_MEPC_nnnbkn9f_1_1
-rwxrwxr-x 1 mepc dba 169567744 Jul 16 15:29 MEPC_full_backup_MEPC_nmnbkn9f_1_1
-rwxrwxr-x 1 mepc dba 164813824 Jul 16 15:39 MEPC_full_backup_MEPC_nonbkn9f_1_1
-rwxrwxr-x 1 mepc dba 144025600 Jul 16 16:06 MEPC_full_backup_MEPC_nqnbkn9f_1_1
-rwxrwxr-x 1 mepc dba 168576512 Jul 16 16:09 MEPC_full_backup_MEPC_npnbkn9f_1_1
-rwxrwxr-x 1 mepc dba 168649216 Jul 16 17:33 MEPC_full_backup_MEPC_o5nbkpvv_1_1
-rwxrwxr-x 1 mepc dba 162847232 Jul 16 17:34 MEPC_full_backup_MEPC_o6nbkpvv_1_1
-rwxrwxr-x 1 mepc dba 167351808 Jul 16 17:35 MEPC_full_backup_MEPC_o7nbkpvv_1_1
-rwxrwxr-x 1 mepc dba 166838272 Jul 16 17:36 MEPC_full_backup_MEPC_o8nbkpvv_1_1
-rwxrwxr-x 1 mepc dba 166876160 Jul 16 17:37 MEPC_full_backup_MEPC_o9nbkpvv_1_1
-rwxrwxr-x 1 mepc dba 327606272 Jul 16 17:54 MEPC_full_backup_MEPC_o4nbknav_1_1
-rwxrwxr-x 1 mepc dba 549658624 Jul 16 18:26 MEPC_full_backup_MEPC_o2nbknav_1_1
-rwxrwxr-x 1 mepc dba 162984448 Jul 16 18:28 MEPC_full_backup_MEPC_oanbkpvv_1_1
-rwxrwxr-x 1 mepc dba 163567616 Jul 16 18:29 MEPC_full_backup_MEPC_obnbkpvv_1_1
-rwxrwxr-x 1 mepc dba 161380352 Jul 16 18:29 MEPC_full_backup_MEPC_ocnbkpvv_1_1
-rwxrwxr-x 1 mepc dba 1072275456 Jul 18 13:52 MEPC_full_backup_MEPC_o3nbknav_1_1
-rwxrwxr-x 1 mepc dba 1813348352 Jul 18 17:00 MEPC_full_backup_MEPC_o1nbknav_1_1
-rwxrwxr-x 1 mepc dba 36438016 Jul 25 15:45 controlfile_bkup_MEPC_c-1469445140-20120522-09
备份采用上述格式。我知道进行备份的数据库的ORACLE_SID。
每当我尝试以下命令时
mepc@tcstctmatson:/mepc_backup/May22fullbkp$ rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jul 31 12:14:54 2012
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: MEPC (DBID=1595278680)
RMAN> shutdown;
using target database control file instead of recovery catalog
database closed
database dismounted
Oracle instance shut down
RMAN> startup nomount;
connected to target database (not started)
Oracle instance started
Total System Global Area 1071333376 bytes
Fixed Size 1349732 bytes
Variable Size 620758940 bytes
Database Buffers 444596224 bytes
Redo Buffers 4628480 bytes
RMAN> restore spfile to '$ORACLE_HOME/dbs/initMEPC.ora' from autobackup db_recovery_file_dest='/mepc_backup/May22fullbkp' db_name='MEPC';
通知了以下错误
Starting restore at 31-JUL-12
using channel ORA_DISK_1
recovery area destination: /mepc_backup/May22fullbkp
database name (or database unique name) used for search: MEPC
channel ORA_DISK_1: no AUTOBACKUPS found in the recovery area
channel ORA_DISK_1: looking for AUTOBACKUP on day: 20120731
channel ORA_DISK_1: looking for AUTOBACKUP on day: 20120730
channel ORA_DISK_1: looking for AUTOBACKUP on day: 20120729
channel ORA_DISK_1: looking for AUTOBACKUP on day: 20120728
channel ORA_DISK_1: looking for AUTOBACKUP on day: 20120727
channel ORA_DISK_1: looking for AUTOBACKUP on day: 20120726
channel ORA_DISK_1: looking for AUTOBACKUP on day: 20120725
channel ORA_DISK_1: no AUTOBACKUP in 7 days found
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 07/31/2012 12:22:06
RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
我也尝试通过目录恢复rman备份,通知了以下错误
List of Files Which Where Not Cataloged
=======================================
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_nonbkn9f_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_obnbkpvv_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_ocnbkpvv_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_o7nbkpvv_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_o9nbkpvv_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_nmnbkn9f_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_nnnbkn9f_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_o3nbknav_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_o6nbkpvv_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/controlfile_bkup_MEPC_c-1469445140-20120522-09
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_npnbkn9f_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_oanbkpvv_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_nqnbkn9f_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_o1nbknav_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_o5nbkpvv_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/snapcf_MEPC.f
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_o2nbknav_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_o4nbknav_1_1
RMAN-07517: Reason: The file header is corrupted
File Name: /mepc_backup/May22fullbkp/MEPC_full_backup_MEPC_o8nbkpvv_1_1
RMAN-07517: Reason: The file header is corrupted
文件没有损坏,因为我检查了两台服务器上的校验和,它是相同的。
请帮助我如何在oracle 11g中恢复RMAN oracle 10g备份,并告诉我哪里出了问题。
提前谢谢。
您不能这样做。AFAIK、Solaris(假设sparc)和Linux(假设Intel)具有不同的endian格式,这就是您的问题。您可以使用迁移跨平台表空间的场景。请参阅《Oracle®数据库备份和恢复参考》如果您的endian格式看起来是相同的,则应该使用rman-convert数据库转换数据库。在这种情况下,您可以恢复跨平台和跨版本。
不适用于10g/11g,但这在12c:中有所不同
在12c中,rman通过备份命令提供了以下选项:
FOR TRANSPORT(用于运输):此选项可创建一个可运输到任何目的地的后台处理。如果目标数据库使用的endian格式与源数据库不同,则对目标数据库执行endian格式转换。TO PLATFORM:此选项导致在源数据库上执行endian格式转换,并且只能由受支持的平台使用。DATAPUMP:指定在执行跨平台备份时创建数据泵导出转储文件。转储文件是在单独的备份集中创建的。
使用以下命令从自动备份进行还原,RMAN知道路径,它将进行还原。
restore controlfile from autobackup;
您首先需要知道Solaris到Linux是否属于同一个endian。我看到Solaris 64位和Linux 64位是相同的endian。
即使它有相同的endian,当"源生产数据库有一个32KB的表空间和为db_32k_cache_size定义的初始化参数,但目标pfile没有定义参数db_32k_cache_size"时,你也会看到这个错误
在目标db_32k_cache_size 的pfile/sp文件中设置