oracle-BBED的使用
bbed是oracle内部一款用来直接查看和修改数据文件数据的工具,可以直接修改Oracle数据文件块的内容,在一些特殊恢复场景下比较有用。
字节顺序
AIX对应的CPU Power系列叫大端
英特尔对应的CPU 叫小端
前一种规则--最低有效字节在最前面的方式,称为小端法(little endian)。
后一种规则--最高有效字节在最前面的方式,称为大端法(big endian)。
SQL> desc v$database;
SQL> select dbid,name from v$database;
DBID NAME
---------- ---------
2826565105 MYDB
SQL>
查看机器类型
SQL> select d.PLATFORM_NAME,ENDIAN_FORMAT FROM V$TRANSPORTABLE_PLATFORM tp, v$DATABASE d WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME;
PLATFORM_NAME
--------------------------------------------------------------------------------
ENDIAN_FORMAT
--------------
Linux x86 64-bit
Little
小段的,是倒叙。要把f1f579a8 两个两个转换出来。
通过BBED把dbid和dbname解析出来
SQL> select to_number('a879f5f1','xxxxxxxxxxxxxxxxxxxx') from dual;
TO_NUMBER('A879F5F1','XXXXXXXXXXXXXXXXXXXX')
--------------------------------------------
2826565105
SQL> select chr(to_number(substr('4d59444200000000',2*rownum-1,2),'xxxxxxxx')) from dba_objects where rownum<=8;
CH
--
M
Y
D
B
8 rows selected.