Postgres 9.3 pg_tblspc目录符号链接损坏修复咨询
PostgreSQL 9.3 pg_tblspc符号链接损坏修复方案
能否手动重建符号链接恢复服务?
可以手动重建这些符号链接恢复服务,操作步骤如下:
- 停止PostgreSQL服务,避免操作过程中出现数据异常
- 整理映射关系:根据你对比正常实例得到的规则(每个表OID对应OID+8、OID+11两个链接,指向对应数据库目录下的子文件夹),或者通过数据库系统表(
pg_tablespace、pg_database)查询OID与目标路径的对应关系 - 用管理员权限打开命令提示符,使用
mklink命令创建目录符号链接:
替换命令中的路径和OID相关值为实际内容,mklink /D "你的Postgres数据目录\pg_tblspc\<OID+8>" "<目标数据库子文件夹路径>" mklink /D "你的Postgres数据目录\pg_tblspc\<OID+11>" "<对应另一子文件夹路径>"/D参数用于创建目录类型的符号链接 - 确保重建后的链接权限与原链接一致,PostgreSQL服务账号需拥有目标目录的读写权限
Postgres是否有内置工具可指定目录重建符号链接?
PostgreSQL 9.3没有内置工具可以直接批量重建pg_tblspc下的符号链接。这类链接是创建表空间时自动生成的,官方未提供专门的重建工具,只能通过手动或编写批处理脚本批量执行mklink命令完成修复。
额外注意事项
- 重建完成后,可先运行
pg_controldata检查数据目录完整性,再启动服务验证 - 若有大量链接需重建,可编写批处理脚本自动化执行,提升效率
内容的提问来源于stack exchange,提问作者Introser
相关产品推荐
相关产品推荐

