问题标签 [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.
c# - 如何在 WAL 模式下打开 SQLite 连接
在 C# 中,如何在 WAL 模式下打开 SQLite 连接?
这是我在正常模式下打开的方式:
postgresql - 如何使用 pg_archivecleanup 按文件年龄或日期指定清理
有没有办法按年龄或日期指定文件,而不是通过硬编码名称来使用 pg_archivecleanup 命令清理 WAL 档案?
例如,使用以下命令非常简单:
其中 000000010000004600000045 是文件名,之前创建的任何文件都将被删除。
但是,如果我想自动化该过程,则必须有一种按年龄/日期选择文件的方法。
postgresql - PostgreSQL 9.2 归档恢复后最后重放的 WAL
按照 PostgreSQL 9.2 官方文档,我在我的 postgres.conf 文件上设置了连续归档:
成功备份和恢复后,启动数据库时归档命令失败,因为 PostgreSQL 正在尝试归档最后重放的 WAL 文件,显然,它已经被归档。我的 recovery.conf 文件如下:
这是我尝试启动数据库时遇到的错误:
这是预期的行为吗?最后重放的 WAL 文件是否应该在恢复后存档?如果是这样,如果文件已经存档(如文档中所述),则存档命令不应失败。
sqlite - -wal 文件在 SQLite 中消失的后果?
如果使用预写日志记录的 SQLite 数据库被未检查点的事务中断(由于电源故障或其他原因),然后在缺少临时 -wal 文件的情况下重新打开,数据库是否会干净地打开到上一个检查点时的状态,还是会以某种方式损坏?
我们正在尝试让 SQLite 与 iCloud 一起工作(是的,我们知道你不应该这样做,但我们还制作了一个 Windows 和一个 Android 应用程序,并且需要一个跨平台的数据库解决方案),我们认为 WAL 提供避免维护我们数据库的两个副本的潜在方法 - 我们将 -wal 文件保存在 iCloud 之外,但将主数据库存储在其中,从而避免 iCloud 备份回滚日志(或备份数据库中途-没有这些日志的交易)。
postgresql-9.1 - 恢复postgres db时压缩xlog?
对于postgres,
我使用“pg_dump”转储数据库,然后使用“psql”在另一台服务器上恢复数据库。我发现在 pg_xlog/ 创建了大量的 WAL 日志,这消耗了大量的磁盘空间。
postgres 有没有办法自动压缩这些 WAL 日志?
我在 postgres 的手册中看到了“archive_command”设置。这是正确的方向吗?
杨
sqlite - 带有 WAL 的 ios7 sqlite 数据库从不同步主数据库文件
我已经阅读了很多关于 ios7 SQLite / Core Data 堆栈中新的 WAL 默认设置的线程。
首先,这看起来是个好主意......虽然我需要根据我的业务需求不时将数据库复制到远程 Web 服务。目前我只备份 SQLITE 文件,不能将另外 2 个文件添加到我正在使用的 web 服务操作中。这意味着我的备份显然不是最新的,因此毫无意义。
其他人建议我应该使用 journal_mode=DELETE (NSSQLitePragmasOption) 禁用 WAL,对我来说,这是一个可以接受的解决方法。不过,我对此感到不舒服。感觉就像我错过了一个相当不错的性能提升。
理想情况下,我希望能够告诉 Core Data / SQLite 将 SHM/WAL 同步到主数据文件,然后执行备份。有没有办法在不挖掘疯狂的私有或无证 API 的情况下做到这一点?
postgresql - Postgres wal 归档延迟
我注意到archive_command 执行的滞后。该命令配置为在存档段上设置标志:
如果我运行ls
,我会看到很多段没有存档:
这是正确的行为吗?如何保存这些最后的片段以免在服务器崩溃时丢失它们?
sqlite - 如何将 SQLite 3.7 WAL 文件的内容合并到主数据库文件中
在SQLite 3.7 中启用WAL(预写日志)(这是 iOS 7 上 Core Data 的默认设置),我如何将 -wal 文件中的内容合并/提交回主数据库文件?
database - 当另一个用户运行程序时,SQLite WAL/SHM 没有被删除
在 Linux 系统上,我有一个使用预写日志记录创建的 SQLite 数据库,例如,由用户“bob”创建。
/home/bob/sqliteTest/test.db
我还有一个已编译的程序,称为“sqliteTest”,其中包含 sqlite 命令。
如果用户“bob”运行 sqliteTest 程序,它将运行完成,并且 test.db 所在的目录中没有 wal shm 文件。
为了允许其他用户访问 test.db,我允许每个人都拥有对 sqliteTest 目录的写/执行权限。
因此,用户“joe”出现并决定运行 sqliteTest 程序。"joe" 运行程序直到完成,但是当他完成时,wal 和 shm 文件仍然保留在目录中,所有者为 "joe",只读,除了可由 "joe" 写入。
就像我说的,我已经更改了允许任何人写入/执行的权限。所以,这真的难倒我。如果“bob”用户在该过程完成后没有这些文件,那么代码似乎正在正确地清理自己。谢谢你的帮助!凯文乙
c# - 在 C# 中创建具有排他锁的 SQLite 数据库
我正在尝试创建一个日志模式设置为 WAL 的数据库,并通过将锁定模式设置为 EXCLUSIVE 来禁用共享内存,但我似乎无法使其工作。
我的连接字符串如下所示:
当我启动应用程序并创建数据库时,我仍然得到一个 shm 文件,我认为在使用 EXCLUSIVE 作为锁定模式时不会发生这种情况。我还可以在多个应用程序中打开数据库,因此似乎没有设置独占锁。
如果有人能对这种情况有所了解,我将不胜感激。
编辑说我正在使用 System.Data.SQLite v-1.0.74.0,它正在使用 SQLite v-3.7.7.1,因此应该在 WAL 模式下禁用共享内存。