当前位置:论坛首页 > Linux面板 > 求助

【已解答】redis备份286M数据库超时错误

发表在 Linux面板15 小时前 [复制链接] 1 26

为了能快速了解并处理您的问题,请提供以下基础信息:
面板、插件版本:

Linux面板11.3.0redis 7.4.6
系统版本:

系统:Ubuntu 24.04.2
问题描述:

redis备份286M数据库超时错误
怀疑是数据库太大了?

https://www.bt.cn/bbs/thread-140116-1-1.html

出错了,面板运行时发生错误!redis.exceptions.TimeoutError: Timeout reading from socket
REQUEST_DATE: 2025-11-21 00:36:46  VERSION: Ubuntu 24.04.2 LTS (Noble Numbat) x86_64(Py3.7.16) - 11.3.0 REMOTE_ADDR: 123.185.77.88 REQUEST_URI: POST /database/redis/ToBackup?REQUEST_FORM: {}  USER_AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0Traceback (most recent call last):  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/_parsers/socket.py", line 65, in _read_from_socket    data = self._sock.recv(socket_read_size)  File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/_socketcommon.py", line 663, in recv    self._wait(self._read_event)  File "src/gevent/_hub_primitives.py", line 317, in gevent._gevent_c_hub_primitives.wait_on_socket  File "src/gevent/_hub_primitives.py", line 322, in gevent._gevent_c_hub_primitives.wait_on_socket  File "src/gevent/_hub_primitives.py", line 313, in gevent._gevent_c_hub_primitives._primitive_wait  File "src/gevent/_hub_primitives.py", line 314, in gevent._gevent_c_hub_primitives._primitive_wait  File "src/gevent/_hub_primitives.py", line 46, in gevent._gevent_c_hub_primitives.WaitOperationsGreenlet.wait  File "src/gevent/_hub_primitives.py", line 46, in gevent._gevent_c_hub_primitives.WaitOperationsGreenlet.wait  File "src/gevent/_hub_primitives.py", line 55, in gevent._gevent_c_hub_primitives.WaitOperationsGreenlet.wait  File "src/gevent/_waiter.py", line 154, in gevent._gevent_c_waiter.Waiter.get  File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch  File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch  File "src/gevent/_greenlet_primitives.py", line 65, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch  File "src/gevent/_gevent_c_greenlet_primitives.pxd", line 35, in gevent._gevent_c_greenlet_primitives._greenlet_switchsocket.timeout: timed outDuring handling of the above exception, another exception occurred:Traceback (most recent call last):  File "/www/server/panel/BTPanel/__init__.py", line 2559, in publicObject    res = run_obj.run(toObject, defs, get)  File "/www/server/panel/BTPanel/__init__.py", line 2506, in run    result = getattr(toObject, get.action)(get)  File "/www/server/panel/class/panelDatabaseController.py", line 85, in model    result = PluginLoader.module_run(module_name,def_name,pdata)  File "/www/server/panel/class/databaseModel/redisModel.py", line 462, in ToBackup    redis_obj.redis_conn(db_idx).save()  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/commands/core.py", line 1247, in save    return self.execute_command("SAVE", **kwargs)  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/client.py", line 549, in execute_command    lambda error: self._disconnect_raise(conn, error),  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/retry.py", line 49, in call_with_retry    fail(error)  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/client.py", line 549, in <lambda>    lambda error: self._disconnect_raise(conn, error),  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/client.py", line 535, in _disconnect_raise    raise error  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/retry.py", line 46, in call_with_retry    return do()  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/client.py", line 547, in <lambda>    conn, command_name, *args, **options  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/client.py", line 522, in _send_command_parse_response    return self.parse_response(conn, command_name, **options)  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/client.py", line 562, in parse_response    response = connection.read_response()  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/connection.py", line 512, in read_response    response = self._parser.read_response(disable_decoding=disable_decoding)  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/_parsers/resp2.py", line 15, in read_response    result = self._read_response(disable_decoding=disable_decoding)  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/_parsers/resp2.py", line 25, in _read_response    raw = self._buffer.readline()  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/_parsers/socket.py", line 115, in readline    self._read_from_socket()  File "/www/server/panel/pyenv/lib/python3.7/site-packages/redis/_parsers/socket.py", line 78, in _read_from_socket    raise TimeoutError("Timeout reading from socket")redis.exceptions.TimeoutError: Timeout reading from socket



# 修改宝塔面板的 Redis 连接配置,设置超时5分钟,无效
# 文件位置:/www/server/panel/class/databaseModel/redisModel.py
# 在第462行附近修改# 原代码:redis_obj.redis_conn(db_idx).save()
# 修改为:
import redisredis_conn = redis_obj.redis_conn(db_idx)redis_conn.config_set('timeout', 300)  
# 设置5分钟超时redis_conn.save()




# 修改备份方法,使用后台保存,无效
def ToBackup(pdata):    try:        redis_conn = redis_obj.redis_conn(db_idx)        
# 使用 BGSAVE 代替 SAVE(后台保存,不阻塞)        
redis_conn.bgsave()               
# 检查保存状态        
import time        for i in range(30):  # 等待30秒            time.sleep(1)            if redis_conn.lastsave() != redis_conn.info().get('rdb_last_save_time'):                break        return {'status': True, 'msg': '备份已启动'}    except Exception as e:        return {'status': False, 'msg': f'备份失败: {str(e)}'}
相关截图(日志、错误):

使用道具 举报 只看该作者 回复
发表于 5 小时前 | 显示全部楼层
可能当前连接数过多 停止相关连接再备份试试 不行直接备份/www/server/redis目录
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表