跳转至

部署和维护 / 管理员工具

本文主要介绍如何使用管理员工具维护 DataFlux Func。

1. 管理员工具 admin-tool.py

DataFlux Func 提供了管理员工具,方便进行一些应急维护工作。

管理员工具附带在容器中,需要使用 Docker exec 方式运行,可以使用--help查看具体使用方式:

Bash
1
docker exec -it {DataFlux Func 容器 ID} sh -c 'exec python admin-tool.py --help'
Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
usage: admin-tool.py [-h] [-f] [--admin-username ADMIN_USERNAME]
                     [--admin-password ADMIN_PASSWORD]
                     <Command>

+--------------------------+
| DataFlux Func Admin Tool |
+--------------------------+
This tool should run in the Docker container:
    $ docker exec {DataFlux Func Container ID} sh -c 'exec python admin-tool.py --help'
    $ docker exec -it {DataFlux Func Container ID} sh -c 'exec python admin-tool.py reset_admin [-f] [--admin-username=<Admin Username>] [--admin-password=<Password>]'
    $ docker exec -it {DataFlux Func Container ID} sh -c 'exec python admin-tool.py reset_upgrade_db_seq'
    $ docker exec -it {DataFlux Func Container ID} sh -c 'exec python admin-tool.py clear_redis'
    $ docker exec -it {DataFlux Func Container ID} sh -c 'exec python admin-tool.py run_sql'

positional arguments:
  <Command>             reset_admin, reset_upgrade_db_seq, clear_redis,
                        run_sql

optional arguments:
  -h, --help            show this help message and exit
  -f, --force           Force run, no confirm
  --admin-username ADMIN_USERNAME
                        Admin Username
  --admin-password ADMIN_PASSWORD
                        Admin Password

1.1 重置管理员密码

普通用户的密码可以由系统管理员直接重新设置, 但系统管理员本身的密码如果忘记,需要使用 DataFlux Func 附带的管理员工具进行重置。

详细请参考 部署和维护 / 管理员工具

1.2 重置数据库更新序号

DataFlux Func 在安装 / 升级时,会自动更新数据库结构,并记录当前数据库结构版本序号。

在某些情况下,这个序号如果不正确,会导致系统无法正常启动,此时需要使用管理员工具修正。

如果您不知道这是什么,请咨询官方后再进行操作

具体命令如下:

  • 容器外
Bash
1
docker exec -it {DataFlux Func 容器 ID} sh -c 'exec python admin-tool.py reset_db_upgrade_seq'
  • 容器内
Bash
1
cd /usr/src/app; python admin-tool.py reset_db_upgrade_seq

1.3 清空 Redis

在某些情况下(如:队列堵塞需要立即恢复,脚本不合理的逻辑导致缓存过大等),可以使用以下命令,清空 Redis 数据库。

清空 Redis 不会对 DataFlux Func 本身运行带来问题。但运行中的业务代码可能会依赖 Redis 中的数据,请务必确认后进行操作

具体命令如下:

  • 容器外
Bash
1
docker exec -it {DataFlux Func 容器 ID} sh -c 'exec python admin-tool.py clear_redis'
  • 或容器内
Bash
1
cd /usr/src/app; python admin-tool.py clear_redis

2. 直接操作 Redis

如需要直接操作 Redis,可以直接进入 Redis 终端进行操作。

具体命令如下:

Bash
1
docker exec -it {Redis 容器 ID} sh -c 'exec redis-cli -n 5'

DataFlux Func 默认使用 Redis 的 5 号数据库