1.软件版本
备份源
centos 7.2 + oracle 11g
目标库
windows server 2003 + oracle 11g
2.在centos 7.2下用rman做了一个全库备份,并使用winscp复制到windows下
3.在windows下创建一个oracle服务
C:/Documents and Settings/Administrator>oradim -new -sid cbe1cs
实例已创建。
4.启动rman 恢复参数文件
set oracle_sid=cbe1cs
rman target /
startup nomount
restore spfile to 'E:/app/Administrator/product/11.2.0/dbhome_1/database/spfilecbe1cs.ora' from 'E:/x2/20180809_control_c-1848148640-20180809-09_yhc';
5.创建pfile,并修改相关参数值和目录结构,因为是测试,我的pfile只设置了db_name和db_unique_name参数,其它全使用默认
6.启用到nomount,恢复控制文件
rman target /
startup mount
restore controlfile from 'E:/x2/20180809_control_c-1848148640-20180809-09_yhc';
7.使用catalog命令将从linux复制过来的备份集加载到windows的rman中
crosscheck backup;
delete expired backup; #这两步将恢复过来的控制文件中的备份记录清空
list backup
catalog start with 'E:/x2/'
list backup #此时显示的备份集信息就是我们复制过来的备份
8.使用run运行恢复脚本
run {
set newname for database to 'e:/rmanbk/data_%U';
restore database;
}
9.更换控制文件中关于数据文件位置记录
switch database to copy;
以上操作都是正常。没有报错,接下来,在做recover database是,报错了,信息如下:
RMAN> recover database until sequence 2444;
启动 recover 于 10-8月 -18
使用通道 ORA_DISK_1
正在开始介质的恢复
通道 ORA_DISK_1: 正在开始将归档日志还原到默认目标
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=2440
通道 ORA_DISK_1: 正在读取备份片段 E:/X2/20180809_ARCHIVE_2440_CBE1_6BTA4QVQ_983723002_6BTA4QVQ_1_1_YHC
通道 ORA_DISK_1: 段句柄 = E:/X2/20180809_ARCHIVE_2440_CBE1_6BTA4QVQ_983723002_6BTA4QVQ_1_1_YHC 标记 = TAG20180809T162321
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:03
归档日志文件名=E:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHOME_1/RDBMS/ARC0000002440_0979413600.0001 线程=1 序列=2440
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 08/10/2018 15:02:04 上) 失败
RMAN-11003: 在分析/执行 SQL 语句期间失败: alter database recover logfile 'E:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHOME_1/RDBMS/ARC0000002440_0979413600.
0001'
ORA-10562: Error occurred while applying redo to data block (file# 19, block# 72688)
ORA-10564: tablespace DS_IDX01
ORA-01110: data file 19: 'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_IDX01_FNO-19'
ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 80659
ORA-00600: internal error code, arguments: [6122], [0], [26774], [0], [], [], [], [], [], [], [], []
后来使用corruption关键字跳过错误恢复,方式如下:**
RMAN> recover database allow 10 corruption;
启动 recover 于 10-8月 -18
使用通道 ORA_DISK_1
正在开始介质的恢复
线程 1 序列 2440 的归档日志已作为文件 E:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHOME_1/RDBMS/ARC0000002440_0979413600.0001 存在于磁盘上
归档日志文件名=E:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHOME_1/RDBMS/ARC0000002440_0979413600.0001 线程=1 序列=2440
通道 ORA_DISK_1: 正在开始将归档日志还原到默认目标
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=2441
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=2442
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=2443
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=2444
通道 ORA_DISK_1: 正在读取备份片段 E:/X2/20180809_ARCHIVE_2444_CBE1_6CTA4QVR_983723003_6CTA4QVR_1_1_YHC
通道 ORA_DISK_1: 段句柄 = E:/X2/20180809_ARCHIVE_2444_CBE1_6CTA4QVR_983723003_6CTA4QVR_1_1_YHC 标记 = TAG20180809T162321
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
归档日志文件名=E:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHOME_1/RDBMS/ARC0000002441_0979413600.0001 线程=1 序列=2441
归档日志文件名=E:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHOME_1/RDBMS/ARC0000002442_0979413600.0001 线程=1 序列=2442
归档日志文件名=E:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHOME_1/RDBMS/ARC0000002443_0979413600.0001 线程=1 序列=2443
归档日志文件名=E:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHOME_1/RDBMS/ARC0000002444_0979413600.0001 线程=1 序列=2444
无法找到归档日志
归档日志线程=1 序列=2445
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 08/10/2018 15:04:46 上) 失败
RMAN-06054: 介质恢复正在请求未知的线程 1 序列 2445 的归档日志以及起始 SCN 1182430162
继续,此时,登陆数据库,查看关的scn,发现一致了
SQL> select name,checkpoint_change# from v$database;
NAME CHECKPOINT_CHANGE#
------------------------------------------------------------ ------------------
CBE1 1182430162
SQL> select name,checkpoint_change# from v$datafile;
NAME CHECKPOINT_CHANGE#
------------------------------------------------------------ ------------------
E:/RMANBK/DATA_DATA_D-CBE1_TS-SYSTEM_FNO-1 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-SYSAUX_FNO-2 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-UNDOTBS1_FNO-3 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-USERS_FNO-4 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_EP01_FNO-5 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_HR01_FNO-6 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_FI01_FNO-7 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_YM01_FNO-8 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_QM01_FNO-9 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_SI01_FNO-10 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_MM01_FNO-11 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_PM01_FNO-12 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_SO01_FNO-13 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_AC01_FNO-14 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_PO01_FNO-15 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_TS01_FNO-16 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_PA01_FNO-17 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_IDX_FNO-18 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_IDX01_FNO-19 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_DM01_FNO-20 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_TM01_FNO-21 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-CBE0BK_FNO-22 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_XCOM_FNO-23 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_LARGE01_FNO-24 1182430162
SQL> select name,checkpoint_change# from v$datafile_header;
NAME CHECKPOINT_CHANGE#
------------------------------------------------------------ ------------------
E:/RMANBK/DATA_DATA_D-CBE1_TS-SYSTEM_FNO-1 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-SYSAUX_FNO-2 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-UNDOTBS1_FNO-3 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-USERS_FNO-4 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_EP01_FNO-5 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_HR01_FNO-6 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_FI01_FNO-7 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_YM01_FNO-8 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_QM01_FNO-9 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_SI01_FNO-10 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_MM01_FNO-11 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_PM01_FNO-12 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_SO01_FNO-13 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_AC01_FNO-14 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_PO01_FNO-15 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_TS01_FNO-16 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_PA01_FNO-17 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_IDX_FNO-18 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_IDX01_FNO-19 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_DM01_FNO-20 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_TM01_FNO-21 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-CBE0BK_FNO-22 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_XCOM_FNO-23 1182430162
E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_LARGE01_FNO-24 1182430162
此时,打开数据库,报如下错误
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-00344: 无法重新创建联机日志
'/home/oracle/u01/app/oracle/oradata/cbe1/redo01a.log'
ORA-27040: 文件创建错误, 无法创建文件
OSD-04002: 无法打开文件
O/S-Error: (OS 3) 系统找不到指定的路径。
由于是从linux备份过来的。此时,日志文件路径不对,需要手工修改,使用以下命令,结果报错,应该是不能识别原路径吧?
SQL> alter database rename file
2 '/home/oracle/u01/app/oracle/oradata/cbe1/redo01a.log',
3 '/home/oracle/u01/app/oracle/fast_recovery_area/redo01b.log',
4 '/home/oracle/u01/app/oracle/oradata/cbe1/redo02a.log',
5 '/home/oracle/u01/app/oracle/fast_recovery_area/redo02b.log',
6 '/home/oracle/u01/app/oracle/oradata/cbe1/redo03a.log',
7 '/home/oracle/u01/app/oracle/fast_recovery_area/redo03b.log',
8 '/home/oracle/u01/app/oracle/oradata/cbe1/redo04a.log',
9 '/home/oracle/u01/app/oracle/fast_recovery_area/redo04b.log'
10 to
11 'E:/rmanbk/online/redo01.log',
12 'E:/rmanbk/online/redo01a.log',
13 'E:/rmanbk/online/redo02.log',
14 'E:/rmanbk/online/redo02a.log',
15 'E:/rmanbk/online/redo03.log',
16 'E:/rmanbk/online/redo03a.log',
17 'E:/rmanbk/online/redo04.log',
18 'E:/rmanbk/online/redo04a.log';
alter database rename file
*
第 1 行出现错误:
ORA-01511: 重命名日志/数据文件时出错
ORA-01516: 不存在的日志文件, 数据文件或临时文件
"/home/oracle/u01/app/oracle/oradata/cbe1/redo01a.log"
那好吧。重建控制文件
alter database backup controlfile to trace as 'e:/xxx.dbf';
根据脚本重建控制文件,具体如下:
startup nomount
CREATE CONTROLFILE REUSE DATABASE "CBE1" RESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 975
LOGFILE
GROUP 1 (
'E:/rmanbk/online/redo01b.log'
) SIZE 50M BLOCKSIZE 512,
GROUP 2 (
'E:/rmanbk/online/redo02b.log'
) SIZE 50M BLOCKSIZE 512,
GROUP 3 (
'E:/rmanbk/online/redo03b.log'
) SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'E:/RMANBK/DATA_DATA_D-CBE1_TS-SYSTEM_FNO-1',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-SYSAUX_FNO-2',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-UNDOTBS1_FNO-3',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-USERS_FNO-4',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_EP01_FNO-5',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_HR01_FNO-6',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_FI01_FNO-7',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_YM01_FNO-8',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_QM01_FNO-9',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_SI01_FNO-10',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_MM01_FNO-11',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_PM01_FNO-12',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_SO01_FNO-13',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_AC01_FNO-14',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_PO01_FNO-15',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_TS01_FNO-16',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_PA01_FNO-17',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_IDX_FNO-18',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_IDX01_FNO-19',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_DM01_FNO-20',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_TM01_FNO-21',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-CBE0BK_FNO-22',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_XCOM_FNO-23',
'E:/RMANBK/DATA_DATA_D-CBE1_TS-DS_LARGE01_FNO-24';
最后,重新打开数据库
alter database open restelogs;
#不要忘掉创建temp表空间的数据文件。
不解:
此备份集拿到另外一台centos下的oracl 11g中恢复是没有问题的。
后来,用dbv 来检测报错的数据文件,也没有发现坏块
版权声明:本文为博主原创文章,未经博主允许不得转载。
- 上一篇:h3c v7版本AC+FIT 二层漫游基本配置过程
- 下一篇:LVM基本操作