Chinaunix首页 | 论坛 | 博客
  • 博客访问: 434018
  • 博文数量: 121
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 540
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-16 16:28
文章分类

全部博文(121)

文章存档

2021年(3)

2018年(1)

2017年(5)

2016年(9)

2015年(23)

2014年(80)

我的朋友

分类: Oracle

2017-11-06 16:35:07

目标:使用rman将数据库A备份,并恢复到到数据库B,目录由 d:\oracle 变更为 d:\oracle_rman
步骤:

对数据库A进行rman全量备份:

  1. C:\Documents and Settings\xGss2000> rman target /
  2. 恢复管理器: Release 10.2.0.1.0 - Production on 星期一 8月 15 21:51:08 2011
  3. Copyright (c) 1982, 2005, Oracle. All rights reserved.
  4. 连接到目标数据库: ORCL (DBID=1286878859)
  5. RMAN> backup database plus archivelog;

  6. 启动 backup 于 15-8月 -11
  7. 当前日志已存档
  8. 使用通道 ORA_DISK_1
  9. 通道 ORA_DISK_1: 正在启动存档日志备份集
  10. 通道 ORA_DISK_1: 正在指定备份集中的存档日志
  11. 输入存档日志线程 =1 序列 =1 记录 ID=13 时间戳=759275353
  12. 输入存档日志线程 =1 序列 =2 记录 ID=14 时间戳=759275439
  13. 输入存档日志线程 =1 序列 =3 记录 ID=15 时间戳=759277330
  14. 通道 ORA_DISK_1: 正在启动段 1 于 15-8月 -11
  15. 通道 ORA_DISK_1: 已完成段 1 于 15-8月 -11
  16. 段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_15\O1_MF_ANNNN_TAG20110815T222210_74LBWN0Z_.BKP 标记=TAG20110815T222210 注释=NONE
  17. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:09
  18. 通道 ORA_DISK_1: 正在启动存档日志备份集
  19. 通道 ORA_DISK_1: 正在指定备份集中的存档日志
  20. 输入存档日志线程 =1 序列 =1 记录 ID=6 时间戳=759272681
  21. 输入存档日志线程 =1 序列 =4 记录 ID=10 时间戳=759272898
  22. 输入存档日志线程 =1 序列 =5 记录 ID=11 时间戳=759272899
  23. 输入存档日志线程 =1 序列 =6 记录 ID=12 时间戳=759272899
  24. 通道 ORA_DISK_1: 正在启动段 1 于 15-8月 -11
  25. 通道 ORA_DISK_1: 已完成段 1 于 15-8月 -11
  26. 段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_15\O1_MF_ANNNN_TAG20110815T222210_74LBWW8S_.BKP 标记=TAG20110815T222210 注释=NONE
  27. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04
  28. 完成 backup 于 15-8月 -11
  29. 启动 backup 于 15-8月 -11
  30. 使用通道 ORA_DISK_1
  31. 通道 ORA_DISK_1: 启动全部数据文件备份集
  32. 通道 ORA_DISK_1: 正在指定备份集中的数据文件
  33. 输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
  34. 输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
  35. 输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
  36. 输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
  37. 输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
  38. 通道 ORA_DISK_1: 正在启动段 1 于 15-8月 -11
  39. 通道 ORA_DISK_1: 已完成段 1 于 15-8月 -11
  40. 段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_15\O1_MF_NNNDF_TAG20110815T222223_74LBX0VC_.BKP 标记=TAG20110815T222223 注释=NONE
  41. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:25
  42. 通道 ORA_DISK_1: 启动全部数据文件备份集
  43. 通道 ORA_DISK_1: 正在指定备份集中的数据文件
  44. 备份集中包括当前控制文件
  45. 在备份集中包含当前的 SPFILE
  46. 通道 ORA_DISK_1: 正在启动段 1 于 15-8月 -11
  47. 通道 ORA_DISK_1: 已完成段 1 于 15-8月 -11
  48. 段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_15\O1_MF_NCSNF_TAG20110815T222223_74LBZQ3X_.BKP 标记=TAG20110815T222223 注释=NONE
  49. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
  50. 完成 backup 于 15-8月 -11
  51. 启动 backup 于 15-8月 -11
  52. 当前日志已存档
  53. 使用通道 ORA_DISK_1
  54. 通道 ORA_DISK_1: 正在启动存档日志备份集
  55. 通道 ORA_DISK_1: 正在指定备份集中的存档日志
  56. 输入存档日志线程 =1 序列 =4 记录 ID=16 时间戳=759277432
  57. 通道 ORA_DISK_1: 正在启动段 1 于 15-8月 -11
  58. 通道 ORA_DISK_1: 已完成段 1 于 15-8月 -11
  59. 段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_15\O1_MF_ANNNN_TAG20110815T222352_74LBZT0H_.BKP 标记=TAG20110815T222352 注释=NONE
  60. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
  61. 完成 backup 于 15-8月 -11

将备份文件复制到要恢复的机器上

略。

以下操作均在新系统操作。

使用dbca创建数据库,shutdown,删除orcl目录下所有文件,然后启动到nomount状态,注意sid要相同。

  1. SQL> shutdown immediate;
  2. ORACLE 例程已经关闭。

    -- 此时,删除orcl目录下所有文件。注意:要保留orcl目录,即orcl目录状态为空。

  3. SQL> startup nomount;
  4. ORACLE 例程已经启动。
  5. Total System Global Area 171966464 bytes
  6. Fixed Size 1247924 bytes
  7. Variable Size 71304524 bytes
  8. Database Buffers 96468992 bytes
  9. Redo Buffers 2945024 bytes
  10. SQL>

通过rman的备份文件 恢复control文件


  1. C:\Documents and Settings\xGss2000>rman target /
  2. 恢复管理器: Release 10.2.0.1.0 - Production on 星期一 8月 15 23:17:23 2011
  3. Copyright (c) 1982, 2005, Oracle. All rights reserved.
  4. 连接到目标数据库: orcl (未装载)
  5. RMAN> restore controlfile from 'D:\oracle_rman\product\10.2.0\flash_recovery_area\ORCL\BACKUPSET\2011_08_15\O1_MF_NCSNF_TAG20110815T222223_74LBZQ3X_.BKP';
  6. 启动 restore 于 15-8月 -11
  7. 使用目标数据库控制文件替代恢复目录
  8. 分配的通道: ORA_DISK_1
  9. 通道 ORA_DISK_1: sid=156 devtype=DISK
  10. 通道 ORA_DISK_1: 正在复原控制文件
  11. 通道 ORA_DISK_1: 恢复完成, 用时: 00:00:05
  12. 输出文件名=D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
  13. 输出文件名=D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
  14. 输出文件名=D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
  15. 完成 restore 于 15-8月 -11

将数据库mount,并且备份control文件到trace(为了重建control文件,因为目录变更,control文件内容是错误的。)

  1. SQL> alter database mount;
  2. 数据库已更改。
  3. SQL> alter database backup controlfile to trace as 'd:\control_new.trc';
  4. 数据库已更改。

再次登录rman,观察backup file,此时,我们已经可以看到backupset了。

  1. RMAN> list backup;
  2. 备份集列表
  3. ===================
  4. BS 关键字 大小 设备类型占用时间 完成时间
  5. ------- ---------- ----------- ------------ ----------
  6. 17 30.81M DISK 00:00:06 15-8月 -11
  7. BP 关键字: 17 状态: AVAILABLE 已压缩: NO 标记: TAG20110815T222210
  8. 段名:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_15\O1_MF_ANNNN_TAG20110815T222210_74LBWN0Z_.BKP
  9. 备份集 17 中的已存档日志列表
  10. Thrd Seq 低 SCN 短时间 下一个 SCN 下一次
  11. ---- ------- ---------- ---------- ---------- ---------
  12. 1 1 646698 15-8月 -11 648491 15-8月 -11
  13. 1 2 648491 15-8月 -11 648533 15-8月 -11
  14. 1 3 648533 15-8月 -11 655356 15-8月 -11
  15. BS 关键字 大小 设备类型占用时间 完成时间
  16. ------- ---------- ----------- ------------ ----------
  17. 18 3.15M DISK 00:00:02 15-8月 -11
  18. BP 关键字: 18 状态: AVAILABLE 已压缩: NO 标记: TAG20110815T222210
  19. 段名:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_15\O1_MF_ANNNN_TAG20110815T222210_74LBWW8S_.BKP
  20. 备份集 18 中的已存档日志列表
  21. Thrd Seq 低 SCN 短时间 下一个 SCN 下一次
  22. ---- ------- ---------- ---------- ---------- ---------
  23. 1 1 581730 14-8月 -11 602775 14-8月 -11
  24. 1 4 641802 15-8月 -11 642356 15-8月 -11
  25. 1 5 642356 15-8月 -11 642477 15-8月 -11
  26. 1 6 642477 15-8月 -11 646698 15-8月 -11
  27. BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
  28. ------- ---- -- ---------- ----------- ------------ ----------
  29. 19 Full 609.91M DISK 00:01:19 15-8月 -11
  30. BP 关键字: 19 状态: AVAILABLE 已压缩: NO 标记: TAG20110815T222223
  31. 段名:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_15\O1_MF_NNNDF_TAG20110815T222223_74LBX0VC_.BKP
  32. 备份集 19 中的数据文件列表
  33. 文件 LV 类型 Ckp SCN Ckp 时间 名称
  34. ---- -- ---- ---------- ---------- ----
  35. 1 Full 655370 15-8月 -11 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
  36. 2 Full 655370 15-8月 -11 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
  37. 3 Full 655370 15-8月 -11 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
  38. 4 Full 655370 15-8月 -11 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
  39. 5 Full 655370 15-8月 -11 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF

我们发现,backup中datafile路径是错误的,需要修正。

  1. RMAN> run {
  2. 2> set newname for datafile 1 to 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF';
  3. 3> set newname for datafile 2 to 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF';
  4. 4> set newname for datafile 3 to 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF';
  5. 5> set newname for datafile 4 to 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF';
  6. 6> set newname for datafile 5 to 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF';
  7. 7> restore database;
  8. 8> switch datafile all;
  9. 9> }
  10. 正在执行命令: SET NEWNAME
  11. 正在执行命令: SET NEWNAME
  12. 正在执行命令: SET NEWNAME
  13. 正在执行命令: SET NEWNAME
  14. 正在执行命令: SET NEWNAME
  15. 启动 restore 于 15-8月 -11
  16. 使用通道 ORA_DISK_1
  17. 通道 ORA_DISK_1: 正在开始恢复数据文件备份集
  18. 通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
  19. 正将数据文件00001恢复到D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
  20. 正将数据文件00002恢复到D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
  21. 正将数据文件00003恢复到D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
  22. 正将数据文件00004恢复到D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
  23. 正将数据文件00005恢复到D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
  24. 通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE_RMAN\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_15\O1_MF_NNNDF_TAG20110815T222223_74LBX0VC_.BKP
  25. 通道 ORA_DISK_1: 已恢复备份段 1
  26. 段句柄 = D:\ORACLE_RMAN\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_15\O1_MF_NNNDF_TAG20110815T222223_74LBX0VC_.BKP 标记 = TAG20110815T222223
  27. 通道 ORA_DISK_1: 恢复完成, 用时: 00:01:35
  28. 完成 restore 于 15-8月 -11
  29. 数据文件 1 已转换成数据文件副本
  30. 输入数据文件副本 recid=16 stamp=759282825 文件名=D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
  31. 数据文件 2 已转换成数据文件副本
  32. 输入数据文件副本 recid=17 stamp=759282825 文件名=D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
  33. 数据文件 3 已转换成数据文件副本
  34. 输入数据文件副本 recid=18 stamp=759282825 文件名=D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
  35. 数据文件 4 已转换成数据文件副本
  36. 输入数据文件副本 recid=19 stamp=759282825 文件名=D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
  37. 数据文件 5 已转换成数据文件副本
  38. 输入数据文件副本 recid=20 stamp=759282825 文件名=D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF

通过刚才的trc文件重建control 文件,注意需要修改相关路径。

  1. ## 重建control需要nomount状态
    SQL> shutdown immediate;
  2. ORA-01109: ??????
  3. 已经卸载数据库。
  4. ORACLE 例程已经关闭。
  5. SQL> startup nomount;
  6. ORACLE 例程已经启动。
  7. Total System Global Area 171966464 bytes
  8. Fixed Size 1247924 bytes
  9. Variable Size 71304524 bytes
  10. Database Buffers 96468992 bytes
  11. Redo Buffers 2945024 bytes
重建control文件脚本(从backup to trace 的文件得来)

  1. CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS FORCE LOGGING ARCHIVELOG
  2. MAXLOGFILES 16
  3. MAXLOGMEMBERS 3
  4. MAXDATAFILES 100
  5. MAXINSTANCES 8
  6. MAXLOGHISTORY 292
  7. LOGFILE
  8. GROUP 1 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG' SIZE 50M,
  9. GROUP 2 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG' SIZE 50M,
  10. GROUP 3 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG' SIZE 50M
  11. -- STANDBY LOGFILE
  12. DATAFILE
  13. 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF',
  14. 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF',
  15. 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF',
  16. 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF',
  17. 'D:\ORACLE_RMAN\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF'
  18. CHARACTER SET ZHS16GBK
  19. ;

recover and open

  1. RMAN> recover database;
  2. 启动 recover 于 15-8月 -11
  3. 使用目标数据库控制文件替代恢复目录
  4. 分配的通道: ORA_DISK_1
  5. 通道 ORA_DISK_1: sid=155 devtype=DISK
  6. 正在开始介质的恢复
  7. 无法找到存档日志
  8. 存档日志线程 =1 序列=4
  9. MAN-00571: ===========================================================
  10. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
  11. RMAN-00571: ===========================================================
  12. RMAN-03002: recover 命令 (在 08/15/2011 23:59:52 上) 失败
  13. RMAN-06054: 介质恢复正请求未知的日志: 线程 1 seq 4 lowscn 655370
  14. RMAN> alter database open resetlogs;
  15. 数据库已打开




阅读(974) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~