跳轉至

部署和維護 / 管理員工具

本文主要介紹如何使用管理員工具維護 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 號數據庫