fscarmen2 / Argo-Nezha-Service-Container

Nezha server over Argo tunnel 使用 Argo 隧道的哪吒服务端
645 stars 397 forks source link

请求为备份源增加Gitlab #114

Open VOfficial404 opened 2 weeks ago

VOfficial404 commented 2 weeks ago

如题 哪吒探针的sqlite文章随着使用会越来越大 根据GitHub的TOS 如果仓库过大可能会引起GitHub的审查 严重遭到删号导致数据丢失

fscarmen2 commented 2 weeks ago

sqlite文件太大可能也放不进去,印象中是单文件不能超过100MB

cnsn521 commented 1 week ago

sqlite文件太大可能也放不进去,印象中是单文件不能超过100MB

可以对sqlite设置一下自动释放内存,这样sqlite文件就小得多

cnsn521 commented 1 week ago

或者用脚本固定时间执行一下VACUUM就行

fscarmen2 commented 1 week ago

image

fscarmen2 commented 1 week ago

是这样运用吗?

cnsn521 commented 1 week ago

是这样运用吗?

我都是在在进入数据库执行的,还真没在外面执行过,你可以把db的测试文件拉一个下来,然后测试一下

fscarmen2 commented 1 week ago

收到大佬,数据库我不熟,回头试下先

longsays commented 6 days ago

收到大佬,数据库我不熟,回头试下先

直接VACUUM如果数据库有问题压缩不了一点(341M→320M),建议是导出后在导入 这个我用着没问题

#!/bin/bash

# 定义数据库文件名
OLD_DB="sqlite.db"
NEW_DB="new.sqlite.db"
TMP_FILE="tmp.sql"

# 记录开始时间
START_TIME=$(date +"%Y-%m-%d %H:%M:%S")
echo "开始时间: $START_TIME"

# 导出数据
sqlite3 "$OLD_DB" <<EOF
.output $TMP_FILE
.dump
.quit
EOF

# 检查导出是否成功
if [ $? -ne 0 ]; then
    echo "数据导出失败!"
    exit 1
fi

# 导入到新库
sqlite3 "$NEW_DB" <<EOF
.read $TMP_FILE
.quit
EOF

# 检查导入是否成功
if [ $? -ne 0 ]; then
    echo "数据导入失败!"
    exit 1
fi

# 覆盖原库并优化
mv -f "$NEW_DB" "$OLD_DB"
sqlite3 "$OLD_DB" 'VACUUM;'

# 清理临时文件
rm -f "$TMP_FILE"

# 重启服务
supervisorctl restart nezha

# 记录结束时间
END_TIME=$(date +"%Y-%m-%d %H:%M:%S")
echo "结束时间: $END_TIME"

echo "数据库迁移和优化完成!"
fscarmen2 commented 6 days ago

收到大佬,数据库我不熟,回头试下先

直接VACUUM如果数据库有问题压缩不了一点(341M→320M),建议是导出后在导入

这个我用着没问题


#!/bin/bash

# 定义数据库文件名

OLD_DB="sqlite.db"

NEW_DB="new.sqlite.db"

TMP_FILE="tmp.sql"

# 记录开始时间

START_TIME=$(date +"%Y-%m-%d %H:%M:%S")

echo "开始时间: $START_TIME"

# 导出数据

sqlite3 "$OLD_DB" <<EOF

.output $TMP_FILE

.dump

.quit

EOF

# 检查导出是否成功

if [ $? -ne 0 ]; then

    echo "数据导出失败!"

    exit 1

fi

# 导入到新库

sqlite3 "$NEW_DB" <<EOF

.read $TMP_FILE

.quit

EOF

# 检查导入是否成功

if [ $? -ne 0 ]; then

    echo "数据导入失败!"

    exit 1

fi

# 覆盖原库并优化

mv -f "$NEW_DB" "$OLD_DB"

sqlite3 "$OLD_DB" 'VACUUM;'

# 清理临时文件

rm -f "$TMP_FILE"

# 重启服务

supervisorctl restart nezha

# 记录结束时间

END_TIME=$(date +"%Y-%m-%d %H:%M:%S")

echo "结束时间: $END_TIME"

echo "数据库迁移和优化完成!"

感谢大佬,回头我试下,处理后的数据稳吗?没掉吧?

longsays commented 6 days ago

感谢大佬,回头我试下,处理后的数据稳吗?没掉吧?

稳,本身也是数据库炸了救数据库的操作,自测是没丢数据的