问题标签 [wal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
616 浏览

node.js - 从节点连接到逻辑复制/流式传输还是转到?

有没有办法使用 node 或 go 连接/订阅 Postgres 逻辑复制/流复制?我知道它是一个 TCP/IP 连接,但不知道从哪里开始。我也知道有一个包,想知道更多的香草/理解解决方案。

0 投票
2 回答
1739 浏览

postgresql - postgres中的日志序列号真的单调吗?

在阅读 postgreSQL 文档时:

WAL 记录会在写入每个新记录时附加到 WAL 日志中。插入位置由日志序列号 (LSN) 描述,该序列号是日志中的字节偏移量,随着每个新记录单调增加。LSN 值作为数据类型 pg_lsn 返回。可以比较值来计算将它们分开的 WAL 数据量,因此它们用于衡量复制和恢复的进度。

我们可以相信这个序列号是严格单调的吗?没有时间点将此偏移量重置为先前的位置(由于 WAL 存档或其他类型的操作)吗?

0 投票
5 回答
5417 浏览

android - 在 Android Pie 中禁用 sqlite Write-Ahead 日志记录

在 Android Pie 中,sqlite 预写日志 (WAL) 默认已启用。这仅在 Pie 设备中导致我现有代码的错误。由于我访问数据库的方式,我SQLiteDatabase.disableWriteAheadLogging()无法成功关闭 WAL 。PRAGMA journal_mode我想使用名为db_compatibility_wal_supported的 Android 设置完全禁用 WAL :

应用程序的兼容性 WAL(预写日志记录)

有谁知道如何配置这个?我不知道这个文件是否可以在启动时以编程方式更改,或者是否可以手动更改。


有关问题的更多详细信息

我的应用程序中有一个 sqlite 数据库(20mb+ / 250k 记录)。这个数据库是在我的服务器上使用纯 java 生成的。它包含一个食物数据库,应用程序的用户可以添加到数据库中(并且服务器已更新)。这存储在 android 的 assets 文件夹中。在第一次安装期间,数据库从 assets 复制到 app 文件夹,以便可以写入,有效地使用以下方法:

从 assets 文件夹复制 SQLite 数据库

不幸的是,一旦我开始使用 SqlDroid 写入数据库,wal 就会启用,并且原始数据库中的表已经消失,只剩下任何新创建的表。然而,数据库的大小仍然是 20mb+。所有数据库错误都是由于缺少表。表格复制和写入方法在 Pie 之前的 Android 版本中完美运行。

0 投票
1 回答
587 浏览

c# - sqlite 增量数据每 5 分钟备份一次

我正在使用sqlite数据库来存储我的数据,这是一个不断写入数据库的应用程序。(示例 Windows perf 数据每 5 分钟一次)

我需要的,

  1. 每 5 分钟获取所有数据增量并移动到某个日志/文本文件
  2. 从数据库中删除成功移动到日志/文本文件的那条数据sqlite

在将数据写入数据库时​​,我生成了以下 3 个文件。

  1. 我的数据.db
  2. MyData.db-shm
  3. MyData.db-wal

我知道可能基于上次事件插入时间,查询数据,处理和删除,最后一次存储在某个地方,下次从该点开始读取。

我有一种方法可以Wal每 5 分钟以增量方式复制文件以跳过 C# 的读取/删除操作?

我也愿意更改 Maria 等数据库,如果其他数据库提供这种解决方案等,请提出建议。

0 投票
1 回答
544 浏览

postgresql - Postgres 11 Standby 永远赶不上

自从升级到 Postgres 11 后,我的生产备用服务器无法赶上。在日志中,事情最终看起来很好:

但是以下查询表明一切都不好:

一段时间后(几个小时)replication_delay保持不变但replication_delay_gbytes会增长,尽管音符replication_delay从一开始就落后并replication_delay_gbytes开始于 附近0。在启动期间,有许多这样的消息:

但谷歌搜索表明这些都很好。

副本是使用 repmgr 创建的,方法是运行pg_basebackup以执行克隆,然后启动副本并看到它赶上。这以前与 Postgres 10 一起使用。

关于为什么这个复制品出现但永远落后的任何想法?

0 投票
1 回答
575 浏览

rds - wal-e/wal-g 通过 S3 进行简单备份和恢复的任何好处

我正在使用 AWS RDS,并且需要将 RDS 实例中的“database_a”复制到不同 RDS 实例中的“database_a”。复制只需每 24 小时一次。

我目前正在使用 pg_dump 和 pg_restore 解决这个问题,但我想知道是否有更好(即更快/更有效)的方式来处理事情。

使用 wal-e/g 和 RDS,我的用例是否可以简单地推送过去 24 小时内的最新更改?2 个 RDS 无法相互通信,因此所有连接都将通过 S3。我不清楚文档的意思是“在将备份上传到 S3 时,用户应该传入包含由 Postgres 启动的备份的路径:” - 这是否意味着我可以为我的 EC2 创建一个 pg 备份,然后指向 wal- g 在这个备份?

最后,是否有可能只使用 wal-e/g 进行完整备份(即非增量),就像我现在使用 pg_dump/pg_restore 所做的那样,这样做我会看到通过切换来提高速度吗?

提前致谢,

0 投票
1 回答
122 浏览

postgresql - 使用 WAL 进行主从复制:Postgres uuid_generate_v4() 生成主键

我正在使用以下模式在 postgres 中创建用户表:

uuid是类型的主键uuid。我uuid_generate_v4()用来生成 uuid 值。

我现在不在复制模式下使用 Postgres。
但是后来,当我开始使用复制(很可能是 WAL 流复制)时,这会在我添加副本时导致问题吗?
这是否类似于使用非确定性函数 (time now()) 的情况?

同一用户的主副本和副本之间的 uuid 值是否可以不同(不确定 uuid 是否写入 WAL,我的假设是不应该写入)?

此外,自动增量键如何在主从之间保持同步,是否通过以与主控相同的顺序重播/插入行来保持同步?

0 投票
1 回答
769 浏览

postgresql - 预写日志记录如何提高 Postgres 中的 IO 性能?

我一直在阅读 Postgres 手册的WAL 章节,并且对章节的一部分感到困惑:

使用 WAL 会显着减少磁盘写入次数,因为只需要将日志文件刷新到磁盘以保证事务被提交,而不是事务更改的每个数据文件。

与简单地写入表/索引数据本身相比,连续写入 WAL 的性能如何?

正如我所见(暂时忘记 WAL 的弹性优势)postgres 需要完成两个磁盘操作;第一个 pg 需要提交到磁盘上的 WAL,然后您仍然需要更改表数据以与 WAL 保持一致。我确信我误解了这个的一个基本方面,但似乎在客户端事务和表数据的最终状态之间添加一个额外的步骤实际上并不能提高整体性能。提前致谢!

0 投票
0 回答
1724 浏览

postgresql - PostgreSQL 逻辑复制堆栈错误“无法从 WAL 流接收数据:服务器意外关闭连接”

我在 AWS rd 上的 2 个 PostgreSQL 服务器(x86_64-pc-linux-gnu 上的 PostgreSQL 10.6,由 gcc (GCC) 4.8.3 20140911(Red Hat 4.8.3-9),64 位编译)之间建立了逻辑复制

在向主服务器添加一些数据后,副本端数据无法更新,复制延迟增长到几 Gb 大小。

试图将 wal_sender_timeout 的值增加到 300000

检查复制槽滞后的脚本

删除并重新创建订阅有所帮助,但正在寻找成本更低的解决方案

0 投票
1 回答
487 浏览

postgresql - 使用 WAL 进行 postgres 备份

我绝不是数据库管理员,所以如果我做错了,请不要开枪...

我必须将一些归档添加到高效的 p​​ostgres 数据库(docker 容器中的最新版本)并尝试构建一些脚本以与 WAL 一起使用。

这个想法是有一个每周脚本,它对一个新目录进行完整备份,然后创建一个指向这个新目录的符号链接,WAL 脚本使用这个符号链接来写入它的日志。此外,每周脚本将删除超过 30 天的旧备份。

我很乐意对此发表任何评论...

数据库设置

每周脚本:

存档脚本:

先感谢您