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

更多精彩 第一时间直达

作者 | 李亮,云和恩墨西区交付工程师,长期服务于运营商、社保、银行、医院、公积金等行业,擅长数据库备份恢复,升级迁移,性能优化,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权限运⾏就可以了(默认没有密码)。

如果你了解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查看数据结构

直接p查看

p 指定⾏指针和tuple

查看十六进制数据

四、修改数据测试

表T5有一条被删除的tuple

postgres=# select * from t5;

id | name

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

查看 tuple

修改

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

重启实例查看数据

五、写在后⾯

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

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

不⼀定有⽤,但是好玩!


资源下载

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

2018DTCC , 数据库大会PPT

2018DTC,2018 DTC 大会 PPT

DBALIFE ,“DBA 的一天”海报

DBA04 ,DBA 手记4 电子书

122ARCH ,Oracle 12.2体系结构图

2018OOW ,Oracle OpenWorld 资料

产品推荐

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

BBED for PostgreSQL相关推荐

  1. 从Oracle到PostgreSQL:Storage Index 特性 vs BRIN 索引

    墨墨导读:本文介绍 PostgreSQL 中的BRIN索引.为什么引人注意专门单独讲述这个性能?因为这就是活脱脱的 Oracle Exadata 中的 Storage Index 和 Oracle D ...

  2. 呐,你要的新年攻略和文章汇总

    红灯笼挂在墙上,吉祥春联贴在门上,多彩烟花映在头上,浓浓年味洋溢心上,合家欢乐围绕桌上,喜庆如意写在脸上,我们整理了这一年以来的精彩文章奉上."数据和云"祝大家新春快乐!感谢大家一 ...

  3. 实战演练:如何用BBED恢复删除的数据

    墨墨导读:本文来自墨天轮用户 肖杰 的投稿,介绍用BBED恢复删除数据的全过程. 墨天轮主页:https://www.modb.pro/u/6722 Oracle中delete行时,数据实际上并没有被 ...

  4. Postgresql 日志收集

    PG安装完成后默认不会记录日志,必须修改对应的(${PGDATA}/postgresql.conf)配置才可以,这里只介绍常用的日志配置. 1.logging_collector = on/off - ...

  5. pg数据库开启远程连接_如何运行远程客户端连接postgresql数据库

    如何运行远程客户端连接 postgresql 数据库 前提条件是 2 个: 1 , pg_hba.conf 里面配置了运行远程客户机连接 pg_hba.conf 配置后需要重新加载 reload 生效 ...

  6. Postgresql:删除及查询字段中包含单引号的数据

    Postgresql:删除及查询字段中包含单引号的数据 1. 假设pg表t_info的属性att,值为固定的:'test' 2. 假设值为不固定的,'abcde' 参考 1. 假设pg表t_info的 ...

  7. postgresql Insert插入的几个报错

    postgresql Insert插入的几个报错 1. org.postgresql.util.PSQLException: 未设定参数值 2 的内容. 2. postgresql : column ...

  8. 【Postgresql】触发器某个字段更新时执行,行插入或更新执行

    [Postgresql]触发器某个字段更新时执行,行插入或更新执行 1. postgresql触发器 2. 触发器的创建及示例 1) 字段更新时,触发 2) 行插入或更新时,触发 3. 触发器的删除 ...

  9. PostgreSql、MySql字段值为空时取其他值语句

    PostgreSql: COALESCE(expr1,expr2) COALESCE函数是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的,如果参数都是null会报错. sele ...

最新文章

  1. The system cannot find the file specified
  2. 英伟达一大波硬件来袭:今日GTC发布专业GPU与DPU,为收购ARM将在英国建超算
  3. 解救人质的android游戏,黑帽子解救人质全关卡解锁版 1.03 安卓版
  4. ios开发 json数据文件的存取
  5. HTML编码问题导致的乱码
  6. 使用Python和MetaTrader在5分钟内开始构建您的交易策略
  7. JSP request response session
  8. 让互联网助小组合作一臂之力
  9. 论文中常用的转折、连接词跟短语
  10. Jmeter系列之参数化
  11. CTO 职场解惑指南系列(一)
  12. Snagit 2019 for Mac(最好用的截图软件)v2019.1.11汉化版 MacOS 11 Big Sur支持
  13. 基于springboot的学生选课系统
  14. 使用jps查看JAVA进程号
  15. java 表单字段扩展_如何从Chrome扩展程序填写网页表单中的文本字段?
  16. css的checkbox样式,css自定义checkbox样式的方法总结
  17. 附26页PPT下载|借助用户画像解决电商问题
  18. 2021 年百度之星·程序设计大赛 - 初赛三
  19. SPSS22 高级市场分析 统计分析【原创】
  20. 从三本院校到斩获字节跳动后端研发Offer

热门文章

  1. raspberry pi_尝试8个有趣的Raspberry Pi项目
  2. openstack用户列表_什么是OpenStack超级用户?
  3. Less的条件表达式Guards
  4. 七.激光SLAM框架学习之A-LOAM框架---速腾Robosense-16线雷达室内建图
  5. 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程
  6. html设置数组的方法,js改变原数组的方法有哪些?
  7. win7 计算机 打开很慢,Win7电脑网上邻居(网络)打开速度慢的怎么解决?
  8. vue页面锚文本_Vue如何实现锚点定位功能?
  9. 面向对象之多态,魔法函数
  10. A smooth collaborative recommender system 推荐系统-浅显了解