zoukankan      html  css  js  c++  java
  • BBED for PostgreSQL

    点击▲关注 “数据和云”   给公众号标星置顶

    更多精彩 第一时间直达

    640?wx_fmt=jpeg

    作者 | 李亮,云和恩墨西区交付工程师,长期服务于运营商、社保、银行、医院、公积金等行业,擅长数据库备份恢复,升级迁移,性能优化,sql优化。


     一、关于bbedp


    ⽤python模仿bbed写了⼀个bbedp for pg的脚本,简单的查看和修改字节都可以做到。如果你不清楚这个脚本的功能,请不要轻易在⽣产环境使⽤它,这很危险。


    使⽤环境:

    1、linux

    2、python 2.7

    3、⽬前仅⽀持单个table

     ⼆、如何开始

    找到table对应物理文件

    查看data_directory参数找到数据库所在⽬录

    postgres=# show data_directory ;

     data_directory 

    ----------------------

     /oracle/soft/pg_data

    (1 row)

    postgres=#


    表的物理⽂件位置

    postgres=# select pg_relation_filepath('t1');

     pg_relation_filepath

    ----------------------

     base/13323/24706

    (1 row)

    postgres=#



    然后编辑bbedp脚本同级⽬录下的file⽂件就可以开始了,⽬前仅⽀持单个⽂件

    vi file

    /oracle/soft/pg_data/base/13323/24706

    运行bbedp

    这⾥你需要给x权限运⾏就可以了(默认没有密码)。

    640?wx_fmt=png

    如果你了解bbed,那么help看⼀眼帮助就很容易上⼿bbedp了。你不了解bbed也没问题,脚本很简单,主要功能有查看page结构,dump字节,修改字节。


     三、查看page

    map查看page结构

    BBEDP> map

     File: /oracle/soft/pg_data/base/13323/16428

     Block: 0 offset: 0

     -------------------------------------------------------------------

     struct PageHeaderData , 24 bytes @0

     struct Linps , 44 bytes @24

    struct Tuples , 392 bytes @68 

     struct Pd_special , 0 bytes @8191

     There are 11 tuples in the block

    BBEDP>

    默认从block 0开始,你可以set block到指定的block再开始

    p查看数据结构

    640?wx_fmt=png

    640?wx_fmt=png


    直接p查看

    640?wx_fmt=png

    640?wx_fmt=png


    p 指定⾏指针和tuple

    640?wx_fmt=png

    查看十六进制数据

    640?wx_fmt=png

    640?wx_fmt=png


     四、修改数据测试

    表T5有一条被删除的tuple

    postgres=# select * from t5;

     id | name 

    -------+------------

    640?wx_fmt=png

    查看 tuple

    640?wx_fmt=png

    640?wx_fmt=png

    640?wx_fmt=png

    640?wx_fmt=png

    修改

    把tuple3这条记录尝试⽤bbedp修改找回来

    640?wx_fmt=png


    重启实例查看数据

    640?wx_fmt=png

     五、写在后⾯


    温馨提示:请不要轻易在⽣产环境使⽤它。

    如果有什么不对的地⽅,感谢在留言处指正。

    不⼀定有⽤,但是好玩!



    资源下载

    关注公众号:数据和云(OraNews)回复关键字获取

    2018DTCC , 数据库大会PPT

    2018DTC,2018 DTC 大会 PPT

    DBALIFE ,“DBA 的一天”海报

    DBA04 ,DBA 手记4 电子书

    122ARCH ,Oracle 12.2体系结构图

    2018OOW ,Oracle OpenWorld 资料

    产品推荐

    云和恩墨zData一体机现已发布超融合版本和精简版,支持各种简化场景部署,零数据丢失备份一体机ZDBM也已发布,欢迎关注。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

  • 相关阅读:
    HTML5 localStorage and sessionStorage
    WebViewJavascriptBridge-Obj-C和JavaScript互通消息的桥梁
    js控制手机号码中间用星号代替
    无法删除登录名 '***',因为该用户当前正处于登录状态。 (Microsoft SQL Server,错误: 15434)
    在QT中添加LIB的方法
    Android颜色代码
    判断ubuntu是32位还是64位
    Android应用市场App发布
    ubuntu目录结构(转)
    QT调用CHM方法
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13312191.html
Copyright © 2011-2022 走看看