首页 > 解决方案 > 计算机崩溃时如何恢复 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

有没有办法防止这种情况在未来发生?

标签: dockertarantool

解决方案


尝试使用force_recovery_option(它可以通过TARANTOOL_FORCE_RECOVERY 环境变量传递)。请注意,如果我的建议不成功,请先备份您的 xlog/snap 文件以恢复您的数据,这是一个危险的选择。


推荐阅读