当前已经有一套ADG库,分别是prod1和prod1s
计划从pord的ADG备库(prod1s)拷贝一个0级rman全备到新的服务器,恢复后,搭建成新增的ADG,SID叫prod2s,后面激活当做测试库

新服务器上设置
export ORACLE_SID=pord2s

从源库porddb1s生成一个pfile,,拷贝pfile到目标库
修改相关路径参数后,然后转换成spfile

*.audit_file_dest='/pordtestdata/dump/adump'
*.audit_trail='NONE'
*.cluster_database=false
*.compatible='11.2.0.3.0'
*.control_files='/pordtestdata/oradata/control01.ctl','/pordtestdata/oradata/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_create_online_log_dest_1='/pordtestdata/oradata'
*.db_domain=''
*.db_file_name_convert='/porddata/oradata/','/pordtestdata/oradata/'
*.db_files=2048
*.db_name='pord'
*.db_recovery_file_dest='/pordtestdata/fast_recovery_area'
*.db_recovery_file_dest_size=1048576000000
*.db_unique_name='pord2s'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=pordXDB)'
*.event='10949 trace name context forever, level 1'
*.fal_client='pord'
*.fal_server='porddb1s'
*.log_archive_config='DG_CONFIG=(pord,porddb1,porddb1s)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=pord'
#*.log_archive_dest_2='SERVICE=porddb1s LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=porddb1s'
*.log_archive_dest_state_1='ENABLE'
#*.log_archive_dest_state_2='ENABLE'
*.log_file_name_convert='/porddata/oradata/','/pordtestdata/oradata/'
*.open_cursors=900
*.optimizer_mode='ALL_ROWS'
*.pga_aggregate_target=10G
*.processes=1000
*.remote_login_passwordfile='exclusive'
*.resource_manager_plan=''
*.service_names='pord'
*.session_cached_cursors=2000
*.sessions=1200
*.sga_target=50G
*.standby_file_management='AUTO'
*.star_transformation_enabled='TRUE'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
#*.use_large_pages='ONLY'
*.utl_file_dir='/home/oracle'

SQL> create spfile from pfile='/pordtestdata/software/pfilepord.ora' ;

恢复控制文件
RMAN> shutdown immediate;

RMAN> startup nomount;

RMAN> restore standby controlfile from '/pordtestdata/arch/o1_mf_s_883643262_bs15sq11_.bkp';

RMAN> shutdown immediate;

RMAN> startup mount;

CATALOG命令重新注册备份集;
RMAN> catalog start with '/pordtestdata/arch';

4.开始恢复,在rman备份的源库(cascaded standby),在本例中为prod1s库
RMAN> report schema ;
更加相关信息整理成下面格式

弄成shell脚本后台执行
$ cat rman1.sh
#!/bin/bash
source .bash_profile
/u01/app/oracle/product/11.2.0/db_1/bin/rman target / <<EOF
run {
set newname for datafile 1 to '/pordtestdata/oradata/system.259.819420143';
set newname for datafile 2 to '/pordtestdata/oradata/sysaux.260.819420151';
set newname for datafile 3 to '/pordtestdata/oradata/undotbs1.261.819420153';
set newname for datafile 4 to '/pordtestdata/oradata/undotbs2.263.819420163';
set newname for datafile 5 to '/pordtestdata/oradata/users.264.819420163';
set newname for datafile 6 to '/pordtestdata/oradata/pord.295.819889851';
...省略N行
set newname for datafile 133 to '/pordtestdata/oradata/pord_idx08.dbf';
set newname for datafile 134 to '/pordtestdata/oradata/pord_idx09.dbf';
set newname for datafile 135 to '/pordtestdata/oradata/pord_idx10.dbf';
set newname for datafile 136 to '/pordtestdata/oradata/pord_idx11.dbf';
set newname for datafile 137 to '/pordtestdata/oradata/pord_idx12.dbf';
set newname for datafile 138 to '/pordtestdata/oradata/pord_idx13.dbf';
set newname for datafile 139 to '/pordtestdata/oradata/tbs_sysaux03.dbf';
restore database;
switch datafile all;
}
EOF
exit ;

通过查看视图 V$SESSION_LONGOPS 这个视图是查看长时间操作的会话,可以粗略的分析完成进度,
不但可以用于rman 也可以用于impdp/expdp
set linesize 200 ;
select sid,opname,serial#,context,sofar,totalwork,round(sofar/totalwork*100,2) "%_complete"
from v$session_longops
where opname like 'RMAN%'
and opname not like '%aggregate%'
and totalwork != 0
and sofar <> totalwork
order by "%_complete" desc ;

修改pord1s库上的tns,指向新的目标库
增加
pord2s =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = prod2s.test.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pord2s)
)
)

处理tempfile
alter database tempfile '/porddata/oradata/temp.262.819420155' drop;

SQL> alter tablespace temp add tempfile '/pordtestdata/oradata/temp1.dbf' size 10G;

--alter system set log_archive_config='DG_CONFIG=(pord1,pord1s,pord2s)';

备份原参数:

修改成下面的:
alter system set log_archive_dest_2='SERVICE=prod2s LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pord2s';

增加一些新的standby log
ALTER DATABASE ADD STANDBY LOGFILE GROUP 21 '/tmpdata/pordredo/redo_21.log' size 1G;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 22 '/tmpdata/pordredo/redo_22.log' size 1G;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 23 '/tmpdata/pordredo/redo_23.log' size 1G;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 24 '/tmpdata/pordredo/redo_24.log' size 1G;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 25 '/tmpdata/pordredo/redo_25.log' size 1G;

清理旧的
alter database clear logfile group 6;
alter database clear logfile group 7;
alter database clear logfile group 8;
alter database clear logfile group 9;
alter database clear logfile group 10;

alter database clear logfile group 16;
alter database clear logfile group 17;
alter database clear logfile group 18;
alter database clear logfile group 19;
alter database clear logfile group 20;

alter database recover managed standby database cancel ;
alter database recover managed standby database disconnect from session;

解决gap,从主库或者cascade standby库去找,如果从主库找到了,需要在备库注册,因为日志是从备库(cascade standby)发送到目标库的

RMAN> list archivelog from sequence 74227 until sequence 74231;

scp o1_mf_1_74227_bs0rc32g_.arc 10.45.26.102:/porddata/fast_recovery_area/pordDB1S/archivelog/2015_06_29/
scp o1_mf_1_74228_bs0zvxss_.arc 10.45.26.102:/porddata/fast_recovery_area/pordDB1S/archivelog/2015_06_29/
scp o1_mf_1_74229_bs11pq4p_.arc 10.45.26.102:/porddata/fast_recovery_area/pordDB1S/archivelog/2015_06_29/
scp o1_mf_1_74230_bs1305mk_.arc 10.45.26.102:/porddata/fast_recovery_area/pordDB1S/archivelog/2015_06_29/
scp o1_mf_1_74231_bs147yyl_.arc 10.45.26.102:/porddata/fast_recovery_area/pordDB1S/archivelog/2015_06_29/

RMAN> catalog start with '/porddata/fast_recovery_area/pordDB1S/archivelog/2015_06_30/';

日志追的差不多的时候,可以做failover切换

主库或者cascade standby库
alter system set log_archive_dest_state_2=defer;

要激活的standby
alter system set aq_tm_processes=0 scope=memory;
alter database recover managed standby database cancel;
alter database activate physical standby database;
shutdown immediate
startup
select OPEN_MODE,SWITCHOVER_STATUS,DATABASE_ROLE,PROTECTION_MODE
FROM v$database;

激活后,恢复生产库pordadg的log_archive设置
alter system set log_archive_dest_2='SERVICE=pord1 LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pord1';
alter system set log_archive_dest_state_2=enable;

rman恢复增加ADG(级联ADG)的更多相关文章

  1. RMAN恢复 增加表空间后控制文件丢失

    查看目前的控制文件位置 SQL> select name from v$controlfile; NAME-------------------------------------------- ...

  2. Oracle DB 使用RMAN恢复目录

    • 对恢复目录和RMAN 资料档案库控制文件的使用进行比较• 创建和配置恢复目录• 在恢复目录中注册数据库• 同步恢复目录• 使用RMAN 存储脚本• 备份恢复目录• 创建虚拟专用目录 RMAN 资料 ...

  3. 在rman恢复中incarnation的概念

    摘要 本文主要介绍incarnation的由来,在rman恢复中的作用,以及相关rman恢复的注意事项. 概念说明 从10g开始,incarnation被引入,用于跨越resetlogs进行恢复,由此 ...

  4. RAC+asm通过rman恢复到单实例+asm

    1.恢复参数文件,并修改参数文件 参数文件指名几个最简单的就行,我的参数文件如下: 2.恢复控制文件,并启动数据库到mount 如果是把备份集从别的服务器拷贝到本地恢复的服务器的目录,使用下面的语句指 ...

  5. oracle rman恢复数据库 方式恢复到异地数据库

    目的:从某个环境中,获取相关文件,放到异地机器使用rman 恢复.   情况说明:XX系统使用的是oracle数据库,现已从服务器拉下来相关文件,依靠这些文件来早本地的测试机上恢复数据库,方便进行数据 ...

  6. Oracle RMAN 恢复控制文件到指定的路径

    Oracle 数据库通过RMAN恢复控制文件到指定的路径 --------------------------------------------------------- 先查询备份集信息,再指定备 ...

  7. RMAN恢复目录

    是否使用RMAN恢复目录(Recovery Catalog 你可能从其他人或书上听过RMAN恢复目录(也有可能是其他名字,RMAN Recovery Catalog的翻译较多较杂,以下简称恢复目录), ...

  8. rman恢复误删除的一张表(不完全恢复)

    恢复误删除的一张表可以使用很多方法,如日志挖掘.闪回等,rman恢复(不完全恢复)肯定不是最好的,也不建议用, 现在我们只是演示一下这种恢复. 1 RMAN备份数据库 2创建测试表 3查看此时的SCN ...

  9. RAC 之 RMAN 恢复

    RAC 下的RMAN 讲究的是备份和还原的策略要一致.备份策略的不同,会导致备份结果的分步不同,进而影响恢复的策略和步骤.一般情况下,恢复策略和备份策略必须是对应的.如果备份策略进行了修改,那么恢复也 ...

随机推荐

  1. qt ui程序使用Linux的文件操作open、close (转)

    原文地址:qt ui程序使用Linux的文件操作open.close 作者:kjpioo 提出这个问题是因为在qt的QWidget类型的对象中,close()函数会和QWidget::close()冲 ...

  2. BZOJ1590:[Usaco2008 Dec]Secret Message秘密信息

    浅谈\(Trie\):https://www.cnblogs.com/AKMer/p/10444829.html 题目传送门:https://lydsy.com/JudgeOnline/problem ...

  3. 1、spark集群搭建

    前提:已经搭建完全分布式的Hadoop集群,请参看http://www.cnblogs.com/netbloomy/p/6660131.html 1.Scala2.12.1环境搭建 1).下载scal ...

  4. Zookeeper--集群管理

    Zookeeper--集群管理 在多台服务器组成的集群中,需要监控每台服务器的状态,一旦某台服务器挂掉了或有新的机器加入集群,集群都要感知到,从而采取相应的措施.一个主动的集群可以自动感知节点的死亡和 ...

  5. java代码---------比较随机数的大小---我搞不懂啊

    总结:不习惯你在或不在的时候,赶紧走吧 package com.mmm; import java.util.Random; public class wW { public static double ...

  6. java代码-----实现4个人打牌游戏的相关代码。线程

    总结:发送线程Sender().和接收线程Receiver() 虽然,这里的Sender()发送线程和Receiver()都有相同的睡眠时间,但是由于线程调度的不确定性,是的发送线程Sender每次发 ...

  7. CentOS下如何从vi编辑器插入模式退出到命令模式

    刚打了下关于vi编辑器的命令,发现一直退出不了.后来自己敲着敲着它就退出了,写博客记录下. 比如现在w文件夹下面有一个ww文件 我进入这个文本,输入命令 vi ww,未回车,情况如下 按了回车,就进入 ...

  8. Android APP压力测试实战

    环境准备: Android SDK Python   压测实战步骤 1.在手机开发者工具中,将USB调试选上 2.确认手机,电脑成功连接(通过adb devices) 3.安装测试app(adb in ...

  9. C++何时使用引用

  10. Crawlspider的自动爬取

    引子 : 如果想要爬取 糗事百科 的全栈数据的方法 ? 方法一 : 基于scrapy框架中的scrapy的递归爬取进行实现(requests模块递归回调parse方法) . 方法二 : 基于Crawl ...