首页 > 数据库 > PostgreSQL > 正文

PostgreSQL7.0手册-用户手册-21. 系统应用 - pg_upgrade

2019-09-08 23:33:58
字体:
来源:转载
供稿:网友
pg_upgrade
描述
pg_upgrade ― 允许从前面的版本升级而不需要重载数据 

语法
pg_upgrade [ -f filename ] old_data_dir
描述
pg_upgrade 是一个从以前的 PostgreSQL 版本升级而不重载数据的工具。不是所有 Postgres 版本的迁移都可以用这个方法实现。请检查你的节点的版本信息获取细节。 
  
用 pg_upgrade 升级 Postgres 
备份你现有的数据目录,最好是用 pg_dumpall 做一次完整输出。 
然后: 

% pg_dumpall -s >db.out
不带任何数据输出你的旧数据库的表定义。 
  
停止旧的 postmaster 和所有后端的运行。 

把你的旧的 pgsql data/ 目录改成(用 mv )data.old/。 

运行 

% make install
安装新的二进制文件。 
运行 initdb 为新版本创建新的包含系统表的 template1 数据库。 

运行新的 postmaster。(注意:在数据库升级完成前不能有用户与数据库联接。你可能需要不带 -i 参数启动 postmaster 和/或暂时修改 pg_hba.conf。) 

把你的工作目录改到 pgsql 主目录,然后键入: 

% pg_upgrade -f db.out data.old
该程序会做一些检查以确保所有东西都正确配置好了,然后就会运行你的 db.out 脚本创建你原来有的数据库和表,但是没有数据。然后它将把那些不含系统表和索引的文件物理地从 data.old/ 移到合适的 data/ 子目录里,代替在运行 db.out 脚本时创建的空文件。 
如果需要的话恢复你的旧的 pg_hba.conf,以允许用户登录。 

停止然后重起 postmaster。 

仔细检查升级完了的表的内容。如果发现问题,你将需要通过从你的完全 pg_dump 的备份重新装载来恢复。如果你觉得满意,你可以删除 data.old/ 目录。 

升级完的数据库将是处于未清理的状态。你在开始生产工作前可能需要运行一个 VACUUM ANALYZE。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选