将 postgresql 数据移动到不同的驱动器

cod*_*ool 28 postgresql tablespaces postgresql-9.1

我使用 AWS 作为我的云环境。我将 PostgreSQL 安装在与根实例卷相同的驱动器上。我已将第二个驱动器连接并安装到我的实例上。现在我想将我所有的 PostgreSQL 数据移动到不同的驱动器。我仍处于开发模式,因此如果此时可以更轻松地传输旧数据,我可以删除旧数据。做这个的最好方式是什么?

PostgreSQL 表空间是我应该看的东西吗?

a_h*_*ame 25

以下应该这样做:

  1. 关闭 PostgreSQL
  2. 确保 PostgreSQL 不再运行
  3. 检查PostgreSQL是否真的停止了
  4. 将旧数据目录复制到新驱动器
    这通常是通过-D您的服务的命令行参数 ( ) 或通过PGDATA环境变量定义的。
  5. 更新您的 PostgreSQL 配置(服务、环境变量)以指向新的数据目录。
  6. 如果您复制了数据,请重命名旧数据目录以确保 PostgreSQL 再也找不到它。这样,如果您没有正确配置,您将收到一条错误消息。
  7. 启动服务
  8. 如果一切正常,您可以删除旧目录。


小智 5

  1. 停止 postgresql 服务
  2. cp -a source_data_directory destination_data_directory
  3. chown -R postgres_user /destination_data_directory
  4. 导出 PGDATA=destination_data_directory
  5. 在 postgresql.conf 中将数据目录更改为 destination_data_directory
  6. pg_ctl 开始