问题标签 [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.
postgresql - WAL 级别不足以进行在线备份
我曾尝试使用 postgresql 在 linux 7.0 red hat 中进行数据库复制。
我参考了这个 URL 进行配置http://blog.terminal.com/postgresql-replication-and-backup-methods/我完成了这一步的步骤
- 配置从服务器
但步骤
- 初始复制
当我在 Master 中执行这个命令时
我得到了这样的错误
所以请让我知道我们错在哪里。
java - WAL模式下的Java SQLite:数据库被锁定
我在我的多线程应用程序中使用 SQLite。为了确保这不会导致问题,我将 SQLite 数据库设置为 WAL 模式。所有线程共享一个在运行时从不关闭的连接。但是,我在执行批处理时遇到了这个错误,我不知道为什么会这样。所有对数据库的写入都使用单线程执行器完成,读取在多个线程中完成。
提前致谢
java - 带有 java.lang.OutOfMemoryError(堆或 GC)的线程“OrientDB WAL 刷新任务”中的 OrientDB 2.1 异常
我在 OrientDB v.2.1 上使用 console.sh 进行选择。等待几分钟后,我得到以下输出:
我有 6GB 的可用 RAM,并且我使用的是默认配置。
我试图取消注释 JAVA_OPTS=-Xmx1024 将值更改为 4G,重新启动 orientdb 并再次运行查询...结果是:
我怎样才能修复它以获得结果?
更新:使用默认配置的 2.2 版同样的故事
sqlite - SQLite WAL 中的校验和算法是什么
我想知道 SQLite WAL 模式下的校验和算法我已经检查了 doc 文件,但它是这样说的(这张图片是在 sqlite doc 文件https://www.sqlite.org/fileformat2.html#section_4_1中捕获的)
我不明白“帧头的最后 8 个字节中的校验和值与 WAL 头的前 24 个字节和前 8 个字节以及所有帧的内容连续计算的校验和完全匹配是什么意思直到并包括当前帧“
我想更清楚地了解。
谢谢。
sqlite - How Sqlite3 recovery in WAL mode when system crash
I'm wondering about the recovery progress in SQLite (WAL mode). If system crash occurs, how SQLite knows 'I have to recovery using WAL file'? and what SQLite exactly do in recovery progress?
please help.
android - Android sqlite 预写日志记录不起作用
我在 Android 中使用 SQLiteOpenHelper 调用setWriteAheadLoggingEnabled(true);
基本上我每次都做一堆网络同步(每个都在他们自己的线程中,他们在他们的线程中调用下一个onPostExecute
)所以我想把它们都放在一个事务中,所以我打电话beginTransactionNonExclusive()
,在完成所有工作后我setTransactionSuccessful()
和最后阻止我调用 `endTransaction()'
但问题在于,在我的一些同步中,我需要从 db 读取一些行并将它们发布到服务器,所以我必须database.rawQuery(queryString, null);
使用select
as queryString 调用。一旦我的代码到达这里,我就开始在 logcat 中关注:
这不是setWriteAheadLoggingEnabled
为了什么吗?
也许我应该解释在主线程(启动事务)中执行选择查询没有问题,但是从另一个线程中选择会导致场景!
influxdb - 在 influxdb v0.13 中禁用 WAL 或强制刷新
我正在尝试使用 EFS(类似于 NFS 的弹性文件存储)在 AWS 上为 influxdb 设置一个简单的集群,其中 2 个不同的流入进程将共享数据库。我有 2 个 EC2 实例(名为:EC2_1、EC2_2)运行它们自己的 influxdb 进程。两个 EC2 实例都使用位于 /opt/efs 的名为“efs”的通用 EFS 目录挂载。我在两个 ec2 实例上修改了 influxdb.conf,使其指向通用的/opt/efs/influxdb/data 数据目录,/opt/efs/influxdb/wal为 wal,/opt/efs/influxdb/meta为元目录。
我试图通过这个实现的是,当 EC2_1 流入进程向数据库写入一些内容时,它可以立即被 EC2_2 上的流入进程读取。
为了实现这一点,我试图找出一个可以禁用 WAL 或使写入磁盘非常频繁(一次/秒)的设置,以便另一个进程可以直接从磁盘读取。读/写性能或数据丢失现在不是我主要关心的问题。
我尝试更改以下设置,希望它会使 WAL 刷新频繁,但它没有按我预期的方式工作:
如果 EC2_1 向 influxdb 写入内容,则查询 EC2_2 不会显示该数据,除非 EC2_2 上的 influxdb 进程重新启动,反之亦然。
android - SQLite:带有附加数据库的预写日志记录(WAL 日志模式)
在数据库优化方面,我们将数据库拆分为两个数据库:db 和 db2。低优先级后台线程正在插入 db2。db 上的一些查询是和 db2 连接的,所以我们需要将 db2 附加到 db。我们启用 WAL 是因为希望它都是多线程的。
为了理解这个问题,我们运行一个简单的两线程测试。第一个线程将行插入到 db 中,第二个线程正在从 db 中选择。每个线程打印上一个循环的时间增量和我们在数据库中的时间。
我们看到的是选择线程阻塞了插入线程。这可以通过做一个巨大的(和缓慢的)选择和一个小的插入来强调。您将看到插入时间和增量大约增加到选择时间。如果我们不运行慢线程,则插入线程会大大加快速度。
深入研究 SQLiteDatabase 的源代码,我发现以下行SQLiteDatabase#enableWriteAheadLogging()
:
现在我的问题:
评论的意义是什么?究竟是什么行不通?是遗留了一些旧代码吗?ATTACH DATABASE ( https://www.sqlite.org/lang_attach.html ) 的文档明确表明 ATTACH + WAL 是可以的(有一点警告。)
为什么 Android 绑定代码试图保护我们免受 SQLite 内部问题的影响?在我看来,它应该是一个薄的界面层。
编辑:我将此报告为AOSP 问题跟踪器中的一个错误。如果那里出现答案,将更新。
ios - 如何在 FMDB iOS 中启用预写日志记录?
我想在 FMDB 中启用预写日志记录。
我正在使用目标 c 和 iOS 8。
请帮助我。
postgresql - PostgreSQL 热备 WAL 文件恢复是如何触发的?
主服务器
备用服务器
我将主服务器复制/archive/*
到备用服务器,$PGDATA/pg_xlog
但没有任何反应。当我重新启动备用服务器时,我从服务器日志中收到错误消息:
问题:
/archive/*
只需将主服务器复制到备用服务器就足以将数据同步到备用服务器$PGDATA/pg_xlog
吗?如何以及何时在热备用服务器中触发 WAL 文件的恢复?备用服务器是否定期检查其
$PGDATA/pg_xlog
目录是否有新的 WAL 文件?还是我必须手动触发它?我说的是热备份,而不是流复制;所以我假设我不必配置
conninfo
. 我对吗?配置
hot_standby = on
并重新启动服务器后,我仍然可以毫无错误地进行操作INSERT
。如何配置使其真正只读?