在ogg数据初始化中,对于使用rman进行数据初始化和导入导出、数据泵进行数据初始化,最终启动replicat进程时使用的是不同的两个参数。

对于rman进行初始化的,我们使用的语句是:

start replicat rep_ynkg,atcsnxxxxxx

对于导入导出及数据泵进行初始化的,我们使用的语句是:

aftercsnxxxxx

原因是使用rman进行恢复时使用recover database until scn xxxxxx;进行的恢复,这个语句的恢复结果并不包含最后指定的xxxxxx这个scn。而导入导出及数据泵进行初始化时使用的flashback_scn=xxxxxx这个参数是包含xxxxxx这个scn的。

之前只是了解这个概念,没有进行实验,最近刚好有人问这个问题,做了个小实验证明了下recover database until scn xxxxxx;不包最后指定的scn值。实验过程如下(实验步骤较长,对于非关键步骤只进行语言描述,就不贴出操作步骤了):

1.源库创建system.test测试表。

create table system.test as select * from dba_objects where 1=2;

2.源库增加goldengate extract进程,对system.test数据进行获取。

3.源库备份全库。

4.源库对测试表插入增量数据:

sql> insert into system.test select * from dba_objects where rownum<=1;

1 row created.

sql> commit;

Commit complete.

5.源库归档current logfile

6.将源库备份和归档传输到目标库所在主机。

7.在源库goldengate中使用logdump,查看捕获到增量数据的scn号。

Logdump 1 >open ./dirdat/t2000000

Current LogTrail is /home/oracle/ggs/dirdat/t2000000

Logdump 2 >ghdr on

Logdump 3 >detail data

Logdump 4 >ggstoken detail

略。。

Logdump 7 >n

___________________________________________________________________

Hdr-Ind : E (x45) Partition : . (x04)

UndoFlag : . (x00) BeforeAfter: A (x41)

RecLength : 198 (x00c6) IO Time : 2016/07/04 19:59:41.000.000

IOType : 5 (x05) OrigNode : 255 (xff)

TransInd : . (x03) FormatType : R (x52)

SyskeyLen : 0 (x00) Incomplete : . (x00)

AuditRBA : 33 AuditPos : 7736

Continued : N (x00) RecCount : 1 (x01)

2016/07/04 19:59:41.000.000 Insert Len 198 RBA 1053

Name: SYSTEM.TEST

After Image: Partition 4 G s

0000 0007 0000 0003 5359 5300 0100 0900 0000 0549 | ........SYS........I

434f 4c24 0002 0004 ffff 0000 0003 0006 0000 0002 | COL$................

3230 0004 0005 0000 0001 3200 0500 0900 0000 0554 | 20........2........T

4142 4c45 0006 0015 0000 3230 3133 2d30 382d 3234 | ABLE......2013-08-24

3a31 313a 3337 3a33 3500 0700 1500 0032 3031 332d | :11:37:35......2013-

3038 2d32 343a 3131 3a34 373a 3337 0008 0017 0000 | 08-24:11:47:37......

0013 3230 3133 2d30 382d 3234 3a31 313a 3337 3a33 | ..2013-08-24:11:37:3

Column 0 (x0000),Len 7 (x0007)

0000 0003 5359 53 | ....SYS

Column 1 (x0001),Len 9 (x0009)

0000 0005 4943 4f4c 24 | ....ICOL$

Column 2 (x0002),Len 4 (x0004)

ffff 0000 | ....

Column 3 (x0003),Len 6 (x0006)

0000 0002 3230 | ....20

Column 4 (x0004),Len 5 (x0005)

0000 0001 32 | ....2

Column 5 (x0005),190)">0000 0005 5441 424c 45 | ....TABLE

Column 6 (x0006),Len 21 (x0015)

0000 3230 3133 2d30 382d 3234 3a31 313a 3337 3a33 | ..2013-08-24:11:37:3

35 | 5

Column 7 (x0007),190)">0000 3230 3133 2d30 382d 3234 3a31 313a 3437 3a33 | ..2013-08-24:11:47:3

37 | 7

Column 8 (x0008),Len 23 (x0017)

0000 0013 3230 3133 2d30 382d 3234 3a31 313a 3337 | ....2013-08-24:11:37

3a33 35 | :35

Column 9 (x0009),190)">0000 0005 5641 4c49 44 | ....VALID

Column 10 (x000a),190)">0000 0001 4e | ....N

Column 11 (x000b),190)">Column 12 (x000c),190)">Column 13 (x000d),190)">0000 0001 31 | ....1

Column 14 (x000e),190)">GGS tokens:

TokenID x52 'R' ORAROWID Info x00 Length 20

4141 4156 7561 4141 4241 4141 584c 4241 4141 0001 | AAAVuaAABAAAXLBAAA..

TokenID x4c 'L' LOGCSN Info x00 Length 7

3133 3036 3731 39 | 1306719

TokenID x36 '6' TRANID Info x00 Length 8

392e 352e 3132 3330 | 9.5.1230

可以看到捕获到增量数据时,源端数据库提交的scn号为1306719

8.在目标机对数据库进行restore。

9.对目标库使用语句进行recover,指定scn为1306719

RMAN> recover database until scn 1306719;

10.使用resetlogs打开目标库,查看scn为1306719时提交的增量数据是否存在。

sql> alter database open resetlogs;

Database altered.

sql> select count(*) from system.test;

COUNT(*)

----------

0

可以看到增量数据并不存在!!!!

11.之后我们删除目标端数据库的数据文件,重新进行恢复。最终指定scn为1306720,比刚才的scn大1。

RMAN> restore database ;

略。。。

RMAN> recover database until scn 1306720;

Starting recover at 04-JUL-16

using channel ORA_DISK_1

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-03002: failure of recover command at 07/04/2016 20:12:06

RMAN-20208: UNTIL CHANGE is before RESETLOGS change

RMAN> list incarnation;

List of Database Incarnations

DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time

------- ------- -------- ---------------- --- ---------- ----------

1 1 SOURCEDB 310015860 PARENT 1 24-AUG-13

2 2 SOURCEDB 310015860 PARENT 925702 31-JAN-16

3 3 SOURCEDB 310015860 CURRENT 1306720 04-JUL-16

RMAN> reset database to incarnation 2;

database reset to incarnation 2

RMAN> recover database until scn 1306720;

12.使用resetlogs打开目标库,查看scn为1306720时提交的增量数据是否存在。

1

可以看到这次增量数据成功恢复进来了!!!

实验表明使用recover database until scn xxxxxx;并不包含指定的这个scn~

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

oracle recover database,【Oracle】探究recover database until scn相关推荐

  1. oracle exp 00006,Oracle 12.1新特性----使用RMAN从备份中实现recover table

    Oracle 12.1新特性----使用RMAN从备份中实现recover table 发布时间:2020-06-26 19:41:44 来源:51CTO 阅读:4750 作者:hbxztc 在Ora ...

  2. oracle copy database,oracle 11g duplicate from active database 复制数据库(二)

    下面介绍将数据库复制到远程主机相同目录结构的操作步骤 1.创建辅助实例的密码文件(这里辅助实例名为dup) ,在目的主机上为辅助实例创建密码文件可以有以下选项: .手动创建密码文件,对于duplica ...

  3. Oracle 11g 使用duplicate from active database 创建物理ADG

    1.概述: 之前使用冷备的方式搭建了一个物理ADG环境,但是由于冷备需要停库.因此在一些大型库上使用这种技术就不怎么实用了,而使用duplicatefrom active database则必免了这种 ...

  4. oracle flashback 用法,使用Oracle10g Flashback database功能恢复用户错误

    使用Oracle10g Flashback database功能恢复用户错误 $ ps -ef|grep rvwr|grep -v grep oracle 27231 1 0 17:10:30 ? 0 ...

  5. 资料整理——Oracle数据库错误消息列表(Database Error Messages)

    问题: Oracle数据库中大概有多少条error message? 解答: 根据对Oracle官网资料(https://docs.oracle.com/cd/E11882_01/server.112 ...

  6. oracle flashback database,Oracle Flashback Database

    Flashback 技术是以Undo segment中的内容为基础的,因此受限于UNDO_RETENTON参数.要使用flashback的特性,必须启用自动撤销管理表空间. 在Oracle 10g中, ...

  7. 【oracle官网】 Restoring a Database on a New Host

    Restoring a Database on a New Host 本文连接地址:http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcma ...

  8. 【oracle】oracle经典sql,exception,database link纠错

    [oracle]oracle经典sql,exception,database link纠错 1111-01 oracle经典sql,exception,database link纠错 1.给表tabl ...

  9. oracle 峰度 函数,Oracle Database 21c 十大新特性一览

    摘要:Oracle 考虑到 2020 年我们的客户将面临前所未有的经济和业务中断.我们决定不将 Database 20c Preview 版本升级为 General Availability. 相反, ...

  10. oracle创建public链接,如何在oracle直接使用地址来创建database link

    在2个oracle之间手工同步数据时,DBlink是最快捷的手段之一吧.建dblink的时候需要知道待读取数据库的ip地址,ssid以及数据库用户名和密码. 前提: 创建dblink的用户有对应的数据 ...

最新文章

  1. 为敏捷 BI 补上关键两环
  2. php el表达式,JSP EL表达式学习
  3. 消息称AirPods 3搭载U1芯片 耳机柄变小
  4. linux三个命令模式切换,ubuntu16.04命令行模式和图形界面互相切换的两种解决办法,...
  5. element 修改表单值后表单验证无效_element 表单自定义校验规则
  6. Jupyter Notebook代码提示及补齐功能
  7. “Java引领技术人生”巡讲活动圆满结束
  8. node npm 更新到最新(Ubuntu系统)
  9. labview混合编程学习
  10. 安卓玩机搞机之卡刷包 线刷包与刷机中一些故障解决与问题分析
  11. IME Starters Try-outs 2018 F - First Day + G - Greatest IME
  12. SpringBoot入门,快速搭建简单Web应用环境
  13. Mac电脑3D渲染和动画制作KeyShot Pro中文
  14. bugtraq mysql,Oracle MySQL Server远程安全漏洞(CVE-2017-3459)
  15. 【Uni-App】点击分享,生成海报带二维码,保存到本地图片,写入文字
  16. 【重磅推荐】基于truffle-contract库实现的以太坊solidity合约调用案例(注:web3.js切勿和truffle-contract库同时使用,否则报错,无法修复!)
  17. 2022抖音温暖中国年 集年味分7亿玩法攻略
  18. mysql case when用法
  19. 二战漫画爬虫(爱漫画网)
  20. 《跨语言文本相似性检测》第一周—前期调研

热门文章

  1. linux capability详解与容器中的capability
  2. 学习资料 AND ORR
  3. 9.后缀、前缀函数-suffix basename addsuffix addprefix
  4. Aurora使用技巧详解
  5. 如何在 Python 中使用 Plotly 创建太阳系的 3D 模型 (教程含源码)
  6. 智能人物画像综合分析系统——Day8
  7. 计算机毕业设计springboot+vue+elementUI高校志愿者管理系统(源码+系统+mysql数据库+Lw文档)
  8. 一起来做个CH347的项目(应用于FPGA、CPLD、MCU)
  9. win7 pptp服务器未响应,win7下vpn无法使用的解决办法
  10. 书籍推荐-docker入门书籍