dataguard主库删除归档日志后从库恢复的方法
------------------方法1在主库上使用备份的进行恢复丢失的归档日志-------------------------
1.发现主库备份后删除了归档,但是这些归档从库还没应用,也没有传到从库
从库应用的最新的归档日志为592
SQL> connect / as sysdba
Connected.
SQL> Select Max(t.SEQUENCE#) From V$archived_Log t;
MAX(T.SEQUENCE#)
----------------
592
主库的归档日志
SQL> connect / as sysdba
Connected.
SQL> Column Name format a100;
SQL> Column THREAD# format 99;
SQL> Column SEQUENCE# format 999999;
SQL> Column STANDBY_DEST format a10;
SQL> Column ARCHIVED format a10;
SQL> Column APPLIED format a10;
SQL> Column STATUS format a10;
SQL> Column fal format a10;
SQL> Column COMPLETION_TIME format a20;
SQL> Select t.SEQUENCE#,t.STANDBY_DEST,t.APPLIED,t.STATUS From V$archived_Log t Where t.SEQUENCE#>=592 And t.STANDBY_DEST <>'YES';
SEQUENCE# STANDBY_DE APPLIED STATUS
--------- ---------- ---------- ----------
592 NO NO D
593 NO NO D
594 NO NO D
595 NO NO D
596 NO NO D
597 NO NO D
598 NO NO D
599 NO NO D
600 NO NO D
601 NO NO D
602 NO NO D
11 rows selected.
发现主库的日志从592开始就删除掉了,因为主库是备份后才删除的,那么我们可以恢复这些删除的日志,然后让从库应用
2.将那些日志恢复到自定义的目录
2.1先创建目录
cd /u01/app/oracle/archive_log
mkdir gap_log
2.2 恢复归档
run{
allocate channel ci type disk;
set archivelog destination to '/u01/app/oracle/archive_log/gap_log';
restore archivelog sequence 592;
restore archivelog sequence 593;
restore archivelog sequence 594;
restore archivelog sequence 595;
restore archivelog sequence 596;
restore archivelog sequence 597;
restore archivelog sequence 598;
restore archivelog sequence 599;
restore archivelog sequence 600;
restore archivelog sequence 601;
restore archivelog sequence 602;
release channel ci;
}
好像执行如上命令后,主库会自动将该文件应用到从库了,V$archived_Log里也有相应的记录,deleted状态为NO,还是挺智能的.
--------------------方法二:采用注册的方式恢复-----------------------------------------------
1.主库模拟归档日志丢失
模拟将没有传到从库的归档日志拷贝到另外一个目录
[oracle@localhost archive_log]$ mv arch_994182077* ./gap_log/
2.物理删除后需要进行crosscheck,要不字典信息里还会有相应归档日志的记录
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
查询归档字典表Select Name From v$archived_log t Order By t.SEQUENCE# Desc 相应的值为空
3.主库从新注册归档日志
3.1 单个或少量日志注册
SQL> alter database register physical logfile '/u01/app/oracle/archive_log/gap_log/arch_994182077_1_615.arc';
SQL> alter database register physical logfile '/u01/app/oracle/archive_log/gap_log/arch_994182077_1_616.arc';
SQL> alter database register physical logfile '/u01/app/oracle/archive_log/gap_log/arch_994182077_1_617.arc';
SQL> alter database register physical logfile '/u01/app/oracle/archive_log/gap_log/arch_994182077_1_618.arc';
SQL> alter database register physical logfile '/u01/app/oracle/archive_log/gap_log/arch_994182077_1_619.arc';
SQL> alter database register physical logfile '/u01/app/oracle/archive_log/gap_log/arch_994182077_1_620.arc';
SQL> alter database register physical logfile '/u01/app/oracle/archive_log/gap_log/arch_994182077_1_621.arc';
这里需要加上physical关键字,否则报如下错误
ORA-16225: Missing LogMiner session name for Streams
3.2.大量日志注册
rman> catalog start with '/u01/app/oracle/archive_log/gap_log';
4.步骤3完成后数据库会自动应用恢复回来的文件
----------------方法三:将丢失的日志文件恢复到备库直接应用-------------------------------
1.主库模拟归档日志丢失
模拟将没有传到从库的归档日志拷贝到另外一个目录
[oracle@localhost archive_log]$ mv arch_994182077* ./gap_log/
2.物理删除后需要进行crosscheck,要不字典信息里还会有相应归档日志的记录
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
查询归档字典表Select Name From v$archived_log t Order By t.SEQUENCE# Desc 相应的值为空
3.将相应的归档日志拷贝到从库
scp arch_994182077_1_625.arc oracle@192.168.1.85:/u01/app/oracle/archlog/gap_log/
scp arch_994182077_1_626.arc oracle@192.168.1.85:/u01/app/oracle/archlog/gap_log/
scp arch_994182077_1_627.arc oracle@192.168.1.85:/u01/app/oracle/archlog/gap_log/
scp arch_994182077_1_628.arc oracle@192.168.1.85:/u01/app/oracle/archlog/gap_log/
scp arch_994182077_1_629.arc oracle@192.168.1.85:/u01/app/oracle/archlog/gap_log/
scp arch_994182077_1_630.arc oracle@192.168.1.85:/u01/app/oracle/archlog/gap_log/
scp arch_994182077_1_631.arc oracle@192.168.1.85:/u01/app/oracle/archlog/gap_log/
4.在从库上注册
alter database register logfile '/u01/app/oracle/archlog/gap_log/arch_994182077_1_625.arc';
alter database register logfile '/u01/app/oracle/archlog/gap_log/arch_994182077_1_626.arc';
alter database register logfile '/u01/app/oracle/archlog/gap_log/arch_994182077_1_627.arc';
alter database register logfile '/u01/app/oracle/archlog/gap_log/arch_994182077_1_628.arc';
alter database register logfile '/u01/app/oracle/archlog/gap_log/arch_994182077_1_629.arc';
alter database register logfile '/u01/app/oracle/archlog/gap_log/arch_994182077_1_630.arc';
alter database register logfile '/u01/app/oracle/archlog/gap_log/arch_994182077_1_631.arc';
5.数据库会自动应用如上的归档日志
这种方法的话在主库查询v$archived_log视图是看不到从库相应日志的应用情况
dataguard主库删除归档日志后从库恢复的方法的更多相关文章
- Oracle DataGuard主库丢失归档日志后备库的RMAN增量恢复一例
第一部分 问题描述和环境状态确认 ----1. 问题场景 Oracle DataGuard主库丢失archivelog,如何不重建备库完成同步? 在Oracle DataGuard主从同步过程中可能 ...
- 当ORACLE归档日志满后如何正确删除归档日志
当ORACLE 归档日志满了后,将无法正常登入ORACLE,需要删除一部分归档日志才能正常登入ORACLE. 一.首先删除归档日志物理文件,归档日志一般都是位于archive目录下,AIX系统下文件格 ...
- db_recovery_file_dest_size 修改大一点及删除归档日志 |转|
今天给客户测 试问题,让客户把数据发过来了.解压缩后一看,他们还是用的oracle 815版本的(他们exp导出时,带了导出日志,从导出日志中看出来是oracle 815版本的),不过没有关系,低版本 ...
- delete archivelog all 无法彻底删除归档日志?
最近在因归档日志暴增,使用delete archivelog all貌似无法清除所有的归档日志,到底是什么原因呢? 1.演示环境 SQL> select * from v$version whe ...
- ORACLE归档日志满了之后,如何删除归档日志
当ORACLE归档日志满后如何正确删除归档日志 版权声明:本文为博主原创文章,未经博主允许不得转载. 当ORACLE 归档日志满了后,将无法正常登入ORACLE,需要删除一部分归档日志才能正常登入OR ...
- (转) ORACLE 正确删除归档日志的方法
ORACLE 正确删除归档日志的方法 我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中 ...
- Oracle 正确删除归档日志的方法
我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中仍然记录着这些archivelog文件 ...
- Oracle 11g 删除归档日志
工作环境ORACLE 11g 归档日志满了,手动删除出现 ora 异常. 注:工作环境是linux redhat 5 执行命令如下: 1. 进入rman 2. connect target / 3. ...
- oracle删除归档日志
查看归档模式: SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive ...
随机推荐
- 学习ActiveMQ(四):spring与ActiveMQ整合
在上一篇中已经怎么使用activemq的api来实现消息的发送接收了,但是在实际的开发过程中,我们很少使用activemq直接上去使用,因为我们每次都要创建连接工厂,创建连接,创建session... ...
- wx.createSelectorQuery() 获取节点信息 获取不到解决方法
场景:一个气泡的宽度由加载来的数据填充所决定,不定宽, wx.createSelectorQuery().selectAll('.talkbubble').boundingClientRect ...
- 用web技术写APP
_ 听说会写web的人也能写APP, 抱着尝试的心态踏上路体验一番 http://www.ionic.wang/start-index.html 0x00 框架环境介绍 ionic是什么? https ...
- php协议流
文件包含漏洞结合php协议流的特性,使得漏洞利用效率更高,下面的内容主要讲解协议流的使用. 0x00 测试环境: php版本: 5.2,5.3,5.5,7.0等web服务: apache2OS系统: ...
- python pip出错问题解决记录
今天安装一下requests模块,遇到网络问题 pip install requests Retrying (Retry(total=4, connect=None, read=None, redir ...
- springboot热部署配置
1.pom添加spring-boot-devtools依赖和配置编译插件 <dependency> <groupId>org.springframework.boot</ ...
- DOM---节点关系
DOM可以说是把文档当成一种树状结构,这种结构被称为节点树,JavaScript脚本可以通过节点树访问所有节点,可是执行修改或者是删除它们的内容,同时也可以创建新的节点. 节点之间的关系是有上下级别的 ...
- 汇编-13.0-int指令
1.int指令 int指令的格式为:int n,n为中断类型码,它的功能是引发中断过程. 执行int n指令,相当于引发一个中断号为n的中断过程. (1).取中断类型码n: (2).标志寄存器入栈,I ...
- FEX(Fabric Extender)
一.FEX Cisco Nexus 2000 FEX作为N5K.N6K.N7K.FI的一个远程线卡,单独的2K是没有网管功能的,必须配合父系交换机使用. 主要解决TOR和EOR的问题,TOR,接线简单 ...
- Python 多线程和线程池
一,前言 进程:是程序,资源集合,进程控制块组成,是最小的资源单位 特点:就对Python而言,可以实现真正的并行效果 缺点:进程切换很容易消耗cpu资源,进程之间的通信相对线程来说比较麻烦 线程:是 ...