Vaultwarden Wiki 中文版
⮐ Vaultwarden Wiki个人主页联系我
  • 关于
  • 首页
  • FAQ
    • 1.FAQ
    • 2.审计
    • 故障排除
      • 1.Bitwarden Android 故障排除
  • 容器镜像的使用
    • 1.容器镜像的选择
    • 2.启动容器
    • 3.更新 Vaultwarden 镜像
    • 4.使用 Docker Compose
    • 5.使用 Podman
  • 部署
    • 1.构建您自己的镜像
    • 2.构建二进制
    • 3.预构建二进制
    • 4.第三方包
    • 5.部署示例
    • 6.代理示例
    • 7.转储示例
    • HTTPS
      • 1.启用 HTTPS
      • 2.使用 Let's Encrypt 证书运行私有 Vaultwarden 实例
  • 配置
    • 1.配置概述
    • 2.禁用新用户注册
    • 3.禁用邀请
    • 4.启用管理页面
    • 5.禁用管理令牌
    • 6.启用 WebSocket 通知
    • 7.启用移动客户端推送通知
    • 8.启用 U2F 和 FIDO2 WebAuthn 身份验证
    • 9.启用 YubiKey OTP 身份验证
    • 10.更改持久性数据位置
    • 11.更改 API 请求大小限制
    • 12.更改 worker 数量
    • 13.SMTP 配置
    • 14.显示密码提示
    • 15.禁用或覆盖密码库接口托管
    • 16.日志记录
    • 17.设置为 systemd 服务
    • 18.从 LDAP 同步用户
    • 19.使用备用基本目录(子目录/子路径)
    • 20.其他配置
    • *使用 systemd docker 运行
    • 数据库
      • 1.使用 MariaDB (MySQL) 后端
      • 2.使用 PostgreSQL 后端
      • 3.在未启用 WAL 的情况下运行
      • 4.从 MariaDB (MySQL) 迁移到 SQLite
    • 安全
      • 1.强化指南
      • 2.Fail2ban 设置
      • 3.Docker Traefik ModSecurity 设置
    • 其他
      • 1.翻译电子邮件模板
      • 2.翻译管理页面
      • 3.自定义 Vaultwarden CSS
  • 备份
    • 1.通用(非 docker)
  • 其他
    • 1.从 Keepass 或 KeepassX 导入数据
    • 2.备份您的密码库
    • 3.与上游 API 实现的区别
    • 4.支持上游的发展
    • 5.使用 Cloudflare DNS 的 Caddy 2.x
    • 6.Git hooks
    • *使用非 root 用户运行 docker 容器
    • *使私有 CA 和自签名证书兼容 Chrome
    • *测试 SSO
由 GitBook 提供支持
在本页
  • 关闭 WAL 的原因
  • 关闭 WAL 的步骤
  • 0、执行备份
  • 1、在低版本数据库上禁用 WAL
  • 2、在 vaultwarden 中禁用 WAL
  • 如何开启 WAL
  1. 配置
  2. 数据库

3.在未启用 WAL 的情况下运行

上一页2.使用 PostgreSQL 后端下一页4.从 MariaDB (MySQL) 迁移到 SQLite

最后更新于1个月前

对应的

WAL 是专用于 SQLite 的设置,它在 Postgres 或 MySQL 上不起作用;如果您使用这些后端之一,则 ENABLE_DB_WAL 配置选项无效。

默认情况下,vaultwarden 在启动期间将尝试为数据库启用 。添加此功能可以提高性能,并且在某些情况下有助于避免请求失败。

关闭 WAL 的原因

一般而言,除非您相当确定需要关闭 WAL,否则应将其保持为启用状态。但是,可能有一些情况需要将其关闭,比如:

  • 某些文件系统不支持 WAL(对于网络文件系统尤其如此)。如果您使用的是这样的文件系统,该服务将无法启动并显示 Failed to turn on WAL 错误。

  • (要启用 WAL)数据库要求 sqlite 的版本为 3.7.0 或更高,因此,出于某种原因(例如备份)您需要使用无法更新的低版本工具来直接访问数据库,此时也需要禁用 WAL。

  • 某个也会影响您(不得不禁用 WAL)。

关闭 WAL 的步骤

0、执行备份

这些更改通常是安全的,可以顺利完成并且不会丢失数据,但是强烈建议在进行任何更改之前。

1、在低版本数据库上禁用 WAL

如果您使用启用了 WAL 的低版本数据库,则需要使用 sqlite 来禁用它:

1)停止 vaultwarden

3)使用 sqlite 打开此文件:

sqlite3 db.sqlite3

4)键入 PRAGMA journal_mode=delete; 并按 Enter,以禁用 WAL:

sqlite> PRAGMA journal_mode=delete;
delete

5)键入 .quit 并按回车退出 sqlite 实用程序(注意前面的点)。

2、在 vaultwarden 中禁用 WAL

要关闭 WAL,您需要通过将 ENABLE_DB_WAL 变量的值设置为 false 来启动 vaultwarden。

docker run -d --name vaultwarden \
  -e ENABLE_DB_WAL=false \
  -v /vw-data/:/data/ \
  -p 80:80 \
  vaultwarden/server:latest

如何开启 WAL

通常来说,只要您在未将 ENABLE_DB_WAL 变量的值设置为 false 的情况下启动 vaultwarden,服务器将自动为您启用 WAL。您可以通过运行以下命令进行验证:

sqlite3 db.sqlite3 'PRAGMA journal_mode'

db.sqlite3 是 vaultwarden 所使用的数据库文件。此命令将报告当前使用的模式,在我们的例子中将返回 wal。如果已禁用 WAL,默认通常返回 delete 。

2)定位您的。除非您指定了其他名称,否则这里通常会有一个名为 db.sqlite3 的文件。

确保在启动前始终使用了此变量,否则一旦没有此变量将会再次启用 WAL(如果发生这种情况,请从开始再次禁用它)。

官方页面地址
WAL
这里描述的缺陷
备份您的数据
数据文件夹
第 1 步