Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请求为备份源增加Gitlab #114

Open
VOfficial404 opened this issue Oct 26, 2024 · 14 comments
Open

请求为备份源增加Gitlab #114

VOfficial404 opened this issue Oct 26, 2024 · 14 comments

Comments

@VOfficial404
Copy link

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

@fscarmen2
Copy link
Owner

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

@cnsn521
Copy link

cnsn521 commented Oct 31, 2024

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

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

@cnsn521
Copy link

cnsn521 commented Oct 31, 2024

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

@fscarmen2
Copy link
Owner

image

@fscarmen2
Copy link
Owner

是这样运用吗?

@cnsn521
Copy link

cnsn521 commented Nov 2, 2024

是这样运用吗?

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

@fscarmen2
Copy link
Owner

fscarmen2 commented Nov 2, 2024

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

@longsays
Copy link

longsays commented Nov 6, 2024

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

直接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
Copy link
Owner

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

直接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
Copy link

longsays commented Nov 6, 2024

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

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

@VOfficial404
Copy link
Author

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

直接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 "数据库迁移和优化完成!"

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

哪吒更新1.0了 不能无缝升级 前后端分离 f佬有空了看一下?

@fscarmen2
Copy link
Owner

收到,过几天,看看方案稳定了再看如何处理,需要时间。

@fscarmen2
Copy link
Owner

fscarmen2 commented Dec 18, 2024

longsays

今天更新,把兄弟的脚本集成到 backup.sh 里,每天运行了,现在流程是 停服务端 - 优化数据库 -备份数据库到github- 重启服务端。

c614325#diff-4a65069692e317a5502f403b981aebcb392297f0ccfc6271e5bd10cd15dbebfe

脚本自动更新的。大家不需要另外处理。

@fscarmen2
Copy link
Owner

上个月(2024年11月)我作过测试了,GitHub和GitLab都是一样,最大支持单文件100MB。

而经过 VACUUM 优化,我自己的从13MB大幅缩小到6.5MB,效果还是杠杠的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants