1.Oracle dmp文件结构探秘
Oracle dmp文件结构探秘
解析Oracle DMP文件的备份备份任务,其实是源码在面对一堆进制代码时,找出其中的备份备份规律,尤其是源码建表语句和INSERT语句。初步解析器在g版本中已经可以成功运行,备份备份接下来将揭示DMP文件结构的源码复刻网站源码秘密。
打开DMP文件时,备份备份先通过Nodepad++的源码十六进制编辑器插件进行预处理。文件由地址指针和具体内容两部分组成,备份备份每对十六进制数表示一个字节。源码数据和地址均以进制形式表示。备份备份
DMP文件大致结构如下。源码红色区域是备份备份绝地sys源码关键数据,其余部分虽看似无用,源码但包含表元数据、备份备份索引建立等信息。文件头部的固定部分除外,多张表会在文件中以类似结构片段形式呈现。读取时需注意。elementui css源码
解析器使用RandomAccessFile读取,每次读取以“0a”为分隔,读取两个“0a”之间的内容。首先跳过固定头,即0x * 0x + 0xD,定位到下个“0a”处。加支付源码接着调用三次readLine方法,分别获得表声明、创建语句和INSERT批处理语句。之后,需要查找“ ”结构以定位数据字段,接着读取字节数,米粒小屋源码读取相应的字节,直至遇到“ ”表示数据结束。
当遇到“ ff ff 0a”的结构,表示当前表的INSERT过程结束。遇到“ ”后紧跟“fe”表示空字段。通过整合批处理语句与真实数据,可以生成实际的INSERT语句。解析过程重复应用于多张表,直至文件末尾读取到“EXIT”标志,表示解析完成。
解析器识别表结构、读取建表和INSERT语句,拼接生成实际的INSERT语句,直至完整解析文件。值得注意的是,解析结果基于一般情况,存在特例,如数据段表示方式的多样性。对于Blob、Clob字段的解析,当前解析规则无法覆盖。有兴趣的同学可深入研究。
GitHub源码链接:github.com/ACoolMonkey/...