You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 14如何将数据库从pg_default迁移至自定义表空间?

PostgreSQL 14 迁移默认表空间数据库至自定义表空间操作步骤

1. 确认自定义表空间状态

登录PostgreSQL命令行,先确认目标自定义表空间存在且可用:

SELECT spcname, spclocation FROM pg_tablespace;

找到你的自定义表空间名称(示例中用new_tablespace指代),核对其关联目录的空间充足性。

2. 迁移数据库至自定义表空间

方式一:整库切换默认表空间

将目标数据库的默认表空间直接切换到自定义表空间,执行前需确保该数据库无活跃连接(可切换至postgres等其他库执行命令):

ALTER DATABASE your_database_name SET TABLESPACE new_tablespace;

方式二:迁移单个对象(可选)

若无需整库迁移,可单独迁移表或索引:

  • 迁移指定表:
ALTER TABLE your_table_name SET TABLESPACE new_tablespace;
  • 迁移指定索引:
ALTER INDEX your_index_name SET TABLESPACE new_tablespace;

3. 验证迁移结果

迁移完成后,检查对象的表空间归属是否更新:

  • 检查数据库默认表空间:
SELECT datname, spcname FROM pg_database d JOIN pg_tablespace t ON d.dattablespace = t.oid WHERE datname = 'your_database_name';
  • 检查指定表的表空间:
SELECT relname, spcname FROM pg_class c JOIN pg_tablespace t ON c.reltablespace = t.oid WHERE relname = 'your_table_name';

4. 清理旧表空间(可选)

确认迁移成功且数据无异常后,可回收原表空间的闲置空间:

VACUUM FULL;

注意:禁止手动删除PostgreSQL数据目录下的文件,所有空间操作需通过数据库命令执行。

重要提醒:操作前务必完成数据库全量备份,建议在业务低峰期执行迁移,避免影响服务可用性。

内容的提问来源于stack exchange,提问作者Nodirali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:22:01