########################################################

#编辑pfile文件initspdb.ora

vi /oracle/app/oracle/product/12.2.0/db_1/dbs/initspdb.ora

audit_file_dest='/oracle/app/oracle/admin/spdb/adump'
audit_trail='db'
compatible='12.2.0'
control_files='/oracle/app/oracle/oradata/spdb/control.ctl'
db_block_size=8192
db_name='spdb'
diagnostic_dest='/oracle/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=spdbXDB)'
enable_pluggable_database=true
log_archive_dest_1='LOCATION=/orabak/archivelog'
open_cursors=300
pga_aggregate_target=5120m
processes=400
remote_login_passwordfile='exclusive'
sga_target=10240m
undo_tablespace='UNDOTBS1'
db_file_name_convert='+DATADG/SPDB/DATAFILE','/oracle/app/oracle/oradata/spdb/','+DATADG/SPDB/8E80F930196B6100E053E200A8C0AF9F/DATAFILE','/oracle/app/oracle/oradata/spdb/pdbseed/','+DATADG/SPDB/8E81C7A967C43CB7E053E300A8C06223/DATAFILE','/oracle/app/oracle/oradata/spdb/spdb1pdb/','+DATADG/SPDB/93BFEF75138BC79EE053E300A8C08BA1/DATAFILE','/oracle/app/oracle/oradata/spdb/kdlxpdb

#创建目录

mkdir -p /oracle/app/oracle/admin/spdb/adump

mkdir -p /orabak/archivelog

########################################################

#创建spfile

SQL> create spfile from pfile='/oracle/app/oracle/product/12.2.0/db_1/dbs/initspdb.ora'

#进到nomount状态

SQL> startup nomount

--#恢复spfile文件

--RMAN> restore spfile from '/orabak/spfile_ORCL_1026474723_1096_1';

SQL> shutdown abort

cd /oracle/app/oracle/product/12.2.0/db_1/dbs/

rm initspdb.ora

$strings spfilespdb.ora

SQL> startup nomount

########################################################

#恢复control文件

RMAN> restore controlfile from '/orabak/control_ORCL_1026474721_1095_1';

#进到mount状态

SQL> alter database mount;

#删除backup

RMAN> list backup;

RMAN> crosscheck backup;

RMAN> delete backup;

RMAN> list backup;

########################################################

#恢复dbfile全备文件

RMAN> catalog start with '/orabak/backup/';

RMAN> list backup;

rman target /
run{
allocate channel ch1 type disk;
allocate channel ch2 type disk;
set newname for datafile 1 to '/oracle/app/oracle/oradata/spdb/system.dbf';
set newname for datafile 3 to '/oracle/app/oracle/oradata/spdb/sysaux.dbf';
set newname for datafile 5 to '/oracle/app/oracle/oradata/spdb/undotbs1.dbf';
set newname for datafile 7 to '/oracle/app/oracle/oradata/spdb/undotbs2.dbf';
set newname for datafile 8 to '/oracle/app/oracle/oradata/spdb/users.dbf';
set newname for datafile 2 to '/oracle/app/oracle/oradata/spdb/pdbseed/system.dbf';
set newname for datafile 4 to '/oracle/app/oracle/oradata/spdb/pdbseed/sysaux.dbf';
set newname for datafile 6 to '/oracle/app/oracle/oradata/spdb/pdbseed/undotbs1.dbf';
set newname for datafile 9 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/system.dbf';
set newname for datafile 10 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/sysaux.dbf';
set newname for datafile 11 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/undotbs1.dbf';
set newname for datafile 12 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/undo_2.dbf';
set newname for datafile 13 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/users.dbf';
set newname for datafile 14 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/spdata1.dbf';
set newname for datafile 15 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/spdata2.dbf';
set newname for datafile 16 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/managedata1.dbf';
set newname for datafile 18 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/managedata2.dbf';
set newname for datafile 17 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/clouddata1.dbf';
set newname for datafile 19 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/clouddata2.dbf';
set newname for datafile 20 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/cloudtestdata1.dbf';
set newname for datafile 21 to '/oracle/app/oracle/oradata/spdb/spdb1pdb/cloudtestdata2.dbf';
set newname for datafile 28 to '/oracle/app/oracle/oradata/spdb/kdlxpdb/system.dbf';
set newname for datafile 29 to '/oracle/app/oracle/oradata/spdb/kdlxpdb/sysaux.dbf';
set newname for datafile 30 to '/oracle/app/oracle/oradata/spdb/kdlxpdb/undotbs1.dbf';
restore database;
switch datafile all;
switch tempfile all;
release channel ch1;
release channel ch2;
}

RMAN> recover database;

#recover报错,需要指定SCN

RMAN> recover database until scn 233086903;      #全量备份的SCN

#将归档日志及增量备份数据文件拷贝至/orabak/backup/目录并追加

RMAN> catalog start with '/orabak/backup/';

RMAN> list backup;

#找到对应增量备份节点的SCN进行恢复,建议根据备份策略依次恢复(优先读取增量文件其次归档日志)。

RMAN> recover database until scn 234809384;      #归档日志恢复第一天增量

RMAN> recover database until scn 237672420;    #增量文件及归档日志恢复第二天增量

#第二天增量恢复完成,接着恢复第三天增量报错。备份期间生成过数据文件,可通过恢复单独数据文件恢复,因隔天忘记恢复第三天增量数据。

RMAN> recover database until scn 241710899;      #第三天增量恢复

RMAN> restore datafile 31;

########################################################

#数据库open

SQL> alter database open;

SQL> alter database open resetlogs;

#ASM磁盘和集群报错,需要调整控制文件

SQL> alter database backup controlfile to trace as '/home/oracle/ctl.control';

SQL> shutdown abort;

vi /home/oracle/ctl.control

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "SPDB" RESETLOGS ARCHIVELOG
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 32
MAXLOGHISTORY 584
LOGFILE
GROUP 1 '/oracle/app/oracle/oradata/spdb/redo1.log' SIZE 200M BLOCKSIZE 512,
GROUP 2 '/oracle/app/oracle/oradata/spdb/redo2.log' SIZE 200M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/oracle/app/oracle/oradata/spdb/system.dbf',
'/oracle/app/oracle/oradata/spdb/pdbseed/system.dbf',
'/oracle/app/oracle/oradata/spdb/sysaux.dbf',
'/oracle/app/oracle/oradata/spdb/pdbseed/sysaux.dbf',
'/oracle/app/oracle/oradata/spdb/undotbs1.dbf',
'/oracle/app/oracle/oradata/spdb/pdbseed/undotbs1.dbf',
'/oracle/app/oracle/oradata/spdb/undotbs2.dbf',
'/oracle/app/oracle/oradata/spdb/users.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/system.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/sysaux.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/undotbs1.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/undo_2.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/users.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/spdata1.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/spdata2.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/managedata1.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/clouddata1.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/managedata2.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/clouddata2.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/cloudtestdata1.dbf',
'/oracle/app/oracle/oradata/spdb/spdb1pdb/cloudtestdata2.dbf',
'/oracle/app/oracle/oradata/spdb/kdlxpdb/system.dbf',
'/oracle/app/oracle/oradata/spdb/kdlxpdb/sysaux.dbf',
'/oracle/app/oracle/oradata/spdb/kdlxpdb/undotbs1.dbf'
CHARACTER SET AL32UTF8
;
--RECOVER DATABASE --All logs need archiving and a log switch is needed.
--ALTER SYSTEM ARCHIVE LOG ALL; -- Database can now be opened normally.
--ALTER DATABASE OPEN; -- Open all the PDBs.
--ALTER PLUGGABLE DATABASE ALL OPEN;

#编辑控制文件,重新生成控制文件

SQL> @/home/oracle/ctl.control

SQL> alter database open RESETLOGS;

#生成thread 2 redo日志文件

SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 3 '/oracle/app/oracle/oradata/spdb/redo03.log' SIZE 50M,GROUP 4 '/oracle/app/oracle/oradata/spdb/redo04.log' SIZE 50M;

SQL> alter database open RESETLOGS;

SQL> alter database open;

SQL> alter pluggable database all open;

至此RAC的RMAN异机恢复就完成了。恢复过程中遇到问题就针对解决吧,Good Luck!!!

########################################################

注常用命令:

RMAN> list backup;

RMAN> crosscheck backupset;

RMAN> delete backupset;

RMAN> delete backup;

RMAN> restore database;

RMAN> restore datafile 31;

RMAN> recover database until SCN XXX;

RMAN> list archivelog all;

RMAN> list copy;

RMAN> catalog start with '/orabak/backup';

Oracle12c RAC RMAN异机恢复的更多相关文章

  1. Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复

    Oracle 官网有关单实例迁移到RAC的一个步骤说明: How to Convert 10g Single-Instance database to 10g RAC using Manual Con ...

  2. Linux平台下RMAN异机恢复总结

    下面总结.整理一下RMAN异机恢复这方面的知识点,这篇笔记在个人笔记里面躺了几年了,直到最近偶然被翻看到,遂整理.总结一下.如下所示,个人将整个RMAN异机恢复分为准备工作和操作步骤两大部分.当然,准 ...

  3. RMAN异机恢复实验---转载

    一.RMAN异机恢复实验 2011年3月23日00:44 1.环境介绍: 主机1: 操作系统 REDHAT5.5 IP地址 172.16.1.120 主机名 sigle 数据库版本 10.2.0.4 ...

  4. NBU Rman异机恢复Oracle

    前段时间一个亿级分区表,被分割成历史表和业务表,历史表中保留15天以外的数据,每天都会从业务表中的15天外的数据copy到历史表,并删除业务表15天外的数据,逻辑也很简单,但插入历史表的where 条 ...

  5. RMAN异机恢复遭遇ORA-01547、ORA-01152、ORA-01110错误案例

    测试环境:     操作系统  :  Red Hat Enterprise Linux ES release 4 (Nahant Update 4)   VMWARE     数据库     :  O ...

  6. oracle rman异机恢复

      Oracle源主机 Oracle目标主机 主机平台 CentOS6.2(final) CentOs6.2(FInal) 主机名 vick rman IP地址 192.168.1.11 192.16 ...

  7. rman异机恢复,全部恢复和增量恢复

    1.首先准备工作:hostname 192.168.222.11 ol7.localdomain ol7建立相关目录:mkdir -p /u01/app/oracle/oradata/DB11G/mk ...

  8. RMAN异机恢复步骤及故障处理

    一.測试机安装OS+Oracle Software.包含配置oracle用户.组和环境变量(略) 二.開始异机恢复 1. 复制源库最新备份集.初始化參数.password文件到測试机 [oracle@ ...

  9. Oracle RMAN 异机恢复一例

    背景介绍:本例需求是将NBU备份的oracle数据库恢复到另一主机上. NBU环境配置.异机上的Oracle软件安装配置忽略,下面只介绍OracleDB恢复的过程. ----------------- ...

随机推荐

  1. nginx访问控制用户认证两种方式

    一.用户认证1.首先需要用http来生成密码文件即安装apache :yum install -y httpd 生成密码文件:htpasswd -c /usr/local/nginx/conf/htp ...

  2. 函数传参和firture传参数request

    前言 为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数.比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登陆函数就行.但 ...

  3. 系统分析与设计HW2

    简答题 1. 简述瀑布模型.增量模型.螺旋模型(含原型方法)的优缺点. 瀑布模型 优点: 定义了软件开发基本流程与活动. 为项目提供了按阶段划分的检查点. 当前一阶段完成后,只需关注后续阶段. 缺点: ...

  4. SQLSERVER 和 ORACLE 查询数据库文件大小

    SQLSERVER: SQLSERVER一个库的文件分为数据文件(行数据)和日志文件两个文件,详情可以在数据库的属性->文件中查看. 在资源管理器中打开文件所在路径可以直接看到这两个文件 但是, ...

  5. ubuntu 16.04 配置ssl

    Let's Encrypt 的服务相信很多人都知道了,我个人认为这是最好的免费 SSL 服务.下面内容即使如何在自己的网站上使用 Let's Encrypt 实现 SSL. 前提条件 自己拥有一个域名 ...

  6. ugui拖拽

    整理了下以前写的 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityE ...

  7. input输入框的的input事件和change事件以及change和blur事件的区别

    input输入框的 oninput事件 ,在用户输入的时候触发,只要元素值发生变化就会触发 input输入框的 onchange事件 ,要在输入框失去焦点的时候触发事件,当鼠标在其他地方点击一下才会触 ...

  8. [Web 前端] 031 bootstrap 的使用和全局 css 样式

    目录 0. 前言 1. 基本模板 2. 布局容器 2.1 container 2.2 container-fluid 3. 栅格系统 3.1 简介 3.2 栅格参数 3.3 实例:从堆叠到水平排列 2 ...

  9. (4.24)【mysql、sql server】分布式全局唯一ID生成方案

    参考:分布式全局唯一ID生成方案:https://blog.csdn.net/linzhiqiang0316/article/details/80425437 分表生成唯一ID方案 sql serve ...

  10. SET ANSI_NULL ON 和 SET QUOTED_IDENTIFIFR ON

    本文转自:https://blog.csdn.net/qq112212qq/article/details/84578263 SET ANSI_NULL ON : 判断非空:where colunm ...