增量备份解决dg库日志gap

有时候备库滞后于主库很长时间了,而主库的归档日志已经不存在了,此时的日志间隔如何消除那,很多人选择重建备库,这个是很麻烦的,尤其当主库数据量很大的时候,此时我们还有另外一种选择,那就是使用增量数据库备份来前滚备库,消除日志间隔,具体作法如下:

1.备库查看丢失的归档时的scn号

idle> select current_scn from v$database;

CURRENT_SCN

-----------

96458277

2.主库创建基于丢失归档scn号为起始的增量备份(要确定主库和备库的目标目录有足够的空间,这里使用/tmp文件夹)

RMAN>
run{
BACKUP DEVICE TYPE DISK INCREMENTAL FROM SCN 96458277 DATABASE FORMAT ‘/tmp/stb_bk/%U_for_stb.bk‘ include current controlfile for standby;
}

3.备份好之后,从主库传到备份库的目录中,可以与上文的目录不同。

RMAN> CATALOG START WITH ‘/tmp/stb_bk/‘;

4.查看一下controlfile的位置,因为接下来要使用备份的控制文件。

idle> show parameter control

再查看一下standby_log文件的位置,因为接下来可能需要重建。

idle> select *from v$logfile ;

5.使用如下命令在rman中恢复

RMAN>
run{
restore standby controlfile to ‘/tmp/stb_controlfile01.ctl‘;
recover database noredo;
}

如果报如下错误,可能是recover managed standby命令正在执行:

ORA-19870: errorwhile restoring backup piece /tmp/stb_bk/05n5a31s_1_1_for_stb.bk

ORA-19573: cannotobtain exclusive enqueue for datafile 1

执行如下命令,或者重启数据库到mount状态:

idle>alter database recover managed standby database cancel ;

然后在rman中再次执行:

RMAN>

run{

restore standby controlfile to ‘/tmp/stb_controlfile01.ctl‘ ;

recover database noredo;

}

6.关闭数据库,将恢复出来的备份控制文件覆盖掉原有的控制文件。

时间: 2024-10-09 06:55:58

增量备份解决dg库日志gap的相关文章

增量备份解决dataguard库日志gap

有时候备库滞后于主库很长时间了,而主库的归档日志已经不存在了,此时的日志间隔如何消除那,很多人选择重建备库,这个是很麻烦的,尤其当主库数据量很大的时候,此时我们还有另外一种选择,那就是使用增量数据库备份来前滚备库,消除日志间隔,具体作法如下:1.备库查看丢失的归档时的scn号 idle> select current_scn from v$database; CURRENT_SCN ----------- 96458277 2.主库创建基于丢失归档scn号为起始的增量备份(要确定主库和备库的目标

如何使用 RMAN 增量备份恢复 data guard log gap(日志断档)

主库查询最小scn 信息: SQL> col current_scn for 999999999999999 SQL>  SELECT CURRENT_SCN FROM V$DATABASE; select min(fhscn) from x$kcvfh; select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != 'READ ONLY'     ; CURRENT_SCN -

ORACLE 11G通过SCN做增量备份修复standby库详细过程

背景描述:Oracle 的standby库后台alert报错,如下: ORA-00354: corrupt redo log block header ORA-00353: log corruption near block 10240change 11125950022 time 05/08/2015 22:00:41 ORA-00334: archived log:'/data/oracle/oradgdata/standby_archive/1_32350_821708334.dbf' R

mysql增量备份依次恢复库

#!/bin/bash#scripts sh recovery_increment.sh 时间 日期 例如: 14 20180228 bakfile=/data/dbbackuplogfile=/data/bak.log dbuser=xxxdbpasswd=xxxxip=ifconfig | grep "inet addr"| grep Bcast| awk '{print $2}'| awk -F":" '{print $2}' #增量还原 recoveryin

MYSQL增量备份(日志备份)

MYSQL数据库在使用过程中,一般都需要对使用的数据库进行备份处理,对于数据量较小时可以通过mysqldump命令进行数据库全备份,但是当数据库数据量达到一定程度之后,显然增量备份更加适合. MYSQL增量备份主要通过二进制日志文件进行增量备份.mysql数据库会以二进制形式自动把用户对mysql数据库的操作记录到文件,当用户希望恢复的时候可以使用备份文件进行恢复. 本文主要介绍如何实现在本地服务器上对远程服务器的数据库文件进行在本地服务器的备份.(以下的cmd均需跳转到mysql的bin文件夹

MySQL 完全备份 + 增量备份+完全恢复

简介 1·完全备份与增量备份的概念2·使用 mysqldump 完全备份3·使用 mysqldump 进行表结构备份4·完全备份恢复的两种方法5·使用 flush logs 进行增量备份6·增量备份恢复7·基于时间点与位子的恢复8·MySQL 备份思路 完全备份与增量备份的概念 1·MySQL 完全备份:是对整个数据库的备份.数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,它也是增量备份的基础.它的优点:备份与恢复操作简单,缺点是数据存在大量的重复,占用大量的备份空间,备份时间长.2·

mysql---整体备份和增量备份

整体备份: 对整张表或者整个数据库甚至所有数据库进行备份. 增量备份: 对某一范围内的数据进行备份. 1.整体备份: 对表进行备份: 针对存储引擎为myisam的表,可以直接复制frm.myd.myi这三个文件起到备份的效果.需要还原的时候,再复制回来就可以达到还原效果. 如果存储引擎为innodb的表,就不这样简单了,因为所有表的数据和索引都存在一起(表空间).一旦复制表空间,所有表的数据和索引就跟着一起复制过来. 如何进行备份?可以利用mysqldump工具 先创建一个表,并插入一些数据 备

05: 实时增量备份 、 XtraBackup 备份 、 总结和答疑 、 MySQL 主从同步

day05 增量备份一.启用binlog日志 实现 实时增量备份二.使用第3方软件提供的命令做增量备份 +++++++++++++++++++++++++++++++++一.启用binlog日志 实现 实时增量备份1.1 binlog日志介绍:二进制日志, 是MySQL数据库服务日志文件中的一种,记录执行的除查询之外的sql命令.默认没有启用. 查询的sql命令 : show desc select 1.2 启用binlog日志?vim /etc/my.cnf[mysqld]server_id=

mysql系列之5--完全备份和增量备份

一.利用系统自带的工具实现完全备份:mysqldump 1.备份所有的数据库: mysqldump -hlocalhost -uroot -p12345678   --all-databases > /opt/$(date +%F).sql //--all-databases--所有数据库 /opt/$(date +%F).sql 重定向到以日期命名的文件 2.备份指定的数据库: mysqldump -hlocalhost -uroot -p12345678   db1 db2  > /opt