pg_restore并行导入AWS PostgreSQL数据库报SSL错误中断如何解决
错误原因分析
- AWS端PostgreSQL实例近期完成了旧TLS协议版本下线操作,当前仅接受TLS 1.2及以上版本的SSL连接,不再兼容TLS 1.0、TLS 1.1版本。你之前脚本可正常运行是因为AWS此前仍保留对旧版本TLS的兼容支持,版本下线后原有连接请求直接被拦截,触发
tlsv1 alert protocol version报错。 - 本地pg_restore工具依赖的PostgreSQL客户端libpq库版本过低,默认发起SSL连接时使用的TLS版本达不到AWS端的最低要求,连接被强制中断后导致并行恢复的工作进程异常退出,触发第二个报错。
修复方案
- 优先升级本地PostgreSQL客户端到10.3及以上的稳定版本,该版本及以上的libpq库默认使用TLS 1.2及以上版本发起连接,升级完成后重新执行原有恢复脚本即可正常运行。
- 若暂时无法升级客户端,可直接在原有恢复命令后追加SSL参数指定最低TLS版本即可:
pg_restore --clean -v -h amazonaws.com -j 4 -U username -d database_name C:\Users\dump.dir ssl_min_protocol_version=TLSv1.2
内容的提问来源于stack exchange,提问作者Fry
相关产品推荐
相关产品推荐

