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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: [20170310]关于在线日志与归档4.txt --//如果你顺便看归档日志目录,在线日志50M,你可以发现最大归档43M上下.也就是在线日志大于45M后面这些块基本不会写入日志记录信息.

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

--//如果你顺便看归档日志目录,在线日志50M,你可以发现最大归档43M上下.也就是在线日志大于45M后面这些块基本不会写入日志记录信息.
--//比如查询如下:

#  ls -l -S -h /data/log/ORCL/archivelog/| head -10
total 27G
-rw-r----- 1 oracle oinstall  43M 2017-03-02 10:53:07 0001_0000051850_628034536.dbf
-rw-r----- 1 oracle oinstall  43M 2017-03-08 15:56:59 0001_0000051935_628034536.dbf
-rw-r----- 1 oracle oinstall  42M 2017-01-24 09:01:13 0001_0000051406_628034536.dbf
-rw-r----- 1 oracle oinstall  42M 2017-01-17 23:03:54 0001_0000051326_628034536.dbf
-rw-r----- 1 oracle oinstall  42M 2017-02-03 09:04:49 0001_0000051495_628034536.dbf
-rw-r----- 1 oracle oinstall  42M 2017-02-13 17:54:24 0001_0000051631_628034536.dbf
-rw-r----- 1 oracle oinstall  42M 2017-01-11 09:01:24 0001_0000051242_628034536.dbf
-rw-r----- 1 oracle oinstall  42M 2017-02-16 09:34:58 0001_0000051668_628034536.dbf
-rw-r----- 1 oracle oinstall  42M 2017-01-11 23:00:25 0001_0000051250_628034536.dbf

--//这样看看这些没有写入日志的数据块情况:

--//看看49M这个位置开始的情况.

1.环境:

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.

--// 拿/mnt/ramdisk/book/redo02.log 分析.
--// 49m 位于49*1024*1024=51380224 49*1024*1024/512=100352块位置.

2.探究:

$ xxd -c 16 -seek 51380224 -l 512 -a /mnt/ramdisk/book/redo02.log
3100000: 0122 0000 0088 0100 0000 0000 0080 002a  ...............*
3100010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
*
31001f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................

--//可以发现仅仅前面16字节由信息,实际上这个就是日志日志块的header为16bytes.

$ xxd -c 16 -seek 51380224 -l 512 -a /mnt/ramdisk/book/redo01.log
3100000: 0122 0000 0088 0100 0000 0000 0080 002a  ...............*
3100010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
*
31001f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................

$ xxd -c 16 -seek 51380224 -l 512 -a /mnt/ramdisk/book/redo03.log
3100000: 0122 0000 0088 0100 0000 0000 0080 002a  ...............*
3100010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
*
31001f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................

$ xxd -c 16 -seek 51380224 -l 512 -a /mnt/ramdisk/book/redo03.log |md5sum
05820513d808b3517ff90a57f093ac82  -
$ xxd -c 16 -seek 51380224 -l 512 -a /mnt/ramdisk/book/redo02.log |md5sum
05820513d808b3517ff90a57f093ac82  -
$ xxd -c 16 -seek 51380224 -l 512 -a /mnt/ramdisk/book/redo01.log |md5sum
05820513d808b3517ff90a57f093ac82  -

--//说明位置一样对于"空白"内容是一样的,而且里面不可能有group#号信息.这样完全可以从一个好的日志文件尾部来合并归档文件来建立
--//一个好的日志文件.从而欺骗oracle.

--//继续探究这16字节内容:
--//偏移0x14-0x15 是检查和.前面测试已经说明.
49*1024*1024=51380224
49*1024*1024/512=100352
100352 = 0x18800

3100000: 0122 0000 0088 0100 0000 0000 0080 002a  ...............*
                   ~~~~~~~~~
--//4个字节颠倒 0001 8800,顺便复习使用od查看(各种命令参数不同意,烦!!,注4个字节我对调显示):

$ od  -j 51380224  -N 512 -t x4 /mnt/ramdisk/book/redo02.log
304000000 00002201 00018800 00000000 2a008000
304000020 00000000 00000000 00000000 00000000
*
304001000
--//也就是第4-7偏移表示块地址.

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
存储 运维 应用服务中间件
[运维日志] Web 服务器日志依日期归档(Powershell 实现,附源代码)
[运维日志] Web 服务器日志依日期归档(Powershell 实现,附源代码)
147 0
|
10天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
【赵渝强老师】Oracle的控制文件与归档日志文件
|
6月前
|
SQL Oracle 关系型数据库
oracle11g SAP测试机归档日志暴增排查(二)
oracle11g SAP测试机归档日志暴增排查(二)
326 1
|
6月前
|
Oracle 关系型数据库 Shell
oracle11g SAP测试机归档日志暴增排查(一)
oracle11g SAP测试机归档日志暴增排查(一)
78 1
|
3月前
|
SQL Oracle NoSQL
实时计算 Flink版操作报错合集之报错“找不到对应的归档日志文件”,怎么处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
3月前
|
SQL Oracle 关系型数据库
"揭秘!一键解锁Oracle日志清理魔法,让海量归档日志无处遁形,守护数据库健康,告别磁盘空间告急噩梦!"
【8月更文挑战第9天】随着Oracle数据库在企业应用中的普及,归档日志管理对保持数据库健康至关重要。归档日志记录所有更改,对数据恢复极为重要,但也可能迅速占用大量磁盘空间影响性能。利用Oracle提供的RMAN工具,可通过编写Shell脚本来自动清理归档日志。脚本包括设置环境变量、连接数据库、检查和删除指定时间前的日志,并记录执行情况。通过Cron作业定时运行脚本,可有效管理日志文件,确保数据库稳定运行。
96 7
|
4月前
|
存储 SQL Oracle
关系型数据库Oracle归档日志备份
【7月更文挑战第19天】
67 5
|
5月前
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。
|
6月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之在读取Oracle归档日志时出现日志数量大幅增加的情况如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
106 1
|
6月前
|
Oracle 关系型数据库