热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

oraclerman异机恢复

oraclerman异机恢复

  Oracle源主机 Oracle目标主机
主机平台 CentOS6.2(final) CentOs6.2(FInal)
主机名 vick rman
IP地址 192.168.1.11 192.168.1.10
实例名字 orcl orcl
Oracle版本 11.2.0.4 11。2.0.4
Oracle数据文件存储 filesystem filesystem
控制文件路径 /u01/app/oracle/oradata /u01/app/oracle/oradata
数据文件路径 /u01/app/oracle/oradata /u01/app/oracle/oradata
在线重做日志路径 /u01/app/oracle/oradata /u01/app/oracle/oradata


查看源库的控制文件信息:

SQL> select name from v$controlfile;


NAME
------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/control01.ctl
/u01/app/oracle/fast_recovery_area/orcl/control02.ctl

源库的数据文件信息:

SQL> select file#,name from v$datafile;

FILE# NAME

--------------------------------------------------------------------------------

1 /u01/app/oracle/oradata/orcl/system01.dbf

2 /u01/app/oracle/oradata/orcl/sysaux01.dbf

3 /u01/app/oracle/oradata/orcl/undotbs01.dbf

4 /u01/app/oracle/oradata/orcl/users01.dbf

5 /u01/app/oracle/oradata/orcl/tbs_catalog.dbf

6 /u01/app/oracle/oradata/orcl/dave01.dbf

源库在线重做日志文件:

SQL> select group#,member from v$logfile;

 GROUP#MEMBER

--------------------------------------------------------------------------------

1 /u01/app/oracle/oradata/orcl/redo01.log

2 /u01/app/oracle/oradata/orcl/redo02.log

3 /u01/app/oracle/oradata/orcl/redo03.log

如果路径有不同的地方则需要进行相关操作

在源数据库上用rman备份数据库,包括数据库

[oracle@vick ~]$ mkdir  /u01/backup

[oracle@vick ~]$ rman target /

RMAN> run {
2> allocate channel c1 device type disk;
3> backup incremental level 0
4> format '/u01/backup/db_full_%U.bkp'
5> tag '2014-11-14-FULL'
6> database plus archivelog;
7> release channel c1;
8> }

RMAN> backup current controlfile format '/u01/backup/control20141114 .bak';

RMAN> backup spfile format '/u01/backup/spfile20141114.bak';

二、在目标主机上复制备份数据,并准备好相关目录

将备份传到目标主机

[oracle@vick backup]$ scp * 192.168.1.10:/u01/backup

db_full_3kpnjk76_1_1.bkp                                     100%  148MB  11.4MB/s   00:13    
db_full_3lpnjk7l_1_1.bkp                                     100% 1103MB   7.8MB/s   02:22    

control20141114 .bak                                         100% 9664KB   9.4MB/s   00:01    
spfile20141114.bak                                           100%   96KB  96.0KB/s   00:00

创建相关目录

[oracle@rman orcl]$ mkdir {adump,bdump,cdump,dpdump,udump,pfile}

[oracle@rman ~]$ mkdir -p /u01/app/oracle/oradata/orcl

[oracle@rman ~]$ mkdir -p /u01/app/oracle/fast_recovery_area/ORCL

创建密码文件:

[oracle@rman dbs]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle

创建initorcl.ora文件

[oracle@rman ~]$ echo 'db_name=orcl'>$ORACLE_HOME/dbs/initorcl.ora

异机恢复-->以下操作在目标主机执行

设置DBID

查看寻源主机DBID

SQL> select dbid from v$database;

      DBID
----------
1387254920

[oracle@rman dbs]$ rman target /

RMAN> set dbid 1387254920


executing command: SET DBID

MAN> startup nomount;


connected to target database (not started)
Oracle instance started


Total System Global Area     217157632 bytes


Fixed Size                     2251816 bytes
Variable Size                159384536 bytes
Database Buffers              50331648 bytes
Redo Buffers                   5189632 bytes

恢复参数文件

RMAN> restore spfile from '/u01/backup/spfile20141114.bak';

Starting restore at 14-NOV-14
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK

channel ORA_DISK_1: restoring spfile from AUTOBACKUP /u01/backup/spfile20141114.bak
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 14-NOV-14

重启nomout
RMAN> startup nomount force;
Oracle instance started
Total System Global Area     613797888 bytes

Fixed Size                     2255712 bytes
Variable Size                427820192 bytes
Database Buffers             180355072 bytes
Redo Buffers                   3366912 bytes

恢复控制文件

RMAN> restore controlfile from '/u01/backup/control20141114 .bak';
Starting restore at 14-NOV-14
using channel ORA_DISK_1

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/app/oracle/oradata/orcl/control01.ctl
output file name=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl
Finished restore at 14-NOV-14


RMAN> startup mount

RMAN>restore database;

如果这一步没法执行可以使用list incarnation产看相关信息,切换一下再执行

reset database to incarnation XX;

RMAN> recover database;

RMAN-03002: failure of recover command at 11/14/2014 22:19:36
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of archived log for thread 1 with sequence 13 and starting SCN of 1208284

这一步竟然报错了,后来我发现没有执行catalog 

然后我执行了catalog start with ‘/u01/backup/’;

完了再次执行recover

但是还是出错现了同样的错误

然后我执行list backup of archivelog all查看后,执行了以下脚本就好了

RMAN> run {
2> set until scn 1208284;
3> recover database;
4> }


executing command: SET until clause


Starting recover at 14-NOV-14
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4


starting media recovery
media recovery complete, elapsed time: 00:00:00


Finished recover at 14-NOV-14


然后登陆数据库执行

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-19751: could not create the change tracking file
ORA-19750: change tracking file:
'/u01/app/oracle/oradata/orcl/ORCL/changetracking/o1_mf_b51rj77x_.chg'
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 1
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

又出错了,我就去/u01/app/oracle/oradata/orcl/ORCL/changetracking/目录查看没有这个目录

然后我执行了

SQL>ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;

然后关闭数据库shutdown immediate;

再执行startup;

数据库成功启动


搞这个异机恢复,第一次搞了2天,头都大了,好多解决方法都没用,以上为个人遇到的问题,希望对一些遇到同类问题的朋友有帮助


改变change tracking file的位置
1) 不关闭数据库的方式
SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 'new_location';
注意:这种方式会丢失change tracking file的内容







推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 本文详细介绍了VMware的多种认证选项,帮助你根据职业需求和个人技能选择最合适的认证路径,涵盖从基础到高级的不同层次认证。 ... [详细]
author-avatar
天蝎完美_主义
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有