[20170310]关于在线日志与归档3.txt
[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相关推荐
- 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 ...
- oracle的asmcmd获取归档日志,分析oracle的联机日志和归档日志
logminer和配置 安装logminer 以sqlplus / as sysdba登录系统数据库系统,ORACLE默认安装logminer,如果没有安装,执行SQL脚本安装 --安装logmine ...
- 在线日志文件丢失的恢复(笔记)
在线日志文件丢失有二种情况,一是丢失非当前日志,这时可以通过 SQL>alter database clear logfile group 3;[已归档] 或 SQL>alter data ...
- oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理
最近一段时间,有收到一台Oracle服务器的连接告警, 刚刚开始还以为是Oracle的监听被关闭导致,结果连上服务器看下Oracle的监听进程正常,自己连接一次发现有报ORA-00257错,又去监控系 ...
- oracle11g 联机重做日志、归档日志、日志文件组以及日志文件操作
文章目录 一.归档方式 1.1 联机重做日志.归档日志概念 1.2 工作模式 1.3 数据库恢复 1.4 归档模式 (1)启用 (2)查看归档文件被存放的路径以及存放文件的容量: (3)手动进行日志切 ...
- WAL 日志和归档配置
WAL 日志和归档配置 WAL 日志归档,就是把在线的已写完的 WAL 日志复制出来.使用复制 WAL 文件的方式 来同步主.备数据库之间的数据,会导致备库落后主库一个 WAL 日志文件 ...
- [原创]Android Monkey 在线日志分析工具开发
[原创]Android Monkey 在线日志分析工具开发 在移动App测试过程中,Monkey测试是我们发现潜在问题的一种非常有效手段,但是Android原生的Monkey有其天然的不足,数据不能有 ...
- ORA-16038的解决(日志无法归档)
ORA-16038的解决 数据库装载完毕. ORA-16038: 日志 3 序列号 5035 无法归档 ORA-19809: 超出了恢复文件数的限制 ORA-00312: 联机日志 3 线程 1: . ...
- 十二、dbms_logmnr(分析重做日志和归档日志)
1.概述 作用:通过使用包DBMS_LOGMNR和DBMS_LOGMNR_D,可以分析重做日志和归档日志所记载的事务变化,最终确定误操作(例如DROP TABLE)的时间,跟踪用户事务操作,跟踪并还原 ...
最新文章
- 卧槽!新基建背景下,这些姿势架构师必须懂!
- B 站的前端崩了,后端的你别慌!
- ​通俗理解神经网络BP反向传播算法
- C# 面向对象三大特性:封装、继承、多态
- SpringBoot 2.0 Actuator监控系统
- 〖经典〗网页特效汇总实例
- LeetCode OJ Symmetric Tree 判断是否为对称树(AC代码)
- 关于在VMware上装lFEDORA系统
- [转]innodb的锁时间
- Redis安装到Windows系统上的详细步骤
- 一阶系统和二阶系统动态响应分析
- Intellig idea关闭自动更新
- android 自定义锁屏api,如何设置Android锁屏图像
- 分享三大外汇日内交易策略
- html页面设置过期时间,meta标签http-equiv=Expires属性写法及用法
- 冰蝎下的反弹shell连接msfconsole
- window系统使用 bash 新建 vue3+ts 项目以及 preset 模板使用
- Oracle EBS 模拟登入
- maven打包可执行的jar包-包含依赖jar
- 中职计算机应用专业教师到电商企业实践报告,中职教师到企业实践总结.doc
热门文章
- oracle inside(4)
- .net框架读书笔记---虚方法
- 安卓手机刷软路由_华为路由AX3 Pro上手测评:用过最方便的路由器,没有之一...
- 计算机与生命科学专业排名,2019软科世界一流学科排名发布,54个专业TOP10牛校榜单全给你...
- c#解析json字符串数组_C#解析JSON字符串总结
- sql随机抽取数据50条_厉害!苏宁通过citus打造分布式数据库抗住DB高负载
- cfree运行程序错误_C/C++程序调试和内存检测
- 我的世界java什么村民卖地图_《我的世界》推出虚拟货币、商店 玩家可在店中卖地图...
- Word2Vec学习笔记(三)
- MySQL innosetup_jdk,tomcat,mysql,innosetup封装