当前位置: 首页 > wzjs >正文

长治网站制作怎么做网站快照怎么更新

长治网站制作怎么做,网站快照怎么更新,屏蔽wordpress自带编辑器,Wordpress网站删除多余主题PostgreSQL的扩展(extensions)-常用的扩展-pg_dirtyread pg_dirtyread 是 PostgreSQL 的一个特殊扩展,它允许读取已被删除但尚未被 VACUUM 清理的数据行,是数据恢复的重要工具。 原理: pg_dirtyread 通过直接访问表的…

PostgreSQL的扩展(extensions)-常用的扩展-pg_dirtyread

pg_dirtyread 是 PostgreSQL 的一个特殊扩展,它允许读取已被删除但尚未被 VACUUM 清理的数据行,是数据恢复的重要工具。

原理:
pg_dirtyread 通过直接访问表的底层页面,绕过 PostgreSQL 正常的可见性规则检查:

  • 读取表的物理页面数据
  • 忽略 xmax 标记(删除事务ID)
  • 返回所有行版本,包括被删除的行

时间窗口限制:

  • 只能读取尚未被 VACUUM 清理的数据
  • 常规表:通常保留几小时到几天
  • 频繁更新的表:保留时间更短

不支持的场景:

  • TRUNCATE 操作删除的数据
  • DROP TABLE 删除的表
  • 已执行 VACUUM FULL 的表

一 下载并编译安装

1.1 下载

在这里插入图片描述

下载网址:
https://github.com/df7cb/pg_dirtyread/tags

1.2 编译安装

make
make install

1.3 创建 pg_dirtyread

–修改postgresql.conf文件

shared_preload_libraries = 'pg_stat_kcache,pg_stat_statements,auto_explain,pg_dirtyread'        # (change requires restart)

–创建extension

white=# create extension pg_dirtyread;
CREATE EXTENSION
white=# 
white=# select * from pg_EXTENSION;oid  |      extname       | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition 
-------+--------------------+----------+--------------+----------------+------------+-----------+--------------14270 | plpgsql            |       10 |           11 | f              | 1.0        |           | 17620 | pg_repack          |       10 |         2200 | f              | 1.5.0      |           | 17659 | pg_stat_statements |       10 |         2200 | t              | 1.10       |           | 17739 | pgstattuple        |       10 |         2200 | t              | 1.5        |           | 17840 | pg_bulkload        |       10 |         2200 | f              | 3.1.21     |           | 17861 | pg_dirtyread       |       10 |         2200 | t              | 2          |           | 
(6 rows)

二 测试

2.1 测试一:先delete,再关闭表的autovacuum。(找回失败)

white=# select count(*) from yewu1.t3;count 
-------100
(1 row)white=# 
white=# delete from yewu1.t3 where id >10;
DELETE 90
white=# 
white=# select count(*) from yewu1.t3;count 
-------10
(1 row)white=# ALTER TABLE yewu1.t3 SET (
white(#       autovacuum_enabled = false, toast.autovacuum_enabled = false
white(#     );
ALTER TABLE
white=# 
white=# SELECT * FROM pg_dirtyread('yewu1.t3') as t(id int, name varchar(20));id |  name   
----+---------1 | haha_12 | haha_23 | haha_34 | haha_45 | haha_56 | haha_67 | haha_78 | haha_89 | haha_910 | haha_10
(10 rows)white=# 

2.2 测试二:先关闭表的autovacuum,再delete。(找回成功)

white=# select count(*) from yewu1.t3;count 
-------100
(1 row)white=# ALTER TABLE yewu1.t3 SET (
white(#       autovacuum_enabled = false, toast.autovacuum_enabled = false
white(#     );
ALTER TABLE
white=# 
white=# delete from yewu1.t3 where id > 10;
DELETE 90
white=# 
white=# select count(*) from yewu1.t3;count 
-------10
(1 row)white=# 
white=# SELECT * FROM pg_dirtyread('yewu1.t3') as t(id int, name varchar(20));id  |   name   
-----+----------1 | haha_12 | haha_23 | haha_34 | haha_45 | haha_5
。。。省略。。。96 | haha_9697 | haha_9798 | haha_9899 | haha_99100 | haha_100
(100 rows)white=# 
white=# 

查看autovacuum默认配置
在默认配置下,表发生较小的变化就会触发autovacuum,进而影响pg_dirtyread,减少了其可用性。

#autovacuum_work_mem = -1               # min 1MB, or -1 to use maintenance_work_mem
#log_autovacuum_min_duration = 10min    # log autovacuum activity;
#autovacuum = on                        # Enable autovacuum subprocess?  'on'
#autovacuum_max_workers = 3             # max number of autovacuum subprocesses
#autovacuum_naptime = 1min              # time between autovacuum runs
#autovacuum_vacuum_threshold = 50       # min number of row updates before
#autovacuum_vacuum_insert_threshold = 1000      # min number of row inserts
#autovacuum_analyze_threshold = 50      # min number of row updates before
#autovacuum_vacuum_scale_factor = 0.2   # fraction of table size before vacuum
#autovacuum_vacuum_insert_scale_factor = 0.2    # fraction of inserts over table
#autovacuum_analyze_scale_factor = 0.1  # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000  # maximum XID age before forced vacuum
#autovacuum_multixact_freeze_max_age = 400000000        # maximum multixact age
#autovacuum_vacuum_cost_delay = 2ms     # default vacuum cost delay for# autovacuum, in milliseconds;
#autovacuum_vacuum_cost_limit = -1      # default vacuum cost limit for# autovacuum, -1 means use

谨记:心存敬畏,行有所止。

http://www.dtcms.com/wzjs/605871.html

相关文章:

  • 为网站开发uwp应用企业网站建设后期维护费用
  • 建设flash网站四川城乡和住房建设厅网站首页
  • 宜昌市建设监理协会网站网站建设公司 2018
  • 找人做试管婴儿的网站个人如何做跨境电商?
  • 嘉兴企业做网站别人的做网站
  • 网站优化推广方法代理做网站
  • 检查网站死链接百度知道答题赚钱
  • 宁波智能模板建站南宁网站建设方案报价
  • 网站建设与管理模拟试卷企业网站html
  • 东莞 企业网站建设专门做餐厅设计的网站
  • 网站域名提交重庆建设人才网站
  • 拖拽式网站建设费用网站建设招聘兼职
  • 外贸建设网站制作怎样在内网建设一个网站
  • 广州机械网站开发永嘉专业网站设计公司
  • 枣阳网站定制网站开发规范有哪些
  • 自己用iis怎么建设网站照片做视频ppt模板下载网站
  • 如何在网站上做qq群链接移动宽带续费多少钱
  • 适合新手做网站的唯品会一家专门做特卖的网站
  • 网站开发及运营成本成都网站建设易维达好
  • 网站结构怎么优化网站维护一般怎么做
  • 做植物网站公司网站没有备案是不是违法的
  • 网站迁移后 后台进不去nginx伪静态 wordpress
  • 网站需要服务器网站开发工具 哪个好
  • 做门户网站好还是论坛好东阿县城市建设局网站
  • 南宁企业网站建设技术公司网站图片快速加载
  • 山东建设执业资格注册中心网站有帮忙做儿童房设计的网站吗
  • 中国做外贸网站site网站连通率0%怎么解决
  • 网站网络优化网站建设项目售后服务承诺
  • 请问那个网站做推广好点河北省网站建设.
  • wordpress 2栏主题郑州网站优化seo