标签: wal

如何将SQLite 3.7 WAL文件的内容合并到主数据库文件中

随着WAL(预写式日志记录)在SQLite的3.7启用(这是iOS上的7对核心数据的默认值),我该如何合并/提交从-wal文件中的内容返回到主数据库文件?

sqlite wal ios7

21
推荐指数
2
解决办法
1万
查看次数

在 PostgreSQL 13 上更改“wal_level”(通过客户端会话)未得到尊重

在正在运行的 PostgreSQL 13 实例上,我尝试按如下方式修改其wal_level系统设置,但它没有得到尊重:

postgres@localhost:postgres> SHOW wal_level
+-------------+
| wal_level   |
|-------------|
| replica     |
+-------------+
SHOW
Time: 0.021s

postgres@localhost:postgres> ALTER SYSTEM SET wal_level = logical;
ALTER SYSTEM
Time: 0.007s

postgres@localhost:postgres> SHOW wal_level
+-------------+
| wal_level   |
|-------------|
| replica     |
+-------------+
SHOW
Time: 0.021s

postgres@localhost:postgres>

Run Code Online (Sandbox Code Playgroud)

不幸的是,这是由 Postgres 人员在 DockerHub 映像中设置的,因此仅修改配置文件并重新启动并不简单。事实上,解决方法是可以完成的,但我希望社区能够建议一种通过 Postgres 客户端会话实时完成此操作的方法。

编辑(下面的评论补充)

postgres@localhost:postgres> select * from pg_settings where name ='wal_level';
--+-----------------------------------+------------+-------------+--------------+--------------+-------------------+
  | enumvals                          | boot_val   | reset_val   | sourcefile   | sourceline   | pending_restart   |
--+-----------------------------------+------------+-------------+--------------+--------------+-------------------| …
Run Code Online (Sandbox Code Playgroud)

sql postgresql wal

13
推荐指数
3
解决办法
4万
查看次数

如何在WAL模式下打开SQLite连接

在C#中,如何在WAL模式下打开SQLite连接?

以下是我在正常模式下打开的方式:

SQLiteConnection connection = new SQLiteConnection("Data Source=" + file);
connection.Open();
// (Perform my query)
Run Code Online (Sandbox Code Playgroud)

c# sqlite wal

11
推荐指数
4
解决办法
1万
查看次数

如何禁用WAL日志模式

https://developer.apple.com/library/ios/releasenotes/DataManagement/WhatsNew_CoreData_iOS/

我在禁用日记模式时遇到问题.

我的代码是:

static NSManagedObjectContext *managedObjectContext(){
static NSManagedObjectContext *context = nil;
if (context != nil) {
    return context;
}

NSString * const NSSQLitePragmasOption;

NSSQLitePragmasOption : @{ @"journal_mode" : @"DELETE" };


@autoreleasepool {
    context = [[NSManagedObjectContext alloc] init];

    NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel()];
    [context setPersistentStoreCoordinator:coordinator];

    NSString *STORE_TYPE = NSSQLiteStoreType;

    NSString *path = @"ExerciseDB";
    NSURL *url = [NSURL fileURLWithPath:[path stringByAppendingPathExtension:@"sqlite"]];





    NSError *error;
    NSPersistentStore *newStore = [coordinator addPersistentStoreWithType:STORE_TYPE configuration:nil URL:url options:NSSQLitePragmasOption error:&error];

    if (newStore == nil) {
        NSLog(@"Store Configuration Failure %@", ([error …
Run Code Online (Sandbox Code Playgroud)

core-data pragma persistent-storage wal ios7

10
推荐指数
2
解决办法
8038
查看次数

SQLITE数据库WAL文件大小持续增长

我正在连续写入一个数据库文件,该文件的 PRAGMAjournal_mode=WAL,PRAGMAjournal_size_limit=0。我的 C++ 程序有两个线程,一个读取器(以 15 秒间隔查询)和一个写入器(以 5 秒间隔插入)。

每 3 分钟,我都会暂停插入,以从编写器线程运行 sqlite3_wal_checkpoint_v2(),模式参数为 SQLITE_CHECKPOINT_RESTART。为了确保此时没有正在进行任何活动的读取操作,我设置了一个即将发生检查点的标志,并在运行检查点之前等待读取器完成(连接仍然打开)。检查点完成后,我再次向读者表明可以恢复查询。

sqlite3_wal_checkpoint_v2()返回SQLITE_OK,并且pnLog和Ckpt相等(大约4000),表明完整的wal文件已与主数据库文件同步。所以接下来的编写应该根据文档从头开始。然而,这似乎并没有发生,因为后续写入会导致 WAL 文件无限增长,最终达到一些 GB。

我做了一些搜索,发现读者可能会因开放事务而导致检查点失败。然而,我使用的唯一读取器是在检查点开始之前结束其事务。还有什么可能阻止 WAL 文件不增长?

sqlite wal

10
推荐指数
1
解决办法
6978
查看次数

在Android Pie中禁用sqlite预写日志记录

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

适用于应用程序的兼容性WAL(预写日志)

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


有关该问题的更多详细信息

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

从资产文件夹复制SQLite数据库

不幸的是,一旦我开始使用SqlDroid写入数据库,就会启用wal,原始数据库中的表将消失,仅保留任何新创建的表。但是,数据库的大小仍为20mb +。所有数据库错误均归因于缺少表。表格复制和写入方法可以在Pie之前的Android版本中完美运行。

sqlite android wal sqldroid

8
推荐指数
2
解决办法
2293
查看次数

禁用普罗米修斯崩溃时的 wal 重放

有没有办法在 Prometheus 崩溃时禁用 WAL 重播?

由于 WAL 重播,pod 需要一段时间才能恢复:

如果这意味着崩溃后更快的恢复,我们可以承受失去一些指标的损失。

level=info ts=2021-04-22T20:13:42.568Z caller=head.go:714 component=tsdb msg="WAL segment loaded" segment=449 maxSegment=513
level=info ts=2021-04-22T20:13:57.555Z caller=head.go:714 component=tsdb msg="WAL segment loaded" segment=450 maxSegment=513
level=info ts=2021-04-22T20:14:12.222Z caller=head.go:714 component=tsdb msg="WAL segment loaded" segment=451 maxSegment=513
level=info ts=2021-04-22T20:14:25.491Z caller=head.go:714 component=tsdb msg="WAL segment loaded" segment=452 maxSegment=513
level=info ts=2021-04-22T20:14:39.258Z caller=head.go:714 component=tsdb msg="WAL segment loaded" segment=453 maxSegment=513
Run Code Online (Sandbox Code Playgroud)

crash metrics wal kubernetes prometheus

7
推荐指数
1
解决办法
1万
查看次数

我可以从WAL存档文件夹中安全删除哪些Postgresql WAL文件

现在的情况

所以我在运行Postgres的数据记录计算机上将WAL归档设置为独立的内部硬盘.包含WAL档案的硬盘正在填满,我想将所有WAL档案文件(包括初始基本备份)删除并存档到外部备份驱动器.

目录结构如下:

D:/ WALBACKUP /是所有WAL文件的父文件夹(00000110000.CA00000004等)

D:/ WALBACKUP/BASEBACKUP /保存初始基本备份的.tar

我的问题是:

  • 除了当前的WAL归档文件(000000000001.CA0000 ..等)(包括基本备份),我可以安全地移动每个WAL文件,并将它们移动到另一个硬盘.(注意数据库是实时的并且正在接收数据)

干杯!

postgresql archiving wal

6
推荐指数
3
解决办法
2万
查看次数

如何将postgresql wal日志文件解析为sql

PostgreSQL数据库服务器在WAL日志文件中存储"更改数据",我想将存档日志文件mysqlbinlog 解析为sql,如 解析binlog文件到sql,我可以找到应用程序执行sql.有没有人有这样的工具?

postgresql wal

5
推荐指数
1
解决办法
3710
查看次数

逻辑复制槽的restart_lsn位置移动非常慢

我们的 postgresql 数据库(版本 11)实例中有两个逻辑复制槽,我们使用 pgJDBC 从这两个槽传输数据。我们确保定期发送反馈并将两个插槽的confirmed_flush_lsn(每10分钟)更新到同一位置。然而,从我们的数据中我们可以看出,两者的 restart_lsn 动作并不同步,并且大多数时候其中一个落后太多,无法不必要地保存 WAL 文件。以下是一些数据点来表明问题

Thu Dec 10 05:37:13 CET 2020
                      slot_name       |  restart_lsn  | confirmed_flush_lsn 
--------------------------------------+---------------+---------------------
 db_dsn_metadata_src_private          | 48FB/F3000208 | 48FB/F3000208
 db_dsn_metadata_src_shared           | 48FB/F3000208 | 48FB/F3000208
(2 rows)



Thu Dec 10 13:53:46 CET 2020
                      slot_name      |  restart_lsn  | confirmed_flush_lsn 
-------------------------------------+---------------+---------------------
 db_dsn_metadata_src_private         | 48FC/2309B150 | 48FC/233AA1D0
 db_dsn_metadata_src_shared          | 48FC/233AA1D0 | 48FC/233AA1D0
(2 rows)


Thu Dec 10 17:13:51 CET 2020
                      slot_name      |  restart_lsn  | confirmed_flush_lsn 
-------------------------------------+---------------+---------------------
 db_dsn_metadata_src_private         | 4900/B4C3AE8  | 4900/94FDF908
 db_dsn_metadata_src_shared          | 48FD/D2F66F10 | 4900/94FDF908 …
Run Code Online (Sandbox Code Playgroud)

postgresql stream wal pg-jdbc logical-replication

5
推荐指数
0
解决办法
1405
查看次数