docker - 计算机崩溃时如何恢复 Tarantool docker?
问题描述
我在使用 docker compose 启动 tarantool 时得到了这个:
tarantool_1 | Loading existing configuration file: /etc/tarantool/config.yml
tarantool_1 | Config:
tarantool_1 | ---
tarantool_1 | force_recovery: false
tarantool_1 | memtx_dir: /var/lib/tarantool
tarantool_1 | listen: 3301
tarantool_1 | pid_file: /var/run/tarantool/tarantool.pid
tarantool_1 | vinyl_dir: /var/lib/tarantool
tarantool_1 | wal_dir: /var/lib/tarantool
tarantool_1 | ...
tarantool_1 |
tarantool_1 | 2021-01-25 15:36:42.907 [1] main/103/tarantool-entrypoint.lua C> Tarantool 2.7.1-0-g3ac498c9f
tarantool_1 | 2021-01-25 15:36:42.907 [1] main/103/tarantool-entrypoint.lua C> log level 5
nats_1 | [1] 2021/01/25 15:36:42.975913 [INF] Listening for route connections on 0.0.0.0:6222
tarantool_1 | 2021-01-25 15:36:42.908 [1] main/103/tarantool-entrypoint.lua I> mapping 268435456 bytes for memtx tuple arena...
tarantool_1 | 2021-01-25 15:36:42.908 [1] main/103/tarantool-entrypoint.lua I> Actual slab_alloc_factor calculated on the basis of desired slab_alloc_factor = 1.044274
tarantool_1 | 2021-01-25 15:36:42.908 [1] main/103/tarantool-entrypoint.lua I> mapping 134217728 bytes for vinyl tuple arena...
tarantool_1 | 2021-01-25 15:36:42.909 [1] main/103/tarantool-entrypoint.lua I> instance uuid 68029509-9446-40c2-a72e-a69079889474
tarantool_1 | 2021-01-25 15:36:42.909 [1] main/103/tarantool-entrypoint.lua xlog.c:1945 E> can't open tx: invalid magic: 0x0
tarantool_1 | 2021-01-25 15:36:42.909 [1] main/103/tarantool-entrypoint.lua I> instance vclock {0: 96622, 1: 16339245}
tarantool_1 | 2021-01-25 15:36:42.909 [1] iproto/101/main I> binary: bound to 0.0.0.0:3301
tarantool_1 | 2021-01-25 15:36:42.909 [1] main/103/tarantool-entrypoint.lua I> recovery start
tarantool_1 | 2021-01-25 15:36:42.909 [1] main/103/tarantool-entrypoint.lua I> recovering from `/var/lib/tarantool/00000000000016435825.snap'
tarantool_1 | 2021-01-25 15:36:42.910 [1] main/103/tarantool-entrypoint.lua I> cluster uuid a43303ee-232d-46d7-9ff2-9716f5b165ed
tarantool_1 | 2021-01-25 15:36:42.927 [1] main/103/tarantool-entrypoint.lua I> assigned id 1 to replica 68029509-9446-40c2-a72e-a69079889474
tarantool_1 | 2021-01-25 15:36:42.936 [1] main/103/tarantool-entrypoint.lua I> recover from `/var/lib/tarantool/00000000000016435825.xlog'
tarantool_1 | 2021-01-25 15:36:42.937 [1] main/103/tarantool-entrypoint.lua xlog.c:1625 E> XlogError: invalid magic: 0x0
tarantool_1 | 2021-01-25 15:36:42.937 [1] main/103/tarantool-entrypoint.lua F> can't initialize storage: invalid magic: 0x0
full_tarantool_1 exited with code 1
这docker-compose.yml
version: '2'
services:
tarantool:
image: tarantool/tarantool:2.6.0
ports:
- 3301:3301
volumes:
- /var/local/foo/tarantool:/var/lib/tarantool
有没有办法防止这种情况在未来发生?
解决方案
尝试使用force_recovery_option(它可以通过TARANTOOL_FORCE_RECOVERY 环境变量传递)。请注意,如果我的建议不成功,请先备份您的 xlog/snap 文件以恢复您的数据,这是一个危险的选择。
推荐阅读
- google-cloud-platform - 如何优化存储桶的使用?
- node.js - docker-compose 错误:ENOENT:没有这样的文件或目录 /index.html
- powershell - Powershell:遍历 SNMP OID 并处理输出?
- drupal - 如何通过分页获取 Drupal 8 视图中的总行数?
- node.js - Kubernetes / Docker 中 Node.js fork 与 async 的性能比较
- java - 如何使用 JUNG 显示树布局,但间距和结构更整齐
- node.js - 错误:使用服务帐户创建 GCP 项目时用户未获得授权
- spring-boot - 如何使用 pem ssl 证书启用 https?
- android - 从非活动更改为活动后的 LiveData 更新
- firebase - firebase web 和 firebease android 有什么区别?