BBED for PostgreSQL
点击▲关注 “数据和云” 给公众号标星置顶
更多精彩 第一时间直达
作者 | 李亮,云和恩墨西区交付工程师,长期服务于运营商、社保、银行、医院、公积金等行业,擅长数据库备份恢复,升级迁移,性能优化,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相关推荐
- 从Oracle到PostgreSQL:Storage Index 特性 vs BRIN 索引
墨墨导读:本文介绍 PostgreSQL 中的BRIN索引.为什么引人注意专门单独讲述这个性能?因为这就是活脱脱的 Oracle Exadata 中的 Storage Index 和 Oracle D ...
- 呐,你要的新年攻略和文章汇总
红灯笼挂在墙上,吉祥春联贴在门上,多彩烟花映在头上,浓浓年味洋溢心上,合家欢乐围绕桌上,喜庆如意写在脸上,我们整理了这一年以来的精彩文章奉上."数据和云"祝大家新春快乐!感谢大家一 ...
- 实战演练:如何用BBED恢复删除的数据
墨墨导读:本文来自墨天轮用户 肖杰 的投稿,介绍用BBED恢复删除数据的全过程. 墨天轮主页:https://www.modb.pro/u/6722 Oracle中delete行时,数据实际上并没有被 ...
- Postgresql 日志收集
PG安装完成后默认不会记录日志,必须修改对应的(${PGDATA}/postgresql.conf)配置才可以,这里只介绍常用的日志配置. 1.logging_collector = on/off - ...
- pg数据库开启远程连接_如何运行远程客户端连接postgresql数据库
如何运行远程客户端连接 postgresql 数据库 前提条件是 2 个: 1 , pg_hba.conf 里面配置了运行远程客户机连接 pg_hba.conf 配置后需要重新加载 reload 生效 ...
- Postgresql:删除及查询字段中包含单引号的数据
Postgresql:删除及查询字段中包含单引号的数据 1. 假设pg表t_info的属性att,值为固定的:'test' 2. 假设值为不固定的,'abcde' 参考 1. 假设pg表t_info的 ...
- postgresql Insert插入的几个报错
postgresql Insert插入的几个报错 1. org.postgresql.util.PSQLException: 未设定参数值 2 的内容. 2. postgresql : column ...
- 【Postgresql】触发器某个字段更新时执行,行插入或更新执行
[Postgresql]触发器某个字段更新时执行,行插入或更新执行 1. postgresql触发器 2. 触发器的创建及示例 1) 字段更新时,触发 2) 行插入或更新时,触发 3. 触发器的删除 ...
- PostgreSql、MySql字段值为空时取其他值语句
PostgreSql: COALESCE(expr1,expr2) COALESCE函数是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的,如果参数都是null会报错. sele ...
最新文章
- The system cannot find the file specified
- 英伟达一大波硬件来袭:今日GTC发布专业GPU与DPU,为收购ARM将在英国建超算
- 解救人质的android游戏,黑帽子解救人质全关卡解锁版 1.03 安卓版
- ios开发 json数据文件的存取
- HTML编码问题导致的乱码
- 使用Python和MetaTrader在5分钟内开始构建您的交易策略
- JSP request response session
- 让互联网助小组合作一臂之力
- 论文中常用的转折、连接词跟短语
- Jmeter系列之参数化
- CTO 职场解惑指南系列(一)
- Snagit 2019 for Mac(最好用的截图软件)v2019.1.11汉化版 MacOS 11 Big Sur支持
- 基于springboot的学生选课系统
- 使用jps查看JAVA进程号
- java 表单字段扩展_如何从Chrome扩展程序填写网页表单中的文本字段?
- css的checkbox样式,css自定义checkbox样式的方法总结
- 附26页PPT下载|借助用户画像解决电商问题
- 2021 年百度之星·程序设计大赛 - 初赛三
- SPSS22 高级市场分析 统计分析【原创】
- 从三本院校到斩获字节跳动后端研发Offer
热门文章
- raspberry pi_尝试8个有趣的Raspberry Pi项目
- openstack用户列表_什么是OpenStack超级用户?
- Less的条件表达式Guards
- 七.激光SLAM框架学习之A-LOAM框架---速腾Robosense-16线雷达室内建图
- 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程
- html设置数组的方法,js改变原数组的方法有哪些?
- win7 计算机 打开很慢,Win7电脑网上邻居(网络)打开速度慢的怎么解决?
- vue页面锚文本_Vue如何实现锚点定位功能?
- 面向对象之多态,魔法函数
- A smooth collaborative recommender system 推荐系统-浅显了解