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

小技巧:用NetBackup恢复Oracle到异机

文章标题:小技巧:用NetBackup恢复Oracle到异机。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  NetBackup将Oracle数据库恢复到其它服务器
  
  一、前提
  假设备份已成功(不使用rman catalog)。假设要将数据库恢复到new_host的不同文件系统/data上。以oracle8i语法为例,Oracle9无svrmgrl,需用sqlplus "/ as sysdba"。
  
  二、步骤
  1. 在new_host上创建dba组和与old_host相同的Oracle用户。将/data的可写权限给Oracle用户。确定new_host上有足够的硬盘空间存放新的datafile及archive log file。
  
  2. 修改.profile文件中相关的Oracle环境变量,ORACLE_SID保持与old_host中一致。
  
  3. 安装与old_host相同版本的Oracle数据库软件,不创建数据库。
  
  4. 将old_host中$ORACLE_HOME/dbs下的initSID.ora文件拷至new_host的$ORACLE_HOME/dbs下。如果initSID.ora中有ifile='xxx.ora',则将xxx.ora也进行拷贝。Oracle9也可能用spinitSID.ora。
  
  5. 创建initSID.ora(及xxx.ora)中所用到的目录。通常所需建立的目录为background_dump_dest、core_dump_dest、user_dump_dest、log_archive_dest。常见结构为:
  $ORACLE_BASE /admin /SID /bdump
  /cdump
  /udump
  
  6. 在new_host上安装和配置NetBackup client和Oracle Agent。注意在NetBackup Server的/usr/openv/netbackup/db/altnames目录下touch No.Restrictions(允许异机恢复)。
  
  7. 从原机copy或从磁带异机恢复standard方式备份的最新的control file到new_host的/data目录下。
  
  8. 修改initSID.ora(及xxx.ora),如果是OPS,将OPS相关的参数去掉:
  
  (1) control_files = ("/data/controlfile_name")
  (2) log_archive_dest="/data/arch"
  (3) sort_area_size=20000000
  
  # 如果sort_area_size不够大,恢复archive_log时可能出现ora-1220
  
  9. svrmgrl> startup mount
  
  10. svrmgrl> select file# from v$datafile,记录file#
  
  11. svrmgrl> select * from v$logfile,记录log文件的目录。注意保证该目录存在并且为oracle用户可写。
  
  12. 运行恢复脚本:
  rman nocatalog target / cmdfile restore.rcv msglog restore.log
  
  附一:restore.rcv脚本:
  #################
  connect target /
  run {
  allocate channel t1 type 'sbt_tape' parms="ENV=(NB_ORA_CLIENT=old_host)";
  set newname for datafile 1 to '/data/datafile_1.dbf';
  set newname for datafile 2 to '/data/datafile_2.dbf';
  …
  restore database;
  switch datafile all;
  recover database;
  sql 'alter database open resetlogs';
  }
  
  (如果恢复到与原机相同的位置,不需要set newname和switch datafile)
  (RMAN在restore database 时只会将数据文件恢复回来;recover database时,才会restore所需的增量备份和archive log。)
  
  附二:trouble shooting
  1. 如果确认全部archive log都已用完,而recover仍提示需下一个archive log,或alter database open resetlogs时提示datafile1 need recover,可采用以下步骤:
  svrmgrl > connect internal;
  svrmgrl > recover database using backup controlfile until cancel;
  根据提示,输入
  cancel <回车>
  svrmgrl > alter database open resetlogs;
  
  附三:恢复到历史点
  如果不是恢复到最新,而是恢复到某一时刻,rman脚本如下:
  
  connect target /
  run {
  allocate channel t1 type 'sbt_tape' parms="ENV=(NB_ORA_CLIENT=old_host)";
  set until time "to_date('06/30/02 13:00:00','MM/DD/YY HH24:MI:SS')"
  restore database;
  recover database;
  sql 'alter database open resetlogs';
  }
  
推荐阅读
  • PHP 图形函数中实现汉字显示的方法
    本文详细介绍了如何在 PHP 的图形函数中正确显示汉字,包括具体的步骤和注意事项,适合初学者和有一定基础的开发者阅读。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 面对众多的数据分析工具,如何选择最适合自己的那一个?对于初学者而言,了解并掌握几种核心工具是快速入门的关键。本文将从数据处理的不同阶段出发,推荐三种广泛使用的数据分析工具。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • MVC模式下的电子取证技术初探
    本文探讨了在MVC(模型-视图-控制器)架构下进行电子取证的技术方法,通过实际案例分析,提供了详细的取证步骤和技术要点。 ... [详细]
  • 本文介绍了Tomcat的基本操作,包括启动、关闭及首次访问的方法,并详细讲解了如何在IDEA中创建Web项目,配置Servlet及其映射,以及如何将项目部署到Tomcat。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • Excel技巧:单元格中显示公式而非结果的解决方法
    本文探讨了在Excel中如何通过简单的方法解决单元格显示公式而非计算结果的问题,包括使用快捷键和调整单元格格式两种方法。 ... [详细]
  • 本文详细介绍了如何通过JDBC连接Hive进行数据操作,包括Hive服务的启动、相关依赖的配置以及具体代码示例,适合对Hive和JDBC有一定了解的开发者阅读。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • 本文介绍如何使用R语言中的相关包来解析和转换搜狗细胞词库(.scel格式),并将其导出为CSV文件,以便于后续的数据分析和文本挖掘任务。 ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
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社区 版权所有