Postgres SQL 数据量过大导致的DB崩溃修复

我们的平台DB使用的是postgres的主备结构,主备用的是repmgrd实现的

早上一上班nagios发送警告短信,主数据库由于相应时间太慢自动进行了主备切换

首先查找原因,发现履历查询较慢查看履历表99G数据

psql
\c DBname  #切换数据库 
\l+ DBname #查看DB存储量
\dt+ tableName # 查看table数据量

之后先分配主数据库

sudo su - postgres
psql
postgres=# select pg_is_in_recovery();
 pg_is_in_recovery
-------------------
 f
(1 row)
quite

repmgr primary register -F

删除履历表中数据

然后连接备库先停掉数据库,同步数据,恢复主备

  sudo su - postgres
  pg_ctl stop -mf
  rm -rf /ihdata/platform/yourDBDir/data
  cd /ihdata/platform/postgresql/tablespace
  rm -rf *
  cd /ihdata/platform/yourDBDir/archive
  rm -rf *

#同步数据
repmgr -h [primary by server] -p 15487 -U repmgr -d repmgr standby clone -F

#启动备份数据库
pg_ctl start
#注册备份数据库
repmgr standby register -F

最后主备重启守护进程

1ps -ef | grep repmgrd

 kill -9 [pid]

repmgrd -d

然后插入必要的履历数据到履历表

 

最后根本解决表过大的问题需要使用分区表,之后推进分区表使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rongyili88

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值