[20180604]在内存修改数据(bbed).txt

--//以前曾经做过在内存修改数据,通过oradebug poke命令修改内存信息,相关链接:
--//http://blog.itpub.net/267265/viewspace-2124466/=>[20160904]在内存修改数据.txt

--//今天测试看看是否通过bbed修改数据信息的情况.使用asmm,这样/dev/shm可以看到一个一个文件。

1.环境:
SCOTT@book> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

2.建立测试:

create table t1 (id number,name varchar2(20));
insert into t1 values (1,'AAAAAAAAAAB');
commit ;

SCOTT@book> select rowid,t1.* from t1;
ROWID                      ID NAME
------------------ ---------- --------------------
AAAWQKAAEAAAAJcAAA          1 AAAAAAAAAAB

SCOTT@book> @ &r/rowid AAAWQKAAEAAAAJcAAA
    OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
     91146          4        604          0  0x100025C           4,604                alter system dump datafile 4 block 604 ;

SYS@book> create pfile='/tmp/@.ora' from spfile;
File created.

--//修改/tmp/book.ora参数,加入
*.memory_target=5120M
*.memory_max_target=5120M
--//注:注意检查use_large_pages参数,我的设置*.use_large_pages='ONLY',无法启动,报
SYS@book> startup pfile=/tmp/book.ora
ORA-27125: unable to create shared memory segment

--//使用参数/tmp/book.ora参数启动数据库,这样采用asmm方式.
SYS@book> startup pfile=/tmp/book.ora
ORACLE instance started.
Total System Global Area 1068994560 bytes
Fixed Size                  2259960 bytes
Variable Size             423625736 bytes
Database Buffers          637534208 bytes
Redo Buffers                5574656 bytes
Database mounted.
Database opened.

# ls -l /dev/shm/ora_book_*|wc

--//加载对应数据块到内存:
SCOTT@book> select rowid,t1.* from t1;
ROWID                      ID NAME
------------------ ---------- --------------------
AAAWQKAAEAAAAJcAAA          1 AAAAAAAAAAB

SYS@book> @ &r/bh 4 604
HLADDR              DBARFIL     DBABLK      CLASS CLASS_TYPE         STATE             TCH CR_SCN_BAS CR_SCN_WRP CR_UBA_FIL CR_UBA_BLK CR_UBA_SEQ BA               OBJECT_NAME
---------------- ---------- ---------- ---------- ------------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- --------------------
000000009DFCB238          4        604          1 data block         xcur                1          0          0          0          0          0 0000000081C14000 T1

3.在内存修改数据:
# strings -f -t d /dev/shm/ora_book_* | grep AAAAAAAAAAB
/dev/shm/ora_book_265158658_132:   90097 AAAAAAAAAAB
/dev/shm/ora_book_265158658_132: 3055545        3*AC60AAABAAAAAAAAAAAAAAAAAAAAAAB6UEsFBgAAAAABAAEALwAAABEXAAAAAA==

--//90097/8192 = 10.99816894531250000000
--//确定字符串AAAAAAAAAAB在那个文件.可以确定/dev/shm/ora_book_265158658_132.因为仅仅插入1条,应该在块的底部.

4.使用bbed修改:
BBED> set filename '/dev/shm/ora_book_265158658_132'
        FILENAME        /dev/shm/ora_book_265158658_132

BBED> set blocksize 8192
        BLOCKSIZE       8192

--//注意一定要设置这个参数.不然看到的块大小是512
BBED> show
        FILE#           0
        BLOCK#          1
        OFFSET          0
        DBA             0x00000000 (0 0,1)
        FILENAME        /dev/shm/ora_book_265158658_132
        BIFILE          bifile.bbd
        LISTFILE        /home/oracle/bbed/filelist.txt
        BLOCKSIZE       512
        MODE            Edit
        EDIT            Unrecoverable
        IBASE           Dec
        OBASE           Dec
        WIDTH           160
        COUNT           64
        LOGFILE         log.bbd
        SPOOL           Yes

BBED> set block 11
        BLOCK#          11
--//因为这个内存文件的第一块非文件头.所以block=11.

BBED> x /rnc *kdbr[0]
rowdata[0]                                  @8170
----------
flag@8170: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8171: 0x01
cols@8172:    2

col    0[2] @8173: 1
col   1[11] @8176: AAAAAAAAAAB

--//确定偏移量:
BBED> dump offset 8176
 File: /dev/shm/ora_book_265158658_132 (0)
 Block: 11                                                   Offsets: 8176 to 8191 Dba:0x00000000
--------------------------------------------------------------------------------------------------
 0b414141 41414141 41414142 0106a09c
<64 bytes per line>

BBED> modify /c 'ABCD' offset 8177
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
 File: /dev/shm/ora_book_265158658_132 (0)
 Block: 11                                                   Offsets: 8177 to 8191 Dba:0x00000000
--------------------------------------------------------------------------------------------------
 41424344 41414141 41414201 06a09c

--//再次查询看看.
SYS@book> select rowid,t1.* from scott.t1;
ROWID                      ID NAME
------------------ ---------- --------------------
AAAWQKAAEAAAAJcAAA          1 ABCDAAAAAAB

--//注:我并没有做检查和,sum apply.
--//我已经通过内存篡改了信息.

SYS@book> alter system flush BUFFER_CACHE;
System altered.

SYS@book> select rowid,t1.* from scott.t1;
ROWID                      ID NAME
------------------ ---------- --------------------
AAAWQKAAEAAAAJcAAA          1 AAAAAAAAAAB

--//现在有正常显示回来.

转载于:https://www.cnblogs.com/lfree/p/9248872.html

[20180604]在内存修改数据(bbed).txt相关推荐

  1. 分享:bbed修改数据文件头推进scn与其他数据文件相同

    2019独角兽企业重金招聘Python工程师标准>>> 场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据 ...

  2. 修改oracle的表空间文件scn,分享:bbed修改数据文件头推进scn与其他数据文件相同...

    场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据文件不一致. 场景构造: 1.创建测试表空间 SYS@orser> ...

  3. BBED修改数据文件的SCN

    BBED修改数据文件的SCN 1.编译BBED make: *** No rule to make target `ins_rdbms.mk'. Stop. [oracle@linux2 oracle ...

  4. oracle修改数据前备份,Oracle 之利用BBED修改数据块SCN—-没有备份数据文件的数据恢复...

    测试环境 OS:redhat6.6 oracle:12.1.0.2 BBED(OracleBlockBrowerandEDitor Tool),用来直接查看和修改数据文件数据的一个工具,是Oracle ...

  5. Oracle 之利用BBED修改数据块SCN----没有备份数据文件的数据恢复

    测试环境 OS:redhat6.6 oracle:12.1.0.2  BBED(OracleBlockBrowerandEDitor Tool),用来直接查看和修改数据文件数据的一个工具,是Oracl ...

  6. [20170412]bbed隐藏数据记录.txt

    [20170412]bbed隐藏数据记录.txt --上午做了bbed恢复修改记录(不等长)的情况,http://blog.itpub.net/267265/viewspace-2137082/ -- ...

  7. [20170419]bbed探究数据块.txt

    [20170419]bbed探究数据块.txt --//bbed 是一个瑞士军刀,也是了解oracle内部数据块结构的好工具.我自己开始使用基本是看别人的帖子,对oracle数据块的内部也不是很了解. ...

  8. oracle修改mem为手动管理,PSV内存修改金手指插件GoHANmem v2.00下载和使用教程

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?立即注册 x PSV内存修改插件GoHANmem主要功能: 内存数值搜索修改锁定 支持金手指代码 查 ...

  9. [20150612]使用bvi查看数据块.txt

    [20150612]使用bvi查看数据块.txt --编写一个简单的脚本实现bvi查看数据块,主要我现在喜欢使用bbed查看,而修改选择bvi. --通过例子来说明: SCOTT@test> s ...

最新文章

  1. java安装_使用Java 9模块化来发布零依赖本机应用程序
  2. 网络推广策略带你了解网站地图Sitemap的作用是什么?
  3. Luogu P2619 [国家集训队2]Tree I 凸优化,wqs二分
  4. android 多个handler,Android中的Handler与多线程应用实例
  5. 【哈利波特】Sherbert Lemon对HP的解读之11
  6. iOS开发拓展篇—音频处理(音乐播放器6)
  7. tomcat高版本之URL解析异常解决
  8. linux配置redis服务,Linux下安装Redis并设置相关服务
  9. 洛谷 深基 第1部分 语言入门 第2章 顺序结构程序设计
  10. HaspMap的新奇用法
  11. 【转】AndroidStudio升到最新版本(3.1.2)之后
  12. Android 签名问题记录MinSdkVersionException: Failed to determine APK‘s minimum supported platform version
  13. char*赋值给std::string是深拷贝
  14. GoldWave2020注册激活码版下载音频处理制作教程
  15. 安卓handler机制
  16. css找某个元素的下个子元素,使用CSS获取特定位置的子元素
  17. 家用路由器设置虚拟服务器,家用路由器设置虚拟服务器
  18. 升级mac系统正在计算机,Mac升级卡死解决办法
  19. mysql查询表_mysql数据库表的查询操作-总结
  20. 数学向量 java,数学向量和旋转(Topdown java game dev – physics problem)

热门文章

  1. linux命令ps -aux|grep xxx详解
  2. Android Studio导入so文件到项目中
  3. pythoncontinue函数_Python continue语句
  4. windows10中如何在d盘新建kaoshi.log文件_命令行备份Windows 10驱动amp;设备管理器中安装驱动。...
  5. python记录输入次数_如何计算用户输入错误的次数
  6. linux java 自启动_Linux设置开机启动脚本
  7. 做系统ghost步骤图解_两台电脑硬盘对拷图解
  8. php 转义md5 和java 转译的区别_CTF|PHP中的命令参数注入
  9. java打开android_解决android studio 打开java文件 内容全变了的问题
  10. ELK快速搭建日志平台(基于7.9.3)