[20170310]关于在线日志与归档3.txt

--//当日志写满了,或者执行手工了切换,再或者rman备份时有时也会触发日志切换:
alter system switch logfile ;
alter system archive log current ;

--//前面已经探究日志文件的OS块(第0块)以及日志文件头块(第1块).剩下日志记录了
--//本文简单探究日志归档是如何保存的.探查日志文件的记录.

1.环境:
--//启动到mount状态.

SYS@book> @ &r/ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@book> @ &r/logfile
GROUP# STATUS     TYPE       MEMBER                          IS_ GROUP# THREAD# SEQUENCE#       BYTES BLOCKSIZE MEMBERS ARC STATUS     FIRST_CHANGE# FIRST_TIME          NEXT_CHANGE# NEXT_TIME
------ ---------- ---------- ------------------------------- --- ------ ------- --------- ----------- --------- ------- --- ---------- ------------- ------------------- ------------ -------------------
     1            ONLINE     /mnt/ramdisk/book/redo01.log    NO       1       1       695    52428800       512       1 YES INACTIVE     13276910949 2017-02-28 14:40:12  13276931102 2017-03-09 10:01:48
     2            ONLINE     /mnt/ramdisk/book/redo02.log    NO       2       1       696    52428800       512       1 YES INACTIVE     13276931102 2017-03-09 10:01:48  13276931986 2017-03-09 10:02:36
     3            ONLINE     /mnt/ramdisk/book/redo03.log    NO       3       1       697    52428800       512       1 NO  CURRENT      13276931986 2017-03-09 10:02:36 2.814750E+14
     4            STANDBY    /mnt/ramdisk/book/redostb01.log NO
     5            STANDBY    /mnt/ramdisk/book/redostb02.log NO
     6            STANDBY    /mnt/ramdisk/book/redostb03.log NO
     7            STANDBY    /mnt/ramdisk/book/redostb04.log NO
7 rows selected.

--//仅仅拿seq#=696 来研究.

$ ls -l /mnt/ramdisk/book/redo02.log /u01/app/oracle/archivelog/book/1_696_896605872.dbf
-rw-r----- 1 oracle oinstall 52429312 2017-03-09 10:02:36 /mnt/ramdisk/book/redo02.log
-rw-r----- 1 oracle oinstall  1626112 2017-03-09 10:02:38 /u01/app/oracle/archivelog/book/1_696_896605872.dbf

--//前面我们探查了日志文件的OS块.下面将继续探究日志的记录从第2块开始.

2.先取第2块看看:

$ dd if=/u01/app/oracle/archivelog/book/1_696_896605872.dbf bs=512 count=1 skip=2 2>/dev/null | md5sum
d8c6fc00e84b8eff93ecad9ff87627c7  -

$ dd if=/mnt/ramdisk/book/redo02.log bs=512 count=1 skip=2 2>/dev/null | md5sum
d8c6fc00e84b8eff93ecad9ff87627c7  -

--//md5一样,哈哈下面就基本就是原始的拷贝了.也就是不做任何修改.
--//1626112/512=3176,跳过前面2块,就是3174块.

$ dd if=/u01/app/oracle/archivelog/book/1_696_896605872.dbf bs=512  skip=2 2>/dev/null | md5sum
62f6d618e02ed3e7ba50ed68138fe440  -

$ dd if=/u01/app/oracle/archivelog/book/1_696_896605872.dbf bs=512 count=3174 skip=2 2>/dev/null | md5sum
62f6d618e02ed3e7ba50ed68138fe440  -

$ dd if=/mnt/ramdisk/book/redo02.log bs=512 count=3174 skip=2 2>/dev/null|  md5sum
62f6d618e02ed3e7ba50ed68138fe440  -

--//可以看出第2块的redo记录开始就是简单的拷贝.

3.这样就可以产生一个恢复思路,假设redo损坏,我该日志已经归档日志文件,可以利用这个文件重新构造在线日志:
--//A.第0块修改就是记录块数量. 偏移0x18~0x1B处.
  实际上只要大小一样,文件头可以使用别的好的文件头文件替换.

$ dd if=/mnt/ramdisk/book/redo01.log bs=512 count=1  2>/dev/null|  md5sum
1e958fb94196354fc1d7a650b43d728b  -

$ dd if=/mnt/ramdisk/book/redo02.log bs=512 count=1  2>/dev/null|  md5sum
1e958fb94196354fc1d7a650b43d728b  -

$ dd if=/mnt/ramdisk/book/redo03.log bs=512 count=1  2>/dev/null|  md5sum
1e958fb94196354fc1d7a650b43d728b  -

$ dd if=/mnt/ramdisk/book/redostb01.log bs=512 count=1  2>/dev/null|  md5sum
1e958fb94196354fc1d7a650b43d728b  -

--//你可以发现os块,md5都是一样(因为日志文件大小一样)

B.第1块我感觉不改也可以通过.

C.日志记录就是简单拷贝,根本不需要改动.剩下就是空白块如何填充.

$ ls -l /mnt/ramdisk/book/redo02.log /u01/app/oracle/archivelog/book/1_696_896605872.dbf
-rw-r----- 1 oracle oinstall 52429312 2017-03-09 10:02:36 /mnt/ramdisk/book/redo02.log
-rw-r----- 1 oracle oinstall  1626112 2017-03-09 10:02:38 /u01/app/oracle/archivelog/book/1_696_896605872.dbf

--//52429312 - 1626112=50803200,还有50803200/512=99225块需要 补充.主要这个如何实现.
--//直接使用空白是否可行,留下下次测试....

[20170310]关于在线日志与归档3.txt相关推荐

  1. oracle ora 16014,ORACLE ORA-16014+ORA-00312 数据库在线重做日志没有归档

    [oracle@RedHat ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Fri Aug 30 11:23 ...

  2. oracle的asmcmd获取归档日志,分析oracle的联机日志和归档日志

    logminer和配置 安装logminer 以sqlplus / as sysdba登录系统数据库系统,ORACLE默认安装logminer,如果没有安装,执行SQL脚本安装 --安装logmine ...

  3. 在线日志文件丢失的恢复(笔记)

    在线日志文件丢失有二种情况,一是丢失非当前日志,这时可以通过 SQL>alter database clear logfile group 3;[已归档] 或 SQL>alter data ...

  4. oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理

    最近一段时间,有收到一台Oracle服务器的连接告警, 刚刚开始还以为是Oracle的监听被关闭导致,结果连上服务器看下Oracle的监听进程正常,自己连接一次发现有报ORA-00257错,又去监控系 ...

  5. oracle11g 联机重做日志、归档日志、日志文件组以及日志文件操作

    文章目录 一.归档方式 1.1 联机重做日志.归档日志概念 1.2 工作模式 1.3 数据库恢复 1.4 归档模式 (1)启用 (2)查看归档文件被存放的路径以及存放文件的容量: (3)手动进行日志切 ...

  6. WAL 日志和归档配置

    WAL 日志和归档配置        WAL 日志归档,就是把在线的已写完的 WAL 日志复制出来.使用复制 WAL 文件的方式 来同步主.备数据库之间的数据,会导致备库落后主库一个 WAL 日志文件 ...

  7. [原创]Android Monkey 在线日志分析工具开发

    [原创]Android Monkey 在线日志分析工具开发 在移动App测试过程中,Monkey测试是我们发现潜在问题的一种非常有效手段,但是Android原生的Monkey有其天然的不足,数据不能有 ...

  8. ORA-16038的解决(日志无法归档)

    ORA-16038的解决 数据库装载完毕. ORA-16038: 日志 3 序列号 5035 无法归档 ORA-19809: 超出了恢复文件数的限制 ORA-00312: 联机日志 3 线程 1: . ...

  9. 十二、dbms_logmnr(分析重做日志和归档日志)

    1.概述 作用:通过使用包DBMS_LOGMNR和DBMS_LOGMNR_D,可以分析重做日志和归档日志所记载的事务变化,最终确定误操作(例如DROP TABLE)的时间,跟踪用户事务操作,跟踪并还原 ...

最新文章

  1. 卧槽!新基建背景下,这些姿势架构师必须懂!
  2. B 站的前端崩了,后端的你别慌!
  3. ​通俗理解神经网络BP反向传播算法
  4. C# 面向对象三大特性:封装、继承、多态
  5. SpringBoot 2.0 Actuator监控系统
  6. 〖经典〗网页特效汇总实例
  7. LeetCode OJ Symmetric Tree 判断是否为对称树(AC代码)
  8. 关于在VMware上装lFEDORA系统
  9. [转]innodb的锁时间
  10. Redis安装到Windows系统上的详细步骤
  11. 一阶系统和二阶系统动态响应分析
  12. Intellig idea关闭自动更新
  13. android 自定义锁屏api,如何设置Android锁屏图像
  14. 分享三大外汇日内交易策略
  15. html页面设置过期时间,meta标签http-equiv=Expires属性写法及用法
  16. 冰蝎下的反弹shell连接msfconsole
  17. window系统使用 bash 新建 vue3+ts 项目以及 preset 模板使用
  18. Oracle EBS 模拟登入
  19. maven打包可执行的jar包-包含依赖jar
  20. 中职计算机应用专业教师到电商企业实践报告,中职教师到企业实践总结.doc

热门文章

  1. oracle inside(4)
  2. .net框架读书笔记---虚方法
  3. 安卓手机刷软路由_华为路由AX3 Pro上手测评:用过最方便的路由器,没有之一...
  4. 计算机与生命科学专业排名,2019软科世界一流学科排名发布,54个专业TOP10牛校榜单全给你...
  5. c#解析json字符串数组_C#解析JSON字符串总结
  6. sql随机抽取数据50条_厉害!苏宁通过citus打造分布式数据库抗住DB高负载
  7. cfree运行程序错误_C/C++程序调试和内存检测
  8. 我的世界java什么村民卖地图_《我的世界》推出虚拟货币、商店 玩家可在店中卖地图...
  9. Word2Vec学习笔记(三)
  10. MySQL innosetup_jdk,tomcat,mysql,innosetup封装