↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.0
历史版本PostgreSQL 7.0 已于 2005 年 5 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

pg_upgrade

pg_upgrade — 允许从前一个版本升级而无需重新加载数据

大纲

pg_upgrade [ -f filename ] old_data_dir
  

描述

pg_upgrade 是一个用于从前一个 Postgres 版本升级而无需重新加载所有数据的工具。 并非所有 Postgres 版本间的迁移都能用这种方式处理。请查阅发行说明了解与你的安装相关的细节。

用 pg_upgrade 升级 Postgres

  1. 备份你现有的数据目录,最好用 pg_dumpall 做一次完整的转储。

  2. 然后执行:

    % pg_dumpall -s >db.out
         
    

    转储出旧数据库的表定义而不含任何数据。

  3. 停止旧的 postmaster 和所有后端。

  4. 用 mv 把你旧的 pgsql data/ 目录重命名为 data.old/。

  5. 执行

    % make install
         
    

    以安装新的二进制文件。

  6. 运行 initdb 创建一个包含新版本系统表的 新 template1 数据库。

  7. 启动新的 postmaster。(注意:在升级完成之前,绝对不能有用户连接到 数据库。你可以临时不带 -i 启动 postmaster,和/或临时修改 pg_hba.conf。)

  8. 把工作目录切换到 pgsql 主目录,然后输入:

    % pg_upgrade -f db.out data.old
         
    

    该程序会做一些检查以确保一切都配置正确, 然后运行你的 db.out 脚本重建你原有的所有数据库和表,但不包含数据。接着它会把 包含非系统表和索引的数据文件从 data.old/ 物理移动到相应的 data/ 子目录中,替换 db.out 脚本执行期间创建的空数据文件。

  9. 如需允许用户登录,恢复你原来的 pg_hba.conf。

  10. 停止并重启 postmaster。

  11. 仔细检查升级后数据库的内容。如果发现问题,你需要用完整的 pg_dump 备份恢复。满意之后你可以删除 data.old/ 目录。

  12. 升级后的数据库将处于未清理(un-vacuumed)的状态。在开始生产工作之前,你可能想运行一次 VACUUM ANALYZE。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。