资源共享,记录个人心得等

清理ttrss数据库

Tiny Tiny RSS自带了清理旧文章的功能,在偏好设置中,可以设置清理多久前的文章。但与他连接的postgresql数据库对内容的删除是打标记,而不是彻底删除。这样就造成运行越久数据库越大的问题。因此我们需要清理postgresql数据库。

就比如我的服务,运行了3年多了,数据库已经到850MB了,而收藏的文章就20篇,90天一清理旧文章,现有2000多文章。是比较离谱了。因此我们通过操作数据库来进行清理。

大部分的ttrss应该都是使用docker-compose安装的,因此postgresql应该也是docker容器。也是本文的基础。

查询数据库大小

先查询所有数据库的大小:

 #先进入容器的sql命令模式(我的容器名是postgres即第一个"postgres"):
 docker exec -it postgres psql -U postgres
 select datname, pg_size_pretty (pg_database_size(datname)) AS size from pg_database;
 ###
  datname | size
 -----------+---------
  postgres | 8001 kB
  template0 | 7809 kB
  template1 | 7953 kB
  ttrss     | 858 MB
 (4 rows)
 ​

确定占用空间多的数据库名称后退出sql命令模式:输入”\q”

清理对应数据库

进入postgre容器的bash命令行:

 docker exec -it  postgres /bin/bash
 vacuumdb -U postgres -d ttrss -v -f --analyze

看过一堆信息输出后我们在进去sql中查看一下:

 #当前在docker的bash命令行中进行操作:
 psql -U postgres
 select datname, pg_size_pretty (pg_database_size(datname)) AS size from pg_database;
 -----------+---------
  postgres | 7017 kB
  template0 | 7809 kB
  template1 | 7953 kB
  ttrss     | 17 MB
 (4 rows)
 ​

清理过后占用17MB,真的离谱。

参考文章

https://www.cnblogs.com/tiandi/p/16585681.html

http://www.65535.fun/?p=746

https://www.jianshu.com/p/2534adc5c8b7

https://medium.com/alberthg-docker-notes/docker%E7%AD%86%E8%A8%98-%E9%80%B2%E5%85%A5container-%E5%BB%BA%E7%AB%8B%E4%B8%A6%E6%93%8D%E4%BD%9C-postgresql-container-d221ba39aaec

赞(0)
转载需标明出处Lee's Blog » 清理ttrss数据库

评论 2

  1. #1

    终于找到相关的了…我是没用docker,直接在vps上部署的程序,也设置了定时清理,但为啥就是体现不出来有删除的动作呢?数据库打标记是查的哪个表啊

    飞蚊话7个月前 (04-15)回复
    • 我记得我当时也是猜测。设置定时清理应该就是删了,当时搜好像是用的这个数据库就是这个特性,删除空间不释放或者有释放空间删除的方法但是软件没使用

      Lee7个月前 (04-16)回复

登录

找回密码

注册