946 字
5 分钟
清理哪吒数据库、修改哪吒数据库 更改服务器、报警、服务顺序等
2025-02-12

:如果害怕改错可以电脑下载一个sqlite数据库工具自行修改 也可以使用下面的命令备份一个出来 修改后重启面板生效

Terminal window
cp /opt/nezha/dashboard/data/sqlite.db /root/sqlite.db

安装sqlite3 (用于打开sqlite数据库)#

Terminal window
apt install sqlite3

打开哪吒数据库#

Terminal window
sqlite3 /opt/nezha/dashboard/data/sqlite.db

列出表

Terminal window
.tables

修改服务器排序#

打开服务器文件

Terminal window
SELECT * FROM servers;

修改id

Terminal window
UPDATE servers SET id =要修改成的id WHERE id =修改的id;

删除id

Terminal window
DELETE FROM servers WHERE id =要删除的id;

更新id列 让后续id减少1

Terminal window
UPDATE servers
SET id = id - 1
WHERE id > 中间断的id;

id = 4 改为 55 → 66 → 7,以此类推(所有 id >= 4 的值都加 1),避免主键冲突。注:演示id为4 自行修改

第 1 步:将 id >= 4 的记录统一先加一个大值(如 1000):

Terminal window
UPDATE servers
SET id = id + 1000
WHERE id >= 4;

第 2 步:把刚才加上大值的记录再减 999(等于 +1 的效果):

Terminal window
UPDATE servers
SET id = id - 999
WHERE id >= 1004;

重置顺序

Terminal window
DELETE FROM sqlite_sequence WHERE name = 'servers';

保存并退出

Terminal window
.exit

修改报警排序#

打开报警文件

Terminal window
SELECT * FROM alert_rules;

修改报警id

Terminal window
UPDATE alert_rules SET id =要修改成的id WHERE id =修改的id;

删除报警

Terminal window
DELETE FROM alert_rules WHERE id =要删除的id;

重置顺序

Terminal window
DELETE FROM sqlite_sequence WHERE name = 'alert_rules';

修改服务(网络延迟ip)#

打开服务文件

Terminal window
SELECT * FROM services;

修改服务id

Terminal window
UPDATE services SET id =要修改成的id WHERE id =修改的id;

删除网络延迟id

Terminal window
DELETE FROM services WHERE id =要删除的id;

重置顺序

Terminal window
DELETE FROM sqlite_sequence WHERE name = 'services';

修改服务器分组#

Terminal window
SELECT * FROM server_groups;

打开服务器分组

Terminal window
SELECT * FROM server_groups;

修改服务器分组id

Terminal window
UPDATE server_groups SET id =要修改成的id WHERE id =修改的id;

删除计划服务器id

Terminal window
DELETE FROM server_groups WHERE id =要删除的id;

重置顺序

Terminal window
DELETE FROM sqlite_sequence WHERE name = 'server_groups';

修改服务器分组关联表#

打开服务器分组关联表

Terminal window
SELECT * FROM server_group_servers;

修改服务器分组关联表id

Terminal window
UPDATE server_group_servers SET id =要修改成的id WHERE id =修改的id;

删除计划服务器关联表id

Terminal window
DELETE FROM server_group_server WHERE id =要删除的id;

重置顺序

Terminal window
DELETE FROM sqlite_sequence WHERE name = 'server_group_servers';

清空网络延迟监控#

如果开启了tsdb 直接删除tsdb文件即可

Terminal window
rm -rf /opt/nezha/dashboard/data/tsdb
Terminal window
DELETE FROM service_histories;

清空单个服务器id的网络延迟监控#

Terminal window
DELETE FROM service_histories WHERE server_id = id;

一行命令清理网络延迟 收缩数据库文件大小#

Terminal window
sqlite3 /opt/nezha/dashboard/data/sqlite.db "DELETE FROM service_histories; VACUUM;"

收缩 SQLite 数据库文件大小#

执行完大量删除后,SQLite 文件并不会立即变小。你需要运行:

Terminal window
VACUUM;

这个命令会重建数据库并清理空间碎片,使 sqlite.db 文件变小。

修改报警通知里面的双向流量使用多少#

字节转换网站:https://tooltt.com/byte-convert/

查找服务器id的流量报警

Terminal window
SELECT * FROM transfers WHERE server_id =服务器id;

清空服务器id的流量

Terminal window
UPDATE transfers
SET "in" = 0, "out" = 0
WHERE server_id =服务器id;

清空字段的流量

Terminal window
UPDATE transfers
SET "in" = 0, "out" = 0
WHERE id =字段;

修改下载流量

Terminal window
UPDATE transfers
SET out =要修改的流量字节
WHERE id =字段;

修改上传流量

Terminal window
UPDATE transfers
SET "in" =要修改的流量字节
WHERE id =字段;

重置顺序

Terminal window
DELETE FROM sqlite_sequence WHERE name = 'transfers';

清空服务器id的字段

Terminal window
DELETE FROM transfers WHERE server_id = 服务器id;

修改计划任务#

打开计划任务文件

Terminal window
SELECT * FROM crons;

修改计划任务id

Terminal window
UPDATE crons SET id =要修改成的id WHERE id =修改的id;

删除计划任务id

Terminal window
DELETE FROM crons WHERE id =要删除的id;

重置顺序

Terminal window
DELETE FROM sqlite_sequence WHERE name = 'crons';
清理哪吒数据库、修改哪吒数据库 更改服务器、报警、服务顺序等
https://blog.leuxx.de/posts/4/
作者
Leu
发布于
2025-02-12
许可协议
CC BY-NC-SA 4.0

评论